
一句话结论:回测是用历史数据检验规则的唯一办法,但只看一个收益率数字会被骗。第 1 课的「连跌 5 天买入」单笔平均赚 0.85%,真按每天分仓去买,10 年组合亏了 71%。
上一课我们拆开了一个策略的三个部分。这一课讲怎么检验它:回测是什么,以及一份回测结果为什么不能只看收益率。

一、回测是什么
回测就是把写好的规则放到历史行情里,假装从过去某一天开始执行,看每一笔交易的结果。
一次回测需要四样东西:
| 需要什么 | 例子 |
|---|---|
| 一条明确的规则 | 连跌 5 天,第二天开盘买入,持有 5 天 |
| 历史数据 | 2016 年以来全 A 股的复权日线(第 2 课讲过为什么要复权) |
| 成交假设 | 用第二天开盘价买;一字涨停买不进 |
| 成本假设 | 每笔来回扣 0.15% |
回测程序按时间顺序逐日检查规则,满足条件就记一笔买入,到期记一笔卖出,最后汇总成一份报告。
回测不是什么
- – 不是预测。 回测只说明这条规则在过去的表现,不保证未来。
- – 不是模拟盘。 模拟盘是往后走、用实时行情;回测是往回看、用历史行情。
- – 不是看图找规律。 在图上找几个成功案例谁都会,回测要把所有符合条件的情况都算进去,包括失败的。
二、青柠数据实验:同一条规则,三种算法
我们用第 1 课检验过的口诀「跌多了总会反弹」:
- – 规则:连跌 5 天,第二天开盘买入,持有 5 天后收盘卖出。
- – 股票池:全 A 股,排除 ST 和北交所。
- – 区间:2016 年 1 月至 2026 年 9 月,共 227,698 笔交易。
算法 1:单笔平均收益
把 22.8 万笔交易的收益加起来求平均:
| 指标 | 数值 |
|---|---|
| 平均每笔收益 | +0.85% |
| 胜率 | 51.9% |
看起来不错:每笔平均赚 0.85%,胜率过半。一年交易 50 次,岂不是能赚 40% 以上?
算法 2:扣掉成本、扣掉大盘
| 指标 | 数值 |
|---|---|
| 平均每笔收益 | +0.85% |
| 扣掉 0.15% 成本后 | +0.70% |
| 扣掉同期市场平均后(超额) | +0.01% |
| 两样都扣掉 | −0.14% |
同一天随便买一只股票持有 5 天,平均也能赚这么多。扣掉成本和大盘,这条规则没有优势。
算法 3:真的拿一笔钱去做
前两种算法有一个隐藏假设:每笔交易都投入同样的钱,不管那天有多少个信号。但真实账户的钱是有限的。
我们按真实账户的方式算一遍:把资金分成 5 份,每天用 1 份等额买入当天所有信号,持有 5 天后卖出;当天没有信号,这份钱就空着。
| 连跌 5 天(不扣成本) | 连跌 5 天(扣成本) | 同期全市场等权 | |
|---|---|---|---|
| 10 年总收益 | −71.1% | −86.3% | +103.7% |
| 年化收益 | −10.9% | −16.9% | +6.8% |
| 最大回撤 | −85.2% | −91.2% | −42.1% |
| 回撤是否恢复 | 至今没有 | 至今没有 | 2020 年 7 月恢复 |
单笔平均 +0.85% 的规则,真金白银地做,10 年亏掉七成。 同期什么都不想、等额买入全部股票,翻了一倍。
为什么差这么多
因为信号扎堆。连跌 5 天的信号平时每天几十个,大跌之后一天能冒出几千个。大跌后往往有反弹,这几千笔交易收益很高,把「平均每笔」拉了上去。
但真实账户在这种日子里没法多投钱:那一天的几千只股票,只能分到那一份资金。按「每天」而不是「每笔」平均,这条规则的平均收益是 −0.13%,不是 +0.85%。

2024 年最典型:这一年有 36,547 笔信号,平均每笔赚 2.67%,一年就占了 10 年全部单笔收益加总的一半。
每年的组合收益
| 年份 | 连跌 5 天组合 | 全市场等权 |
|---|---|---|
| 2016 | −23.4% | +1.0% |
| 2017 | −25.5% | −3.0% |
| 2018 | −58.4% | −28.7% |
| 2019 | −15.5% | +32.5% |
| 2020 | −11.5% | +21.8% |
| 2021 | +6.7% | +26.1% |
| 2022 | −1.5% | −10.1% |
| 2023 | +4.4% | +8.7% |
| 2024 | +26.9% | +4.6% |
| 2025 | +32.3% | +40.0% |
| 2026 | −11.5% | +0.1% |

11 年里只有 2022 年和 2024 年跑赢了全市场。
另外两条规则
我们又试了两条常见规则,结果更差:
| 规则 | 交易笔数 | 单笔平均 | 胜率 | 10 年组合(不扣成本) |
|---|---|---|---|---|
| 连跌 5 天,持有 5 天 | 227,698 | +0.85% | 51.9% | −71.1% |
| 放量 2 倍且涨超 5%,持有 5 天 | 189,902 | −0.65% | 41.6% | −97.3% |
| 收盘创 60 日新高,持有 20 天 | 464,940 | −0.14% | 43.0% | −80.4% |
「放量大涨追进去」这种常见做法,平均每笔亏 0.65%,组合 10 年几乎亏光。
三、只看收益率会漏掉的五件事
从上面的实验可以总结出,看一份回测结果至少要问五个问题:
| 要问的问题 | 为什么 | 本课的例子 |
|---|---|---|
| 是单笔平均,还是组合收益? | 单笔平均忽略了资金有限、信号扎堆 | +0.85% 对比 −71% |
| 扣成本了吗? | A 股每笔来回有佣金、印花税、滑点 | 0.85% 变 0.70% |
| 跑赢大盘了吗? | 牛市里买什么都赚 | 超额只有 +0.01% |
| 收益集中在少数时候吗? | 靠一两次行情赚的钱很难复制 | 2024 年贡献一半;去掉最赚的 1% 交易,平均从 0.85% 降到 0.54% |
| 中间最多亏过多少? | 亏 85% 的账户,没人能坚持到最后 | 最大回撤 −85%,10 年没恢复 |
还有一点:收益率要看年化。 「累计赚了 100%」如果用了 10 年,年化只有 7%;如果用了 2 年,年化是 41%。下一课会讲年化收益、最大回撤、夏普比率这些指标怎么算、怎么看。
四、常见误区
「回测收益高,实盘就能赚」
回测只是过去的表现。而且像本课这样,换一种算法,结论可能从赚钱变成亏钱。
「胜率过半就是好策略」
连跌 5 天胜率 51.9%,组合依然亏 71%。
「交易成本很小,可以忽略」
单笔 0.15% 看起来不大,但持有 5 天的策略一年要交易约 50 次,一年就是 7.5% 的成本。
「回测里出现过的赚钱规则都能用」
如果试了 100 条规则,挑出最好的那条,它很可能只是运气好。这叫过拟合,第 56 课专门讲。
在青柠中实操
- 1. 在策略编辑里写一条规则,比如「连续下跌 5 天买入,持有 5 天卖出」。
- 2. 先用单只股票做一次回测,在可视化回测里逐笔看清每次买卖发生在哪里。
- 3. 再用批量回测在全市场跑同一条规则,看全市场的胜率和平均收益,和单只股票的结果对比。
青柠的回测按复权价格计算,次日开盘成交,一字涨停买不进。想直接看已经回测过的策略,可以去青柠策略市场:
下一课讲怎么读懂一份完整的回测报告:年化收益、最大回撤、夏普比率、胜率、盈亏比。
常见问题
回测需要多长的历史数据?
至少要覆盖一轮牛市和一轮熊市。A 股 2016 年以来有 2018 年的熊市、2019–2021 年的结构性牛市,10 年左右的数据比较合适。
回测用每天的收盘价成交可以吗?
不行。信号是收盘后才确定的,当天收盘时你还不知道信号是否成立。用第二天开盘价成交更接近实际。
为什么组合回测要「把资金分成 5 份」?
规则是持有 5 天,每天都可能有新信号。资金分成 5 份,每天用 1 份,5 天后正好轮回来,这样每天都有钱可用,也不会超出总资金。这是一种简化,实际回测引擎会按可用资金逐笔计算。
同一个回测,青柠和别的软件结果不一样?
很常见。复权方式、成交价格、成本、涨跌停处理都会影响结果。看回测报告时先确认这些口径。
口径说明
股票池为全 A 股,排除 ST(按当前名称)和北交所,价格后复权。信号日收盘满足条件,次日开盘买入,持有 N 日后收盘卖出;次日一字涨停视为买不进并剔除。信号区间 2016-01-04 至 2026-09-24(持有 20 天的规则至 2026-09-03),组合区间 2016-01-04 至 2026-10-09。成本按每笔来回 0.15% 计算。超额收益为单笔收益减去同日全部股票同口径收益的平均。组合按持有天数把资金分为 N 份,每天用 1 份等额买入当天全部信号,无信号时该份资金空仓;未模拟跌停卖不出和容量限制。全市场等权为全部股票每日收益的等权平均。数据由青柠量化回测数据库计算。历史统计不代表未来表现,不构成投资建议。
读到这里,不如自己验证一次
文章里的逻辑,你可以在青柠量化里用真实数据重新跑一遍。免费,零代码。