Skip to content

六个模型实时赛跑,赢家竟是最简单的线性回归

作 者:老余捞鱼

原创不易,转载请标明出处及原作者。

文中示例仅用于技术讨论,不构成任何操作建议。
量化策略开发应以学习和技术交流为目的。
本号不荐股、不卖课、不承诺收益。
市场有风险,请合法合规投资。

本文约 2000 字 | 阅读预计需 5 分钟

· · ·

先问一个问题,回测到底可不可信?

多数人的答案是不确定,可一旦操作起来,每个人都把回测当成了金标准。一条漂亮的净值曲线,一个亮眼的年化收益,就敢放心下注。

实际上,回测藏着一个致命陷阱。事后看,任何一张历史图表都能用多项式曲线拟合,把它变成一幅完美贴合每一个波峰波谷的艺术品。你只要把多项式阶数调得足够高,它就能优雅地抱住过去每一段行情。

然后你把模型丢进实盘。

问题马上暴露。拟合历史价格很容易,预测下一根K线,完全是另一回事。

这篇文章要拆的,就是多项式回归在实盘里的表现。低阶模型和高阶曲线同台竞技,到底谁活到最后。以及,怎么搭一套实时前推测试的环境。

① 多项式回归,三个阶各干各的活

多项式回归的思路,是把时间轴 x 映射成预测价格 y。n 阶多项式的通式长这样。

在前推测试里,我们评估三个阶。

一阶是线性,y = -0.1612x + 136.793。它画一条直线,测的是方向和变化率,只能描述单边趋势。

二阶是二次,y = 0.0008x² – 0.1680x + 136.8025。多了一个抛物线拐点,能捕捉加速和减速,抓局部趋势动量。

三阶是三次,y = -0.0067x³ + 0.0915x² – 0.4779x + 136.9719。它有两个拐点,像一条 S 形曲线,试图画出复杂的趋势反转、盘整反弹和突破浪。

阶数越高,曲线越能贴合历史。但贴得越紧,代价是什么,往下看。

② 六个模型,怎么实时赛跑

光拟合一遍历史不算数。要检验多项式在实盘里的水平,得做样本外前推测试。

流程分四步。

第一步,抓历史。按固定间隔,比如30分钟,一根一根K线地收集价格更新。

第二步,拟合。每个时间点 t,用两个不同的窗口拟合多项式。全窗口 N=23,抓整个交易时段的宏观趋势。滚动窗口 N=10,只看最近10根K线的局部动量。

第三步,预测下一根。把每个阶往外推,预测 t+1 的价格。

第四步,评估再重拟合。真实价格出来后,算六个模型各自的绝对误差,记下赢家,追加新价格。六个模型从头重新拟合,上一个周期的系数不继承。

每一个预测周期,模型都从零开始,不偷看任何上一轮的答案。

③ 阶数越高,越容易翻车

三个阶在实时前推里,各有各的软肋。

一阶线性结构最稳。它抓不住盘中的局部转折,但抗噪声,是滚动窗口下的基线。

二阶二次,适合捕捉趋势衰竭和温和的动量曲线。当价格开始走平、进入盘整,滚动二次往往能赢过线性和更高阶的模型。

三阶三次,能拐两次,像 S 形,能把历史贴得很紧。但这种灵活性本身就是负担,它最容易过拟合。

越复杂的曲线,越能把过去讲得头头是道,也越难把下一根K线预测准。

④ 滚动窗口,为什么赢了全窗口

实测里最硬的一个发现是,滚动窗口全面碾压全窗口。

用长历史窗口做多项式回归,会累积结构性的滞后。实盘里,10根K线的滚动窗口,平均绝对误差一直比全时段窗口更低。对下一根K线来说,最近几分钟的价动态,比几小时前的价格锚点重要得多。

这也符合直觉。你要猜下一分钟的价格,是看最近十分钟的走势靠谱,还是看今天一整天的走势靠谱?答案不言自明。

⑤ 实测,CSL.AX 的六个模型成绩单

为了验证这套框架,我把六个模型丢到澳股 CSL.AX 上实跑。CSL 是全球血液制品和疫苗巨头,澳交所的老牌蓝筹。采样从上午10点到下午4点,每半小时一次,全窗口 N=23。

成绩单是这样的。

Rolling Linear,也就是一阶滚动,同时拿下最低 MAE 和最多单步胜场,7胜,MAE 1.11。Rolling Quadratic 二阶滚动紧随其后,3胜。Full Cubic 2胜,Rolling Cubic 1胜,Full Quadratic 和 Full Linear 都是 0 胜。

最惨的是 Full Linear,全窗口线性,MAE 3.53,系统性超调,一场没赢。

一句话,所有全窗口模型,都被自己的滚动对手碾压。

“胜场”怎么算的,每个半小时节点,六个模型在真实价格出来前,各报一个下一时段预测。价格出来后,谁离真实价最近,也就是绝对误差最小,谁赢这一局。整个交易时段反复循环,胜场数就是累计的赢局数。

⑥ 怎么搭一套前推测试框架

这套框架不难搭,我已经开源了完整的源代码,你不用自己跑循环,把代码交给任何一个能干的 AI 模型或 agent,让它每半小时执行一次前推测试,记录预测、误差、胜场就行。

要系统化跑起来,记住三件事。

第一,建严格的评估日志。连续记录每个模型的预测价、真实价、绝对误差、累计 MAE。

第二,自动化重算。每根K线收盘时,程序化重估系数向量,消除执行滞后。

第三,统计胜场。每个时段结束,把每个模型的单步胜场加起来,就像 CSL.AX 的成绩单那样。这个滚动计数,才告诉你哪个模型长期真的更行。

从静态回测转向实时前推,多项式曲线拟合就从一门事后艺术,变成一套面向实盘的客观框架。

Colab及国内直接代码微信公众号双下载地址如下:

https://mp.weixin.qq.com/merchant/mppaysubscribe?action=go_paid_article&article_url=https%3A%2F%2Fmp.weixin.qq.com%2Fs%2FSgK603zAGyoCwRWemP8Oog&token=366740610&lang=zh_CN


#量化回测 #过拟合 #多项式回归 #前推验证 #WalkForward #实时验证 #机器学习 #数据科学 #模型评估 #曲线拟合 #量化建模 #CSL.AX

Published inAI&Invest专栏

Be First to Comment

    发表回复