回测的真相与陷阱:为什么「测了十年」不等于「靠谱」
目录 回测是什么,能解决什么问题 外行最容易误读的一句话:「我回测了十年」 时间跨度 vs 数据粒度:同一根 K 线里藏着多少故事 从日 K 到 Tick:精度越高,故事越接近真实 撮合引擎与交易所现实:你的回测里成交得太「乖」了 插针、流动性与极端行情:图表上看不见的伤口 为什么回测曲线往往比实盘好看 其它常见坑:从幸存者偏差到过拟合 可以怎么做:让回测更「诚实」 小结 回测是什么,能解决...

Source: DEV Community
目录 回测是什么,能解决什么问题 外行最容易误读的一句话:「我回测了十年」 时间跨度 vs 数据粒度:同一根 K 线里藏着多少故事 从日 K 到 Tick:精度越高,故事越接近真实 撮合引擎与交易所现实:你的回测里成交得太「乖」了 插针、流动性与极端行情:图表上看不见的伤口 为什么回测曲线往往比实盘好看 其它常见坑:从幸存者偏差到过拟合 可以怎么做:让回测更「诚实」 小结 回测是什么,能解决什么问题 回测(Backtesting) 指在历史数据上,用固定规则「假装」在过去交易,统计收益、回撤、胜率等指标。它的价值是:在不动真金白银的前提下,快速验证策略逻辑是否自洽、参数是否过于极端、对哪些市场环境敏感。 它不能保证未来表现,只能回答:「若在过去这段数据、在某种成交与费用假设下,这套规则会怎样表现。」 外行最容易误读的一句话:「我回测了十年」 十年听起来很长,心理上容易等价于「样本够大、结论可靠」。但在量化里,「十年」只描述了时间轴的长度,没有描述采样密度与成交假设。 同一段十年: 按日 K 回测,大约只有 3,650 根左右 K 线(视交易日略少); 按1 分钟 K 回测,同一段历史的 K 线数量大约是日 K 的数百倍; 若按 Tick(逐笔成交) 或订单簿事件回放,信息量又比分钟 K 再高几个数量级。 信息量不同,对同一策略的结论可以完全不同。 外行听「十年」很踏实;内行会先问:十年是哪种颗粒度上的十年? 时间跨度 vs 数据粒度:同一根 K 线里藏着多少故事 OHLC 丢掉了什么 常见的 K 线只记录 开高低收(OHLC) 与成交量。你不知道这一段时间里价格走过的路径:是先跌后涨,还是先涨后跌?中间有没有快速扫过你的止损再回来? 对很多策略(尤其是带止损、带网格、带条件单的策略),路径依赖极强:同样的 OHLC,不同路径会导致完全不同的成交与盈亏。 粗粒度回测在做什么隐含假设 用日 K 回测时,往往隐含了类似假设:「我能在开盘价/收盘价/某种理想价位成交」「止损一定按我想的价格触发」等。这些假设在实盘中常常不成立——尤其在波动大、流动性分层明显的品种上。 从日 K 到 Tick:精度越高,故事越接近真实 下面用直觉对比(非绝对,但方向普遍成立): 粒度 典型用途 主要风险 日 K 粗筛趋势、长周期因子 路径未知,止损/网格等容易「过于乐观」 小时 / 15 分钟