本文目录导读:

这是一个很有意思的问题,也是量化交易领域最经典的“陷阱”之一。
直接回答: 没有任何一个严谨、负责任的开源项目会承诺或保证一个具体的“回测胜率”数字(我们保证胜率 80%”),如果看到有项目或博主宣称“胜率 90%”,几乎可以断定那是过拟合或骗局。
如果我们剥离“保证”这个词,只谈“优秀开源策略的典型回测胜率范围”,大概可以分成以下几类:
按策略类型划分的“合理”胜率区间
-
趋势跟踪策略(如海龟交易法则、双均线):
- 胜率:通常很低(30% - 45%)。
- 逻辑: 靠“截断亏损,让利润奔跑”,大部分交易是试错亏损的,但少数几笔大盈利覆盖所有亏损,这类策略的盈亏比(Profit Factor)通常大于 2.0。
- 开源项目示例: 常见的
backtrader教程、vnpy内置的CTA策略。
-
均值回归策略(如布林带反转、RSI超买超卖):
- 胜率:通常较高(60% - 80%)。
- 逻辑: 赚取价格波动的小差价,虽然胜率高,但单笔盈利小,一旦趋势行情来临,止损会吃掉大量利润(胜率高但盈亏比低)。
- 注意: 这类策略在震荡市很赚钱,在单边市极易爆仓,回测曲线往往是“平稳上升,然后断崖式下跌”。
-
高频/做市商策略:
- 胜率: 极高(90%以上)。
- 逻辑: 赚取买卖价差,持仓时间极短(毫秒级)。
- 注意: 开源项目几乎无法复现这类策略的回测,因为需要极低延迟和交易所撮合引擎的微观结构,开源回测引擎(如 Backtrader)无法模拟。
为什么“高胜率”在开源项目中反而是“危险信号”?
如果看到一个开源项目的回测报告显示胜率 90% 且年化收益率 500%,请保持警惕,这通常意味着:
- 过拟合(Overfitting): 项目把参数调到了完美契合历史数据的地步,比如把均线参数调成
(57, 233)仅仅是因为这样回测曲线好看,但放到未来实盘,市场形态一变就失效。 - 未来函数(Look-ahead Bias): 回测代码不稳定,用了未来的数据(比如用当天的收盘价去算当天的开盘信号)。
- 幸存者偏差: 样本只选了活下来的股票,排除了退市的股票,导致收益虚高。
- 数据错误: 复权处理不当,或者使用了错误的撮合逻辑(比如按收盘价买入但按最高价平仓)。
开源项目通常关注什么指标?(比胜率更重要)
好的开源项目(如 Zipline、Backtrader、Freqtrade、Lean)在展示结果时,最看重的指标是:
- 盈亏比(Profit Factor,PF): 总盈利 / 总亏损。大于 1.5 算合格,大于 2.0 算优秀。 单纯胜率高没用,赚1块亏10块的话,90%胜率也会亏钱。
- 最大回撤(Max Drawdown,MDD): 从最高点跌到最低点的幅度。开源项目的主流策略通常会把最大回撤控制在 20% 以内,如果某个策略回撤达到 50%,即便胜率再高,实盘也很难拿住。
- 夏普比率(Sharpe Ratio): 衡量风险调整后收益,开源策略普遍目标在 1.5 - 3.0 之间。
- 交易频率: 如果不能稳定盈利,低频率策略(每天一次)比高频策略更稳健。
一个标准的优秀回测案例(供参考)
如果你在 GitHub 上看到一个成熟策略(比如一个基于 LSTM 或 Transformer 的学习型项目),其回测报告如果展示了以下数据,属于非常优秀的水平:
- 胜率: 55% - 65%
- 盈亏比: 大于 1.8
- 最大回撤: 小于 15%
- 年化收益: 20% - 50%(注意:如果超过100%,要么是加了高杠杆,要么是过拟合,要么是加密货币上的暴利策略但波动极大)
给开源“玩家”的忠告
“回测是艺术的谎言,实盘是现金的试金石。”
开源项目最大的价值在于透明、可复现,而不在于承诺收益,你可以用开源项目回测去验证一个逻辑(低波动率股票跑赢大盘”),而不是去追求一个高胜率的“圣杯”。
如果非要说一个底线数字:“如果一个开源策略的回测胜率超过 80%,同时盈亏比还大于 2,大概率是代码写错了。”
不要问“能达到多少”,而要问“凭什么能到”?如果这个项目把胜率作为营销卖点,直接划走即可,真正的量化玩家关注的是风险可控下的长期复利。