分享

回测数据到底有没有用?

 chevener 2018-06-01

承认自己不行,这是一种极其重要的能力,因为,它是锐意进取、不断提升自己的基础。可惜的是,很多人并不具备这种能力,出了问题总是别人的错、环境的错,反正跟我没关系,所以,很多人终其一生,也没有大的进步。
不扯其它领域了,就说做股票吧。

如果一个人亏损,他说,亏损是因为我不行,我没有盈利能力;另一个人亏损,他说,我一买就跌,一卖就涨,是不是庄家在看我的账户操作,我是不是被黑了?

大家觉得,谁更有可能去追求、并且获得盈利能力;谁更有可能在亏损的深渊里沉沦?

类似地,设计出一个系统,复盘数据很好,拿到实盘中一用,不行,亏损的。

一个人说,亏损是因为我不行,我没有做更大范围的复盘,没有做好系统的评估工作,没有及时停实盘;另一个人说,回测数据到底有没有用,系统交易到底靠不靠谱,交易到底能不能赚钱?

大家觉得,谁更有可能搞出来系统,并且实盘盈利;谁更有可能放弃自己、放弃自己的交易?


对于本文的标题,我的答案是:回测数据当然有用,它是我们评价一个系统的基础。如果你回测赚钱,实盘不赚钱,这并不能说明回测数据没有用,只能说明,你的回测做得不好。
当然,可能会有人说,我不赞同,我认为,实盘数据才是更有意义的。

我们暂且不考虑实盘检验所必然耗费的时间、金钱、盯盘精力等成本,请大家随我做一个思想实验:

首先,我们需要检验方法的复制性。方法是,我们做一段时间实盘,然后,回过头复这段时间的走势,再对比实盘和复盘的单子,如果完全一致,说明我们的方法具有完全的复制性。

此时,我们就可以做复盘的工作了,比如,复过去一年的走势。

为什么复盘有意义呢?

我们设想,如果我们不是复过去一年的盘,而是穿越回一年前,一笔一笔地开始做单,那么,我们做的单子和复盘得到的单子是不是完全一样?

当然,答案是,完全一样。既然如此,我们复一年的盘,是不是等于做一年的实盘;一年的复盘数据,是不是等于一年的实盘数据?

如果答案是肯定的,复盘数据就和实盘数据一样有意义。

当然,你可能会问:如果在第一步是就失败呢?如果我复盘的单子和实盘不一致呢?

根据第一节的逻辑,我们应该知道,此时,我们应该承认“我不行”,然后反思,为什么不一致。

当然,原因可能是多方面的,最常见的有两个:一、方法还有不量化的地方;二、方法对价格太敏感,以至于实盘和复盘不一样。
第二点大家可能不理解,因为,大家可能不知道,无论股票还是期货,无论哪家公司、哪个软件,实时数据和盘后数据都有细微的偏差,这个很容易理解,实时数据传输的时候,一定会发生丢包现象。

因此,如果方法是极低周期的短线,而且,对价格数据的变化过于敏感,实盘和复盘就可能是有区别的。

找到原因之后做什么?

解决问题。

该量化的量化;该简化的简化。


当然,我必须承认,无论如何,实盘成绩不及预期的现象确实存在。
为什么?

还是说,原因是多方面的,我们择要说一下。

一、方法无法承受实盘成本
复盘的时候,我们不需要考虑手续费、印花税、滑点等交易成本,但是,在实盘中,这些成本是客观发生的,所以,实盘一定比复盘差。

尤其是,如果方法的单笔收益过低,以至于无法弥补成本,回测赚钱,实盘亏损的情况就出现了。
比如说,做极低周期的短线,平均单笔盈利不足一个点,考虑到实盘的滑点往往大于一个点,想在实盘中盈利就很难了。
怎么办?

首先,做实盘的时候记录滑点的情况,复盘时,把交易费用考虑在内(手续费和印花税往往是确定的,无须通过实盘记录做统计);其次,设计交易系统的时候,尽量不使用滑点大的进出场条件,比如突破;最后,尽量少操作太低周期的交易。

二、方法存在过度优化
在方法设计和调试的过程中,优化是必然的一步,没有任何一个系统,一落地就已经很成熟,可以直接拿着做实盘了。
只要优化,就有过度优化的可能。

所谓过度优化,就是极度贴合样本内数据,因此,一旦开始使用样本外的数据做实盘,效果就很难复制了。
怎么办?

首先,在优化的时候,不要过多关注单笔盈亏,不要硬让方法贴合当时的行情;其次,在优化之后,注意复一下样本外的数据,看看优化是否过度,比如,你是盯着豆粕走势设计的系统,就去测测螺纹或者PTA;最后,发现过度优化,就回头重新设计。

三、实盘的亏损是正常的
这个答案可能令人费解,但是,我们都知道,随机事件最大的特征就是,它的结果一点都不像随机事件,比如,掷硬币的结果很难是“正反正反正反”,大概率地出现连续的正或者连续的反。

原因是,完全反着的情况只有“正反正反正反”和“反正反正反正”两种,连续正或者连续反的情况更多一些。

因此,结果具有一定随机性的交易,也会出现连续的盈利或者连续的亏损,成功率越低,出现连续亏损的概率越大,亏损持续的时间也越久。

回测数据好看,可能是回测期恰好处于连续的盈利期;实盘数据不好,可能是实盘期恰好处于连续的亏损期,都是正常情况。
怎么办?

首先,尽可能扩大复盘的时限,更全面地认识系统的优劣;其次,重视成功率,尽量提升系统的成功率,以降低连续亏损发生的可能和时限。

根据我们的经验,成功率低的方法,大概率地以亏损开始第一笔、第二笔交易;成功率高的方法,大概率地以盈利开始第一笔、第二笔交易。

四、市场节奏可能发生了变化
这一条其实是第三点的变种,但是,值得特别说一下。

简单说,不同的市场节奏适合不同的方法,比如,之前价值股拉升的时候,适合长期持有价值股;当前次新股热炒的时候,适合追高人气股,市场变幻万千,没有一定之规,非得在任何时候长期持有,或者在任何时候都追高,恐怕很难有稳定的收益。

因此,一定要深入思考,我们的方法适合什么样的市场节奏。尽量不要在任何市场环境中盲目地使用单一的方法。

在这一点上,我们也曾经出现过认知的偏差。

之前,我们一直在牛市做股票的波段操作,根据经验,我提出过一种思维方式:在每次大盘回调的时候,选择并买入一揽子股票,理论上,方法的盈亏比和成功率到位,可以确保这一揽子股票总体是盈利的,因此,从整体思维的角度,即,以一次大盘波段回调为一次操作,股票操作是可以做到百分之百成功率的。

这个逻辑并没有什么问题,但是,当我们把这个逻辑套用到短线的时候,却意外地发现,完全不是这样。

股票做日线波段,可以确保市场环境是牛市,因此,成功率相对稳定,而且比较高;但是,做短线,尤其是无视市场环境做短线,是无法确保当前的市场状态和运行态势的,在熊市、阴跌的市场中,你还能怎么确保成功率?如果无法确保,又怎么确保这一揽子股票是总体盈利的?

所以,正确的逻辑,在不同的背景下,也可能也会带来完全不同的结果。还是要做到有所为有所不为。


回测数据还有一个天大的用途:评价实盘数据。
啥?

用我不信任的回测数据,评价我更信任的实盘数据?

没错。

比如说,根据回测,历史最大的回撤是10%,现在的实盘情况是,我盈利20%之后,出现了11%的回撤,问,这是什么情况?
答,回撤超出预期了,可能说明,方法出问题了,我们需要考虑停实盘。

如果此时停实盘,你会发现一个奇妙的现象:你的方法被否定了,但是,你盈利了6.8%,一个挺吉利的数字。

所以,做好回测,根据回测数据做好实盘表现的评估,有可能帮助我们以有利的形势结束差劲系统的实盘操作。

当然,这等好事遇到的可能性不大,我们到目前为止仅仅遇到两次。

因为,真正在实盘的时候,不可能超出1%就停实盘了,需要根据数据的情况计算数学上的置信区间,超出这个区间才停实盘。这个略嫌复杂,就不细说了,总之,即便你担心方法在实盘中失效,也需要一个判断标准,而唯一的标准只能是回测数据。


最后一个问题:
回测是根据历史数据评估方法,但是,我们都知道,过去的表现并不代表未来的成绩,因此,回测没有用,必须使用实盘检验。

这个问题太好回答了:

当你实盘检验完毕的那一刻,所有的实盘检验数据,其实也是历史数据,也不可能被重演。


最后:我从来都是拒绝极端化的思维的,因此,我建议大家更多使用低成本的复盘检验方法,但是,我绝对不否认实盘检验的价值,实际上,很多方法的细节问题、方法是否具有实盘的复制性的问题,只有通过实盘才能发现和找到答案。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多