Jackhai的博客

策略实验变成工程问题

我以前对交易策略实验的理解很简单:有一个想法,写出来,回测,效果好就继续,效果差就删掉。

这套流程看起来直接,但真正做久了会遇到一个问题:你很难判断一个实验到底失败在哪里。

是想法本身不行?

是样本不对?

是回测方式有偏?

是实盘环境和本地环境不一致?

还是代码刚好写错了?

如果这些问题混在一起,一个实验失败以后,最后只会剩下一句“效果不好”。这句话没有信息量。它既不能告诉你该丢掉什么,也不能告诉你该保留什么。

最近一次策略实验让我更明确地意识到:交易策略实验不能只当成“写策略”。它更像一个工程问题。

策略想法最不值钱

交易里最容易产生的是想法。

看到一个形态,觉得能做。看到一个指标,觉得可以过滤。看到一次错过的行情,觉得系统应该补一个条件。尤其是盯盘久了以后,每天都能冒出很多“如果当时这样就好了”。

问题是,这类想法通常都很便宜。

便宜不是说它一定没价值,而是说它太容易产生,也太容易被样本诱导。市场刚走完一段行情,你回头看,几乎总能找到一个规则解释它。真正难的是证明这个规则不是为刚刚那段行情量身定做的。

所以策略实验的核心,不是把想法尽快写进主策略,而是尽快把想法压进一个可以被验证、可以被丢弃的结构里。

一个想法如果只能靠口头描述存在,它就会越来越像信念。

一个想法如果能被拆成输入、状态、触发条件、退出条件、风险暴露和验证窗口,它才开始变成工程对象。

信念很难删除。

工程对象可以删除。

不要让实验污染主线

这次实验一开始也犯了一个常见错误:把长期实验改动和稳定主线放在同一个工作区里推进。

短期看这样很方便。

主线有新改动,合一下。实验里发现问题,顺手改一下。回测工具缺一点能力,也顺手补一下。几天以后,工作区里就混在一起了:

这时候再问“这个分支还有没有用”,就很难回答。

因为里面确实有有用的东西,也确实有应该丢掉的东西。

真正的问题不是分支有没有用,而是不同性质的改动被绑在了一起。

策略假设应该是可丢弃的。

基础设施应该是可复用的。

主线同步应该是可独立验证的。

这三者如果混在一起,实验失败时会不敢删,实验成功时也不敢合。

基础设施和策略逻辑要分开

这次最后比较有价值的部分,其实不是策略 v2。

策略 v2 修了一个局部逻辑问题,但真实回放结果并不好。按策略本身看,它没有足够理由进入主线。

但为了验证它而补出来的能力是有价值的:

这些东西和某一个具体策略无关。

也就是说,策略实验失败了,但实验过程中产生的验证设施成功了。

这是很关键的分离。

如果把“策略是否上线”和“工具是否合入”绑在一起,就会浪费掉这部分收益。最后要么因为策略表现不好,把工具也一起丢掉;要么因为工具确实有用,把策略也顺手带进去。

两种都不对。

更合理的处理方式是:基础设施单独合入,策略逻辑留在实验分支,甚至直接删掉。

这听起来像多走一步,其实是在降低后续实验成本。

下一次再有新想法,不需要重新搭回放能力。只要把新假设接进同一套验证流程里就行。

实验应该有退出机制

很多策略实验的问题,不是没有开始,而是没有结束。

一开始觉得先试试。试完以后结果不够好,但又看到某几个局部案例有效,于是补一个条件。补完以后收益还是一般,但回撤好像改善了一点,于是再换一个窗口。窗口换完以后又觉得样本太少,再等几天。

最后实验变成一种长期悬挂状态。

它没有上线,也没有失败。它只是占着一个分支、一段注意力和一堆上下文。

这种状态很危险。

因为交易系统最怕的不是没有想法,而是有太多半死不活的想法。每个想法都觉得自己还差一次验证,每个分支都觉得自己还有一点价值。时间久了,主线会越来越难判断,实验也越来越难复现。

所以实验应该在一开始就有退出机制。

比如:

最重要的是最后一条。

因为很多实验不会彻底失败。它们会给你一个很暧昧的结果:局部对,整体不够好。

这时候如果没有提前定规则,就很容易陷入解释。

交易策略最不缺解释。

缺的是停止解释的规则。

人的工作变成判断边界

工具越来越强以后,写代码本身的成本确实下降了。

但这不代表策略研究变简单了。它只是把难点从“能不能实现”转移到了“该不该相信”。

以前一个想法可能因为实现成本太高而自然死亡。现在实现成本低了,很多本来不会被写出来的想法都会被写出来。

这看起来是好事,但也会制造更多噪声。

如果没有验证设施,没有实验隔离,没有退出机制,低成本实现反而会让系统更乱。因为每个想法都能很快变成代码,每段代码又都带着一点局部合理性。

人的工作不应该是和工具比赛写代码。

人的工作应该是判断边界:

这些判断不会因为工具变强而消失。

相反,工具越强,这些判断越重要。

小结

现在我更倾向于把交易策略实验拆成三层:

第一层是策略假设。它应该便宜、快速、可删除。

第二层是验证基础设施。它应该稳定、复用、单独上线。

第三层是上线决策。它应该保守,只看真实约束下的结果。

策略实验的目标,不是让每个想法都活下来。

相反,一个好的实验系统应该让不够好的想法更快死掉,同时把验证过程中沉淀下来的工具留下来。

这才是交易系统工程化真正有价值的地方。

它不是提高每一个策略想法的成功率。

它是降低错误想法长期占用系统的成本。


本文创建日期: 2026-06-14

最后更新日期: 2026-06-14