回测:它最有价值的工作,是尽早告诉你策略哪里会坏

入场和退出规则写清以后,终于可以回到历史数据里测试。但回测不是把参数调到历史曲线最漂亮,而是让一套冻结的规则接受尽可能诚实的压力测试。漂亮结果值得看,失败案例通常更值得看。

约 15 分钟交易系统设计 · 第 3 课核心:历史检验
历史记录、显微镜和图表表示策略回测
学习目标
  • 理解回测前为什么必须冻结规则
  • 识别未来函数、幸存者偏差和理想化成本
  • 理解样本内与样本外的区别
  • 理解过拟合为什么会让历史越来越漂亮、未来越来越脆弱
  • 把回测结果理解为历史证据而非未来保证
历史成绩最容易骗人

参数是看完历史以后挑出来的,这份漂亮回测还缺什么?

回测是把交易规则放回历史数据检查,而不是证明未来。最危险的情况,是一边看结果一边改参数,最后把历史噪音当成策略优势。

Manual Backtest

不要只看一张漂亮图:逐笔跑完 24 个历史样本

规则已经固定。每点击一次才揭晓下一笔 R 结果;指标会随着样本增长实时变化。

????????????????????????
已测试样本0/24
胜率0.0%
平均盈利+0.00R
平均亏损-0.00R
最大回撤0.00R
期望值+0.00R
不能边考试边改答案

如果每看到一次失败就改一次规则,最后只会得到一套专门记住历史的策略

回测开始前,要固定入场、退出、数据范围、参数和成本假设。测试中发现问题当然可以修改,但修改后应该形成新版本,再重新测试,而不是把旧结果和新规则混在一起。

回测最会骗人的是方法

数据没错,测试方法仍然可以把结果做得异常好看

问题发生了什么
未来函数历史时点使用了当时还不知道的数据,例如未来收盘、后来修订的数字
幸存者偏差只测试后来仍然存在的公司或产品,把已经退出样本的失败者漏掉
理想化成本忽略手续费、价差、滑点、未成交和容量限制
反复调参在同一段历史上不断寻找最漂亮的参数,逐渐把噪声也写进规则
必须留一部分答案没看过

样本内可以帮助设计,样本外才真正检查规则离开熟悉数据后会怎样

  1. 1样本内用于发现问题、设计或调整规则。这里的结果已经参与了规则形成。
  2. 2冻结版本决定不再针对这批数据调参。
  3. 3样本外用规则设计时没有参与调整的后续数据检验。如果看完又继续调参,这段数据就不再是样本外。
不要只看净利润

一条漂亮收益曲线,必须和回撤、交易次数、成本和失败阶段一起看

期望值

平均一笔历史模拟赚多少或亏多少

要计入合理成本,并说明样本范围。

回撤

历史上经历过多深的不利阶段

它决定策略在现实中是否可能在“等它恢复”之前就难以坚持。

稳定性

换时间区间、成本或小幅参数后结果是否完全翻转

轻微变化就崩溃,说明规则可能过度依赖特定历史细节。

知识检测

检验你是否真正理解

只检验回测方法和边界。

第 1 题,共 3 题

为什么回测前要冻结规则版本?

第 2 题,共 3 题

什么最接近未来函数?

第 3 题,共 3 题

一套规则样本内非常漂亮,样本外迅速失效,最应该怀疑什么?

认识你的学伴

卡住了?让 Mira 帮你拆解

正在检查登录状态...