EA 优化的问题

 

自从有了程序化交易,就有了回测优化系统这个问题,因为我们能够有的资源有限,除了历史数据,没有任何其他手段可以验证我们写的EA是否有效。

但是,非常遗憾,历史数据只代表过去发生的事情,就像一天吹过的风,不可能按照今天的次序吹一遍,这就是历史数据和现实的差别。

我最近用5年的历史数据,用数学拟合的办法拟合出胜率80%以上,而且资金回报非常高的10条策略,但是当我用另5年测试的时候,发现表现非常平庸。

至少证明一件事情,用历史数据来发现可靠策略这条路是不通的。

程序化交易本来就是一项实验性很强的学科,自认为真确的认知未必符合市场,而市场是检验对错唯一的尺度,做一些试验可以证明这个认知缺陷也是一种获得。不会在错误的道路上损失金钱。

 

你用5年的优化结果去跑另外5年,效果肯定是不好的。

市场价格的统计特征,每年都在变化。优化5年意义并不大。

用最近半年或一年的优化结果,去跑未来一个月,这样靠谱一些。

优化过程很容易出现过度拟合,如何避免,如何识别目前的优化结果是否属于过度拟合,这是个问题。

 
galecopper:

你用5年的优化结果去跑另外5年,效果肯定是不好的。

市场价格的统计特征,每年都在变化。优化5年意义并不大。

用最近半年或一年的优化结果,去跑未来一个月,这样靠谱一些。

优化过程很容易出现过度拟合,如何避免,如何识别目前的优化结果是否属于过度拟合,这是个问题。

谢谢您的分享,确实如您所言,每一种策略都有自己的生命周期,离开了策略赖以生存的环境,表现自然就不好,就像淡水鱼不可以在海水里生活一样。

我现在的测试模型进行了改进,把数据分片,回测数据做完后,然后再拿另一组数据来验证,但是需要有一定的延续性,我们每次周期其实都很难坚持半年以上,这也是用策略比较难以把控的一点。

很难分辨出整体的环境是否已经改变了,因为就像温水煮青蛙,青蛙是没有感觉的,等到真正感觉出来的时候,可能为时已晚。

 
huangyunyan:

自从有了程序化交易,就有了回测优化系统这个问题,因为我们能够有的资源有限,除了历史数据,没有任何其他手段可以验证我们写的EA是否有效。

但是,非常遗憾,历史数据只代表过去发生的事情,就像一天吹过的风,不可能按照今天的次序吹一遍,这就是历史数据和现实的差别。

我最近用5年的历史数据,用数学拟合的办法拟合出胜率80%以上,而且资金回报非常高的10条策略,但是当我用另5年测试的时候,发现表现非常平庸。

至少证明一件事情,用历史数据来发现可靠策略这条路是不通的。

程序化交易本来就是一项实验性很强的学科,自认为真确的认知未必符合市场,而市场是检验对错唯一的尺度,做一些试验可以证明这个认知缺陷也是一种获得。不会在错误的道路上损失金钱。

至少证明一件事情,用历史数据来发现可靠策略这条路是不通的。

的确如此,马尔科夫理论已经证明,走过的历史行情对当前行情的预测没有意义,历史指导不了未来,最起码在交易领域是这样