股票策略回测:一个形态到底赚不赚

练出来的是手感,手感说不出「这条规则历史上到底赚不赚」。 回测就是回答这一句的 —— 前提是测法本身站得住。

和什么比,才叫「有用」

一个形态跑出「每笔 +3.5%」本身没有意义 —— 那段行情本来就在涨。 所以每次回测同时跑两个对照组:一组换成随机的日子入场, 一组换成信号前后三个月里的另一天入场;同一批标的、同样多笔、 同一条出场规则,只把入场点换掉。 跟前者比得到的是总超额,跟后者比才是剥掉择时之后形态自己的贡献, 两者之差就是「这段时间买什么都涨」贡献了多少。

每个结论都带 t 值:「多赚 0.43 个点」和「多赚 0.05 个点」 在屏幕上一样长,而前者是边际、后者是噪声。 |t| 小于 2 一律显示「分不出差别」,不写成「持平」—— 后者听着像「测过了不赚不亏」,真相是这个样本量下量不出来。

七个常见形态的实测结果

同一把尺子全跑了一遍(A股、随机 400 只、2015 年起、持有 20 根、成交按信号次日收盘价算,含手续费与滑点;测于 2026-09-07)。 下表是剥掉择时之后的每笔净边际,共 7 行,已列全。

形态净边际t 值样本结论
站上年线-0.33pp-1.812,117 笔分不出
放量创60日新高-3.73pp-17.114,468 笔跑输
均线多头首日-0.76pp-6.429,080 笔跑输
下跌后看涨吞没-0.41pp-3.835,573 笔跑输
回踩20日线不破-1.93pp-16.427,797 笔跑输
涨停收盘-4.56pp-16.412,936 笔跑输
20日跌15%+5.40pp+53.257,778 笔跑赢

七个里六个是负的 —— 它们的共同点是信号出现时票已经涨过一波 (入场前 20 根中位涨幅 +16% 到 +19%)。唯一为正的那个方向相反: 买刚跌过 15% 的票。这些数字在应用里可以换参数自己重跑。

净边际的单位是百分点(pp),指的是「比对照组每笔多赚/少赚多少」, 不是绝对收益。绝对收益受行情本身影响太大,单看它会把牛市当成策略有效。

三件容易把回测做成自我安慰的事

前视偏差:信号在收盘后才成立,成交按下一根算。 同一根既算信号又成交的话,实测每笔期望会从 +0.06% 变成 +0.29% —— 四倍,全是假的。

抽样偏差:信号来自全量扫描,不是出题用的抽样池 (那个池子每只票每年只留一条,用它算胜率等于在 1/N 的样本上算, 还丢掉了「信号扎堆」这件事本身)。

幸存者偏差:报告里会直接写出池子里有多少只已退市。 抄底型战法尤其要命 —— 实测把退市股加回来之后, 同类战法的每笔绝对收益从 +3.60% 掉到 -0.49%, 而跟同期对照比的净边际只从 +5.72pp 掉到 +4.52pp。 所以本页让你看的是净边际那一栏,不是绝对收益。

自己跑一遍

想验证某个 K 线形态:先在 K线训练 里随机抽一段真实历史行情练手,练出感觉的形态可以直接跑回测、换参数重跑。

想按自己的因子做组合级回测(选股逻辑、持有期、止盈止损、成本设定): 用数据研究台的回测实验室。

先去练 · K线训练 进入数据研究台

常见问题

回测是什么?

把一条交易规则放到历史行情里从头跑一遍,看它当年会赚还是会亏。它回答的是「这条规则历史上到底赚不赚」,不是「明天会不会涨」。

回测结果为正就说明这个形态有效吗?

不一定。一个形态跑出「每笔 +3.5%」本身没有意义 —— 那段行情本来就在涨。要跟对照组比:换成随机的日子入场、换成信号前后三个月里的另一天入场,同一批标的、同样多笔、同一条出场规则,只把入场点换掉。跟后者比得到的才是剥掉择时之后形态自己的贡献。

t 值是干什么的?

判断差距是不是噪声。「多赚 0.43 个点」和「多赚 0.05 个点」在屏幕上一样长,而前者是边际、后者是噪声。本页 |t| 小于 2 一律写「分不出」,不写成「持平」—— 后者听着像测过了不赚不亏,真相是这个样本量下量不出来。

哪些坑会让回测结果虚高?

前视偏差(同一根既算信号又成交)、抽样偏差(在抽样池而不是全量扫描上算胜率)、幸存者偏差(把已退市的票排除在外)。三个都会让结果好看得多,本页的做法与实测差距写在「三件容易把回测做成自我安慰的事」一节。

怎么自己跑一遍?

K线训练里练出手感的形态可以直接跑回测,也能换参数重跑;想按自己的因子做组合级回测,用数据研究台的回测实验室。两个都免费。

本页数据与结论仅供研究参考,不构成投资建议。 历史回测结果不代表未来表现。

大波浪数据首页 · 免责声明 · 隐私政策 · 联系我们 · 沪ICP备2026022374号