回测曲线很漂亮,先查它有没有“偷看答案”
看一份策略回测,收益数字之前,可以先问:当时真的拿得到这些数据吗?
最直观的假设例子:策略在上午9点决定买入,却用到了当天晚上才发布的数据。代码也许能正常运行,曲线也可能很好看,但真实的上午9点根本不知道这个信息。这就把未来资料带回了过去。
第二种问题没那么显眼:在同一段历史上试很多组参数,最后只展示最漂亮的一组。选出赢家的过程中,已经利用了这段历史的结果;再拿这段数据证明“很有效”,说服力就弱了。
所以,检查回测至少留三道门:
① 数据时间门。指标的日期不够,还要看它在现实中何时发布、何时可获得。交易决策只能使用当时已经知道的信息。
② 样本分隔门。用于设计、调参的数据,与最终检验的数据分开。后一段一旦被反复用来改规则,就不再是干净的未知考题。
③ 实现条件门。交易成本、成交条件、样本覆盖是否合理?把模型中省略的约束列出来,别把省略当成现实不存在。
一个简单记录法:每次测试都写下规则版本、训练区间、检验区间和改了什么。看见某次结果变好,才能分辨是机制更合理了,还是只是换到了更顺手的一组历史。
样本外表现好,也不等于未来一定赚钱。它能做的是减少一部分自我误导,让“这个想法值得继续研究”有更清楚的证据。
回测首先是一种检验工具。若每次不满意都改到满意,最后很可能只是把过去背熟了。
#交易复盘 #回测 #量化知识
看一份策略回测,收益数字之前,可以先问:当时真的拿得到这些数据吗?
最直观的假设例子:策略在上午9点决定买入,却用到了当天晚上才发布的数据。代码也许能正常运行,曲线也可能很好看,但真实的上午9点根本不知道这个信息。这就把未来资料带回了过去。
第二种问题没那么显眼:在同一段历史上试很多组参数,最后只展示最漂亮的一组。选出赢家的过程中,已经利用了这段历史的结果;再拿这段数据证明“很有效”,说服力就弱了。
所以,检查回测至少留三道门:
① 数据时间门。指标的日期不够,还要看它在现实中何时发布、何时可获得。交易决策只能使用当时已经知道的信息。
② 样本分隔门。用于设计、调参的数据,与最终检验的数据分开。后一段一旦被反复用来改规则,就不再是干净的未知考题。
③ 实现条件门。交易成本、成交条件、样本覆盖是否合理?把模型中省略的约束列出来,别把省略当成现实不存在。
一个简单记录法:每次测试都写下规则版本、训练区间、检验区间和改了什么。看见某次结果变好,才能分辨是机制更合理了,还是只是换到了更顺手的一组历史。
样本外表现好,也不等于未来一定赚钱。它能做的是减少一部分自我误导,让“这个想法值得继续研究”有更清楚的证据。
回测首先是一种检验工具。若每次不满意都改到满意,最后很可能只是把过去背熟了。
#交易复盘 #回测 #量化知识