如何判断交易模型的可信度和价值?

今天有位客户 H 先生找到我,他说他的朋友在 TB 上做了一套股指纯日内的交易模型,最近最大回撤 3000 多元,赚了一两万,他觉得从近期表现来看,这套程序已经非常牛。但他不是程序化方面的专业人士,希望我把把关,如果可行的话就准备投入资金运作。

  稍后 H 先生给我发来了一张 2 月 26 日的交易信号图,如图所示:

宽客网,量化投资,宽客俱乐部

  我感到很纳闷,从图上看这天是赚了很多,可是这又能说明什么呢?我告诉他这张图只能告诉我这套模型是一分钟线日内交易,交易原理可能是波动率突破加反转,以及背离平仓。

  随后他给我看了三天的交易明细,这三天里最大的一笔亏损是三千元,总共的盈利有二三万。他认为这套模型已经很牛了,人工交易不可能抓到这么多。

  我笑笑说,我们做开发时至少都要用 5~10 年的数据来测试,甚至单品种单周期还不够,需要在多个市场上相邻周期表现也都没有太大差异才行,三天的测试根本不能说明任何问题。关键是你要长期的测试报告和资金曲线。

  H 先生起初不明白什么测试报告、交易明细、交割单,它们的区别是什么,我给了他一些例子。后来他告诉我他朋友给他看过资金曲线,是从去年 11 月到现在的,资金也是稳步上升的。

  听到这里,我觉得 H 先生遇到的问题比较典型,一些概念和原则性的问题,我有必要一一指出并加以纠正。

  一、测试期间

  对于短线交易系统,测试区间不要太长这句话也有一定道理,但这是指这个测试区间不要长到使整个市场的基本属性发生变化,例如美国 2000~2001 年期间由分数报价改为了小数报价,这个时间点对于短线交易来说是个明显的切分。 一般来说,短线交易系统的测试期间应该在五年左右,而长期 (日线或周线级别) 系统,则需要 30 年的测试期间。仅以三五个月,乃至一两年的测试结果,就想涵盖所有的市场状况,是非常片面的。

  而三五天的交易结果,更是短之又短。可以说不用三天,我任何一套程序都能找到连续三个月表现完美的一段发给你看。此外,春节前后的近三天正好是波动率非常大的时候,累计上下波动有 300 点,走势也比较连贯。短线交易系统在这三天表现很好也是应该的,表现不好反而不正常。

  为什么展现给你看的是从去年 11 月到现在的资金曲线,这个问题也很有意思。整个股指上市以来最波澜壮阔的多头行情,就是从去年 11 月启动的。曾经有一本关于股票公式的书,号称其公式成功率达到 99% 以上。他确实没有骗人,但问题就出在这本书的公式测试区间是 06~07 年,这段时间正好是股市热翻天的牛市行情,几乎买任何一个股票都能赚,成功率 99% 以上也不足为奇。事实上我后来再测试时,果然在 08 年以后所有的公式都亏损了。

  不论是什么模型,在投入使用之前,您都应该向开发者索取最近 3 年以上的测试报告,以及它在其他品种或其他周期上以同样参数运行的测试报告。如有条件最好还包括半年以上的实盘交割单,以防该测试报告被事后拟合。在阅览测试报告之前,需要先留意测试环境,包括滑价和手续费的设置是否合理等。

  二、程序问题 (未来函数与偷价)

  有一点 H 先生把它当作这套程序的优点来说,他说这个程序的仓位开出来以后价位不会变动。

  其实这并非优点,而是一套合格的模型最基础需要满足的条件,这是证明上述测评报告有效的第一要件。一旦发现程序的持仓在开出后有变动的情况,包括价格改变甚至是消失,这套模型就必然含有未来函数,前面看到的测评报告也必然是不可信的。

   另一点,H 先生提到有的时候这个模型开的仓会不能成交,盘中点位跳动太大,一下就滑过去了。

   这意味着模型在滑点的处理上不合理。如果经常发生这样的情况,就应该质疑前面测试报告的真实性了。任何一套合理的交易模型,都应该以实际能够成交的交易点作为入场点。所谓的“挂价”,只是在下单交易时的一种信号处理机制,绝不能应用在程序里,因为不是每一笔挂单交易都 100% 能够成交到的。我朋友曾经告诉我,市面上很多交易模型,包括目前很火的号称国内首家量化策略投资研发平台的某网站,上面很多表现很好的策略,其实都是故意把偷价写进去,并且隔一段时间就优化拟合一次。我后来也拿到源码求证过,确实如此。

  不要小看偷价和未来函数的影响,更不要妄想其真实的表现只是比原先差一点,实际上出现这两种情况,其真实的测评绩效往往是:极差!并且,这两点往往是使用量化策略时最危险的雷区,因为你哪怕是行家,也没办法 100% 不看源码从图上发现模型中的偷价或未来函数。

  三、主观干预

  H 先生告诉我,2 月 5 日那一天他的印象很深刻,系统在早上 9 点多触发了一笔做空信号,之后套了有 15 个点,他那时心里已经承受不住,甚至在质疑这套模型的有效性。之后,市场急转直下,最多的时候浮盈了有 33 个点,如果这时候平掉的话,少说也能赚到八九千吧。但到最后,系统竟然还是亏了 3 个点平出来的。

  我说,这也是正常的。量化交易最注重的是前后一致性,一两笔交易的浮盈浮亏,只要在系统的框架下,都是正确的。人容易在事后人为的将行情进行切分,但事实上在临盘时根本做不到这一点。因此,我们一直说不要人工干预,人工干预到最终的效果很可能还不如完全按照系统。

  当然另外,也不要因为我有机会能在盘中先吃到点利润提前出来而给模型打保票。因为除非你是高手,否则你根本做不到持续稳定的优于系统先平仓。而且话说回来,如果真能达到这样炉火纯青境界的高手,何不根据自己的思路直接改进程序呢?

  我并非贬义,但从 H 先生的这番话就能看出,他其实没有办法 100% 按系统执行,他的风险承受能力以及心里状态不足以抵御这个模型全额的回撤。像这种状态下,除非运气好,一般来说即使做量化交易也是必然失败的。不瞒你说,我本人也是一路走来。

  四、参数优化

  H 先生说,他朋友(策略模型的开发者)告诉他应该根据主力操作手法、波动幅度经常调整参数。

  调整参数是没错,但是问题出在“经常”二字。优秀的模型应该主动去适应行情,而不是事后人为去调整。如果哪天程序表现不好了,你找到他,他说我前两天就调整参数了,新参数是 XXX,XXX,XXX,你岂不吐血?即便是短线系统,健康的调整参数时限最短也应该在一个季度或半年以上。并且一般只能调整波动率相关的参数,核心参数应该在几年内都维持一致。

  最后,我给 H 先生的答复是,我没办法根据你给我的信息判断出这套系统好或不好。很抱歉我到最后都没能给 H 先生一个是或非的答案,但是国内现在充斥着太多虚假的东西,在量化发展起来之前就已经扼杀了量化的认可度。我们必须足够严谨,才能帮助大家给量化建立起一个健康的成长环境。

(来源:和讯期货)