冰与火:实盘与回测

Author: 小小梦, Created: 2016-09-18 10:49:10, Updated: 2019-08-01 09:50:55

在 发明者量化 学习期间,许多奇奇怪怪的想法实践的过程中,写了不少代码。有些策略简直是“回测急煞千军万马,实盘呵退百万雄师!” =_=! 总结了一点拙见:

  • 算错了,回测出现有显著盈利能力结果时,大概率是这个原因导致的错误。例如,某个负号在计算时漏掉了、盈利算法有问题、百分号忘记除了、调用收益API的时候参数错误,等等等等,往往会给出一个“买地球”的结果。所以现在已经形成条件反射,一出现惊人的收益,不用想去找BUG吧。 对于收益出现的种种“惊喜”。靠谱的做法是: 对比初始账户和当前获取的账户信息,分析差异,分析变动,算出盈亏。只要把握好账户的这2个状态时的信息,计算出的收益基本不会出错。

  • 未来函数,这个问题很容易发生。让人烦恼的是未来函数会出现的不知不觉。例如某知名分析大咖:“在行情下行末期积极建仓,在上行末期卖出标的”,这里就只想说一句了:“论预知未来的重要性! 要避免它的出现,要做的就是小心,老大说过:策略回测中凡事跟预知未来有关联的都可能引入了未来函数的因素。避免这样的相关因素存在。

  • 存活者偏差。这是“未来函数”族群中的王者,单独拿出来说。下面的内容来自维基百科:(援引自知乎) 幸存者偏差(英语:survivorship bias),另译为“生存者偏差 [1]”或“存活者偏差”。常用俗语“死人不会说话”来解释其成因。 意思是指,当取得资讯之管道,仅来自于幸存者时(因为无从由死者获得来源),此资讯可能会存在与实际情况不同之偏差。常见于财务金融领域之文章。 此情况常见于投资理财之节目或文章,例如当投资理财之电视节目仅邀请投资成功者上节目谈论其成功投资之经验,观众会将该成功投资者投资之方式,视为高成功率之投资方式,但观众并不会在电视节目看到以相同或类似投资方式,但最后失败的投资者,因而高估此投资方式之成功机率。 用指数或者全市场样本进行长期交易策略测试的同志们,请一定小心指数成分股的变更和股票退市对策略的影响!

  • 真实交易环境限制。 在实际交易环境中会遇到各种各样在回测系统无法遇到的问题,交易摩擦、滑点因素、冲击成本、网络错误、数据错误、网络延迟等等!

  • 策略周期。策略是有周期的,站在风口上,猪都会飞。在趋势行情下,盘整策略会亏,在盘整行情下,趋势策略会亏。那我用技术手段,区分趋势行情和盘整行情呢?这是对未来行情的预测,提前固化的预测手段是具有时效性的,依然是一个大的周期问题。存不存在不会过期的盈利性策略呢,个人感觉不好说,未来不可知!

  • 正确看待回测。对回测数据的分析,很多人关注的重点是年化收益和最大回撤率。其实更重要的应该是以下几方面:

    • 1.交易次数,如果交易次数太少,那么这个回测数据可信度不高。
    • 2.最大连续盈利区间以及最盈利的一笔交易,重点分析它为什么盈利,分析策略的盈利的来源,并分析这样的行情是否可能再次来临。
    • 3.最大连续亏损区间以及亏损最严重的一笔交易,分析策略的亏损原因,并分析这样的行情是否可能再次发生,在什么情况下亏损会更糟糕。以及如何做好防范措施。
    • 4.回测的目的不是为了证明交易策略多么优秀,盈利率如何的高,而是为了发现尽可能多的缺陷,包括程序的BUG和交易逻辑的不合理之处。

    不能把量化交易神圣化。量化交易本质上是投资策略的程序化,量化交易系统本质上就是一个工具软件。从哲学上说,没有交易圣杯。任何策略都有利有弊,如同硬币的两个面,对立而统一。比如趋势跟踪适合大的趋势行情,但在一定幅度的横盘振荡行情上会遭受连续的亏损;而振荡策略虽然能在振荡行情中如鱼得水,但会在长期趋势行情下遭受亏损。未来的行情究竟适合哪一种策略,谁也不知道。


More