Skip to content

07_Backtest_Simple_vs_Compound

youngcan edited this page May 25, 2026 · 1 revision

为什么策略回测要用单利?

单利就是"赚多少算多少",既不夸大、也不放大噪声。它是策略研发阶段最诚实的口径——把过拟合策略压得跑不起来、把好策略和坏策略放在同一条赛道上比较、把风控边界算得清清楚楚。复利只在"长期能赚、装得下钱、利润真能滚回去"这三件事都成立时,才适合作为补充展示。


一、单利和复利的区别

两者只差一件事:赚到的钱要不要立刻再投进去。

口径 公式 直觉
单利(cumsum) 每期收益按最初本金算,逐期累加 本金 100 万,每年赚 20% → 每年稳赚 20 万,10 年赚 200 万
复利(cumprod) 每期赚到的钱并入本金,下期按新本金继续 100 万 × 1.2^10 → 10 年赚 519 万

简而言之,单利是直线,复利是指数曲线。第一年两者完全一样,从第二年开始分叉。


二、对比:同样年化 20%,跑 10 年

年份 单利累计(万元) 复利累计(万元) 复利比单利多出
第 1 年 20.0 20.0 +0%
第 2 年 40.0 44.0 +10%
第 3 年 60.0 72.8 +21%
第 5 年 100.0 148.8 +49%
第 7 年 140.0 258.3 +85%
第 10 年 200.0 519.2 +160%

观察:

  • 2 年以内:差距 < 10%,短周期可视作等价
  • 3-5 年:差距 20%-50%,对策略稳定性要求陡增
  • 7 年以上:差距指数级放大,复利线脱离实盘地心引力

三、为什么量化研发阶段一律走单利

3.1 复利依赖的假设实盘几乎都不成立

  • 策略容量有天花板:本金从 1000 万翻到 1 亿,边际收益率几乎一定被吃掉
  • 放大头寸被滑点反噬:成交量越大、滑点越深,alpha 一边干一边漏
  • 回撤破坏复利连续性:复利曲线摔一跤,恢复时间比单利长得多
  • 资金不是想加就能加:风控、合规、资金流入流出节奏都会打断理想节奏

单利按最初本金算,得到的是"线性收益的下界",更贴近实盘真正能拿到手的业绩。

3.2 天然的过拟合过滤器

复利会把样本内的微小优势指数放大:

因子质量 单利下的样子 复利下的样子
真有效(IC ≈ 0.1) 稳定线性上行 指数级上行,更亮眼
过拟合(IC ≈ 0.02) 勉强为正,区分度不强 被放大成"伪 alpha",容易看走眼
纯噪声(IC ≈ 0) 横盘震荡,一眼能看穿 波动被放大,甚至像有上行趋势

一个 IC 只有 0.02 的过拟合假因子,在 10 年复利曲线上能跑出"年化 100%"的神奇业绩;切到单利口径后原形毕露。

3.3 算起来简单,归因和风控都方便

优势 实际好处
公式线性 总收益 = 本金 × 每期收益率 × 期数,求导拆分都直接
指标可加 多个子策略收益直接相加 = 总收益
风控边界准 最大回撤、止损线、仓位规划都能提前算清
跨品种/跨周期可比 不同窗口、不同标的可横向比较
统计推断更稳 夏普、Calmar、信息比更接近高斯假设

3.4 大策略池里让比较变得公平

上千条策略比较时,复利口径下跑得早、运气好的策略会因指数效应拿到不成比例的优势。单利把所有策略放在同一条线性赛道上:IC、夏普、Calmar 天然可加、可比、可排序。


四、什么时候才能用复利

复利本身没有错,但前置条件必须同时成立:

✅ 可以上复利的场景

  • 策略长期有效(5 年以上),无明显衰减
  • 资金容量足够大,加仓不掉收益率
  • 利润能全部滚回去(不分红、不抽资、不被合规卡)
  • 回撤很小,不会被风控强制减仓
  • 展示场景是长期目标(养老金、定投)

❌ 千万别用复利的场景

  • 中短期或中高频策略(容量极易触顶)
  • 策略有衰减,alpha 周期性失效
  • 实盘有滑点、手续费、占用成本等摩擦
  • 正在做过拟合检测或横向比较
  • 研发/筛选阶段,目标是稳健而不是好看

五、配套开源工具:wbt

wbt(weight backtest) 是一个独立的 PyPI 包,专门跑基于权重的策略回测。默认累计收益走单利(cumsum)口径。

import wbt

wb = wbt.WeightBacktest(
    data,
    digits=2,
    fee_rate=0.0002,
    n_jobs=1,
    weight_type="ts",  # 或 "cs"
    yearly_days=252,
)

# wb.daily_return.cumsum() → 单利累计收益曲线

设计取舍:

  • 累计曲线走 cumsum:整段回测的单利累计收益
  • 多头超额也走 cumsum:归一化后 cumsum 求差,直观且可加
  • 年内复利、年间单利wb.yearly_return 年内用复利聚合(行业惯例),跨年汇总仍单利
  • 多策略叠加直接相加:权重收益直接相加,不用为指数项分心

六、总结

  • 真实:贴近实盘能拿到手的业绩
  • 稳健:不放大噪声,研发阶段就能把过拟合压下去
  • 好解释:公式线性 + 指标可加 + 风控边界算得准
  • 可比较:所有策略放在同一条线性赛道上
  • ⚠️ 复利的边界:长期有效 + 容量充足 + 利润真能滚 + 回撤极小,四条缺一不可

实操建议

  1. 研发/筛选/回测阶段:一律走单利,保证评估真实可比
  2. 对外路演/长期资金规划:可补复利曲线,但必须标注"假设利润全额再投且策略长期有效,仅供参考"
  3. 禁止口径混用:同一份报告里不在不同章节切换单利和复利

来源:zengbin93(CZSC 作者)· 内容由 AI 辅助整理

Clone this wiki locally