五天里,我们检验了几种寻找交易信号的方法。三个候选被否决,一个因数据错误不得不重新检验,另一个则因统计原因未通过检验。
本周的主要成果并不是一个新的交易模型。我们目前还没有得到一个能为使用其信号提供充分依据的候选。但我们更清楚地了解到哪些方法未能通过检验,以及原因何在。
训练出模型并得到预测,并不等于证明这些预测适用于金融决策。
不能混为一谈的四种结果
这一周让我们看清:单一的“模型未通过”状态过于粗糙。它背后是不同的情况,需要采取不同的行动。
无效检验 —— 由于数据或流程中的错误,结果不能使用。
证据不足 —— 优势未能以所需的置信度得到确认。
无可准入方案 —— 已检验的应用方式均不满足准入条件。
候选被否决 —— 模型未通过检验,并在当前周期内关闭。
数据错误意味着:修正并重新检验。证据不足不等于已证明不存在信号。无可准入方案是关于适用性的否定结论,而非关于统计的结论。被否决的候选也不应仅仅因为结果不合心意就重新启用。
下面介绍这四种结果在实践中的样子。
从评估现成信号到自主寻找信号
过去,我们相当一部分 ML 研究是评估已经形成的交易候选:由一个独立组件识别市场情境,再由 ML 模型帮助评估其质量。
新方向提出了另一个问题:在没有预先形成候选的情况下,模型能否直接根据市场状态发现交易机会?
这是另一项任务。评估现成信号的模型所得到的结果,不能自动迁移到需要自行发现信号的模型上。
我们将工作分为两个尺度 —— Intra(短周期内更频繁的决策)和 Swing(较长周期内较少的决策)。两者分别检验:在一个尺度上的成功或失败,不被视为另一个尺度的证据。
研究集合包括简单线性模型、规则提取方法、梯度提升以及其他方法。目标不是挑选最复杂的算法,而是弄清哪种方法能提供令人信服的有用性证据。
第一步:明确模型究竟预测什么
第一个问题是训练目标。
可以预测市场方向,可以估计一次行情的潜在收益,也可以预测是否会达到交易目标。这些是不同的任务,在其中一项上的成功并不保证在另一项上成功。
对于新方向,我们选择在固定周期内、扣除交易成本后估计市场行情的潜在结果。
同时,我们区分了两件事:模型学习预测的结果,以及在考虑执行和仓位管理规则后,真实交易决策所产生的结果。
这一区别在初步检验阶段就显得很重要。数据中存在这样的情况:行情方向看起来很有吸引力,但一个可能的仓位会因其价格路径而以不同方式平仓。市场最终可能上涨,但在此之前可能先经历一段不利波动,而这段波动足以让仓位出局。
方向猜对了,并不一定意味着交易成功。
数据准备中的错误
在最初准备研究数据时出现了一个错误。部分检查在形式上成功完成,但数据中实际上没有可用的观测。“已完成”这一技术状态与结果在内容上是否正确并不相符。
我们没有接受这一数据集。我们修正了错误,增加了对确实允许使用的观测是否存在的检查,并重新构建了数据。修正后的结果通过了再次检验。
这里的教训并不在于 pipeline 可能含有错误 —— 这是众所周知的。更重要的结论是:检查必须确认存在正确的结果,而不仅仅是没有程序异常。如果所有观测都已变得不可用,程序成功运行结束就不应变成一个正面的研究结论。
第一个候选:简单线性模型
第一个实际候选是用于 Intra 的线性模型。
这是有意的选择。简单模型有助于在转向更复杂的算法之前,检验数据中是否存在稳定信号。它还提供了一个比较基准:未来的复杂模型必须展现出超越简单方法所能发现的价值。
研究周期包括数据准备、训练以及在独立时间段上的检验。第一次检验遇到了同一个数据处理错误,其结果被判定为无效,并在修正后重新进行。
结果是否定的:对于线性 Intra 模型,未能找到满足筛选条件的可准入决策方案。
这不一定意味着模型没有发现统计规律。但从发现规律到获准将其用于交易决策之间,还有一道额外的界限。线性 Intra 候选没有跨过这道界限。
第二个候选:用于 Swing 的线性模型
随后,我们在更长的尺度上检验了同一任务。否定结果的原因却有所不同。
线性 Swing 模型完成了检验,但证据不足以做出肯定的决定。
这里需要区分两种结果。第一种情况下,模型已经过检验,但没有任何可准入的使用方式满足要求。第二种情况下,数据不足以有把握地确认优势。
两者并不相同。在第一种情况下,流程会得出关于适用性的否定决定。在第二种情况下,统计上的不确定性仍然存在:现有数据不能为准入提供依据,但其本身也不能证明有用信号完全不存在。
我们得到的正是第二种结果。该候选未被准入后续使用,但我们既不会把证据不足说成完全不存在规律,也不会把它当作宣布模型成功的理由。
第三种方法:基于规则的模型
下一个方向是基于规则的模型 —— 这类方法识别与特定结果相关的条件组合,而不是给出完全不透明的预测。
这对于分析市场行为可能有用:可以看到算法发现了哪些规律。但可解释性不等于可靠性。一条规则可能看起来在经济上合理、易于解释,却仍然不具备稳定的统计优势。
因此,我们对这些模型采用了与线性模型相同的检验原则。
结果仍然是否定的,但原因各不相同。一个候选在评估统计证据是否充分的阶段被否决;另一个则未能积累到足以获得准入的证据。
两个周期均已关闭。这些结果并不证明基于规则的方法总体上无用 —— 它们只针对所检验的具体候选和既定条件。但它们说明了,为什么不能仅仅因为可解释模型的决策更容易解释,就认为它更可靠。可解释性有助于研究模型,但不能取代对其预测价值和经济价值的检验。
转向更复杂的模型
在线性方法和基于规则的模型之后,我们转向了结构化梯度提升 —— 一种能够描述非线性依赖关系和特征交互的方法。
这扩展了算法的表达能力,但也带来了新的风险:模型可能发现一些在其他时间段上并不成立的复杂规律。因此,复杂度的提升本身并不被视为进步。
对于 Intra,研究配置已准备并获得接受,随后完成了数据准备。对于 Swing,到本周末我们得到了结构化梯度提升单独检验的结果:证据不足以获得准入。
转向更复杂的方法并没有自动消除此前候选所面临的问题。其余方法的研究仍在继续。它们未来的结果不能被预先视为肯定或否定。
为什么我们不会把每个失败的模型反复重训,直到得到正面结果
在得到否定结果后,人们自然会想修改设置、换一组特征、调整筛选条件、再多试几个版本。有时这样的修改是合理的。
但这里存在一个危险:如果研究不断地针对同一个检验期进行调整,这个时期就会逐渐变成训练的一部分。形式上,模型并没有把这些观测当作训练数据 —— 但研究者会利用检验结果来选择下一步。这样就在整个流程层面产生了过拟合。
因此,我们将开发、模型选择和后续的独立检验分开。新候选适用一套按顺序进行的准入流程。失败的结果并不意味着可以自动获准反复修改模型,直到出现合适的指标。
在金融机器学习中,这一点尤为重要:微弱的规律、噪声以及大量的调参选项,很容易产生看似令人信服却并不稳定的结果。
与我们另一篇文章的联系
我们还为 HackerNoon 准备了一篇独立文章 ——《当交易 AI 选择沉默:是谨慎,还是精度的错觉?》。该文目前正在编辑审核中,发布后我们会在此补充链接。
那篇文章讨论的是另一个相关问题:如果模型在困难情况下拒绝做出预测,它可能表现出非常高的准确率。研究表明,这种指标上的提升并不总是意味着出现了更可靠的预测。
更多细节将在那篇文章中介绍。
本周有哪些变化
第一,ML 研究的新方向已从设计阶段进入实际检验阶段。
第二,我们获得并保存了多个候选的否定结果,而且它们未获准入的原因各不相同。
第三,发现并修正了一个数据准备错误,并加强了检查,以免接受形式上成功、实际上不可用的结果。
第四,开始检验更复杂的模型 —— 但并不假设复杂度提升会自动带来更好的结果。
下一步
我们将按照既定流程继续检验其余方法。
就目前而言,上述候选的结果不能为宣布新的交易模型已可投入使用提供依据。新方向的盈利能力同样尚未得到确认。这并不意味着研究停止 —— 而是意味着初步预期不能代替证据。
五天里,我们没有获得将新模型作为成功模型呈现的依据。但我们更准确地了解了哪些方法目前尚未通过检验、原因何在,以及在哪些方面需要保持研究纪律。
工作尚未结束。模型训练仍在继续,我们相信,在其余方法中会出现一个通过检验并为应用提供依据的候选。