投资学习

返回文章索引

回测原理与实操指标

practice 实操说明 medium 可执行规则 部分核验 6:建立行动规则

回测原理与实操指标

回测是把一套明确规则放回历史数据里,模拟如果过去按这套规则执行,会得到什么收益、回撤和交易路径。

它回答的不是“未来一定赚钱吗”,而是三个更实际的问题:

  1. 这套规则在历史上有没有明显失效区间。
  2. 最差路径是否超过自己的风险承受能力。
  3. 规则收益是否足以覆盖交易成本、税费、滑点和执行难度。

回测前先写清规则

不能先看图、调参数,再倒推出规则。第一版只允许回测已经能写成文字的规则。

最低要写清:

  • 标的范围:例如沪深300、标普500、纳斯达克100、黄金或组合。
  • 资金方式:一次性买入、月定投、估值分批、回撤补仓或再平衡。
  • 买入条件:例如固定日期、估值百分位、回撤阈值、仓位偏离。
  • 卖出条件:例如再平衡、估值高位、止盈、止损或持有到期。
  • 仓位上限:单资产、单主题、权益总仓位和实验仓位上限。
  • 成本假设:申购费、赎回费、管理费、交易佣金、买卖价差、QDII 溢价。
  • 执行频率:日、周、月、季度,不允许事后挑选最优交易日。

如果这些条件写不清,回测结果只是历史拟合,不是规则验证。

实操步骤

第一版可以用表格完成,不必先做程序化系统。

  1. 选择基准:同类宽基或原始资产,不和无关资产比较。
  2. 准备数据:至少包含日期、复权价格或净值、分红、交易成本和可交易状态。
  3. 固定规则:把买入、卖出、再平衡和资金上限写成不可事后修改的条件。
  4. 逐期模拟:按历史时间顺序执行,只使用当时已经可见的数据。
  5. 记录现金流:每次投入、赎回、分红和费用都要有日期和金额。
  6. 计算指标:收益、风险、路径、交易频率和稳定性分开看。
  7. 压力复核:单独看熊市、震荡市、牛市末期和快速反弹期。
  8. 保守折减:把历史结果打折后再进入 IPS,不把最好区间当成预期收益。

核心指标

维度 指标 看什么 常见误区
收益 年化收益率 / CAGR 历史复合增长速度 把短期高年化当成长期可持续
收益 年化保守预期 用历史年化打折后的行动预期 直接把回测年化写进目标收益
风险 最大回撤 从阶段高点到低点的最差跌幅 把历史最大回撤当成未来亏损上限
风险 回撤修复时间 多久回到前高 只看跌幅,不看熬多久
稳定性 正收益年份比例 年度层面的持有体验 用它替代每笔交易胜率
交易 买入胜率 买入后指定持有期盈利的比例 胜率高但单次亏损很大
效率 收益/回撤比 每承担 1 单位回撤换来多少收益 跨资产、跨周期直接比较
效率 夏普比率 单位波动对应的超额收益 忽略非正态和极端亏损
执行 换手率和交易次数 成本、精力和滑点压力 回测不扣费用
稳健性 分阶段表现 不同市场环境是否都能接受 只看全样本平均值

年化保守预期

年化保守预期不是回测软件直接给出的指标,而是把历史结果转成行动规则时的折减值。

第一版可以用简单规则:

年化保守预期 = min(历史全样本年化, 最近 5 年年化, 最差完整周期年化) - 安全折减

安全折减不需要精确,但必须存在。权益类和主题类策略至少要考虑估值环境、样本期长度、交易成本、未来收益中枢下降和执行偏差。

使用方式:

  • 用于判断这套规则是否值得占用风险预算。
  • 不用于承诺收益。
  • 不用于提高仓位上限。

买入胜率

买入胜率必须先定义持有期,否则没有意义。

例如:

每次触发买入后,分别统计持有 3 个月、6 个月、1 年、3 年后的正收益比例。

如果规则是长期定投,更应该看“任意起点持有 N 年的正收益比例”,而不是每一笔买入是否赚钱。

胜率的使用边界:

  • 高胜率不代表低风险。
  • 低胜率不代表规则无效,趋势策略可能靠少数大收益覆盖多次小亏。
  • 必须同时看平均盈利、平均亏损、最大单次亏损和最大连续亏损。

收益/回撤比

收益/回撤比常见实现是卡玛比率:

收益/回撤比 = 年化收益率 / 最大回撤绝对值

它比单看年化更接近真实持有体验。两个策略年化相同,最大回撤更小的策略更容易执行。

但它仍然有边界:

  • 最大回撤来自历史单一路径,未来可能更差。
  • 回撤修复时间不同,持有体验也不同。
  • 只适合同类资产、相近周期和相近规则之间比较。

必须排除的回测错误

  • 未来函数:使用当时还不知道的数据。
  • 幸存者偏差:只用今天还存在、表现还不错的标的。
  • 参数过拟合:反复调阈值直到历史结果最好。
  • 忽略成本:不扣申购费、赎回费、佣金、滑点、折溢价和税费。
  • 忽略限购和流动性:假设每次都能按净值无限买入或卖出。
  • 样本太短:只覆盖单一牛市或单一风格占优期。
  • 不设基准:策略赚钱但跑输简单持有同类宽基。

现成工具选择

工具选择先看规则复杂度,不要一开始就自建系统。

场景 工具 费用倾向 适合做什么 主要限制
ETF 和资产配置快速回测 testfol.io 免费为主 ETF 权重、再平衡、组合历史路径 偏美股 ETF,国内基金和 QDII 规则覆盖弱
长期资产配置理解 Portfolio Charts 免费为主 看不同资产配置的历史收益、最差年份、回撤和可视化结果 更适合配置研究,不适合复杂交易规则
实盘组合记录和复盘 Portfolio Performance 开源免费 记录交易、分红、费用,计算 TWRR、IRR、资产配置和再平衡 不是策略回测器,更适合真实账户复盘
图表和技术策略 TradingView 免费 + 订阅 Pine Script、技术指标、图表策略测试 免费版限制较多,复杂组合和现金流回测不强
云端量化回测 QuantConnect 免费层可用,进阶收费 多资产、Python/C#、样本外验证、模拟交易 学习成本高,国内基金和 QDII 细节仍需自处理
本地 Python 回测 backtrader 开源免费 事件驱动回测、买卖规则、手续费、仓位控制 需要写代码,数据质量自己负责
批量参数和向量化回测 vectorbt 免费/开源生态为主,进阶版本另看官网 快速测试大量参数、技术指标、组合规则 更偏程序员工作流,容易过度参数优化
回测后绩效报告 QuantStats 开源免费 CAGR、最大回撤、夏普、卡玛、胜率、HTML 报告 分析收益序列,不负责完整交易模拟
A 股和国内量化平台 聚宽、米筐、BigQuant 免费注册 + 增值服务 A 股数据、因子研究、策略回测、模拟交易 数据权限、费用和可导出能力需要逐项确认

第一版推荐路径:

  1. testfol.ioPortfolio Charts 做资产配置级别回测。
  2. Portfolio Performance 记录自己的真实交易和组合复盘。
  3. 规则复杂后,再用 backtradervectorbtQuantConnect 做程序化回测。
  4. 输出结果时,用 QuantStats 生成指标报告,再手工写入决策日志或 IPS。

国内基金、QDII 和场内 ETF 回测要额外小心。海外工具通常不能准确处理人民币份额、汇率、QDII 限购、场内折溢价、申赎费、跟踪误差和赎回到账时间,只能作为近似历史路径,不应直接作为交易指令。

最低合格结论

一次回测结论必须写成下面这种格式:

规则:
样本期:
基准:
成本假设:
历史年化:
年化保守预期:
最大回撤:
最长回撤修复时间:
买入胜率口径:
收益/回撤比:
最差市场阶段:
是否超过仓位上限:
是否进入 IPS:

结论只能有三类:

  • 可进入 IPS:规则清楚,风险可承受,成本后仍有意义。
  • 只进入观察清单:结果依赖特定市场环境,或样本不足。
  • 放弃:回撤不可承受、收益不能覆盖成本、或明显依赖过拟合。

行动规则

  • 回测结果只能支持规则复核,不能直接触发买入。
  • 回测前写规则,回测后只允许记录结论,不允许边测边改阈值。
  • 如果改了参数,必须重新标记为新规则,并重新记录样本期。
  • 正式使用前,至少经过一次样本外验证或小仓位观察期。
  • 任何回测策略都必须回到 IPS 的资金层、目标仓位和最大亏损约束。