这篇文章主要介绍Ea回测的一些技巧和注意事项(后面有干货),关于Ea如何回测,怎么设置,看另一篇文章《用历史数据回测EA超详细教程》
EA回测的定义
我觉得能否回测是Ea量化交易和人工交易的重要区别之一,EA通过对历史数据的复盘,得到一系列交易结果,每次的交易都有明确的记录,并可以在交易图表上展现,MT4软件可以将结果进行汇总,也可以导出报告。
第一次用mt4进行回测的时候,我真的被惊艳到了,原来交易还可以这样玩。
EA回测有什么好处
1.优化EA交易模型
通过回测可以很直观的看到EA的策略是否有问题,在哪些行情下表现比较好,在哪些行情下表现不好,对于表现不好的地方,可以考虑加入一些过滤条件规避。
2.极端行情表现
历史上有很多比较极端的事件,比如瑞郞黑天鹅,英国脱欧,川普当选,这些事件发生的时候,会对外汇市场造成影响,往往会出现短时间内行情的大起大落,如果EA在这些极端行情下表现良好,说明EA的抗风险能力较强。
3.对EA代码进行验证
代码是否运行正常,比如EA开了很多笔订单,当统一平仓的时候订单是否平干净了,止盈止损是否设置正确,当价格变化的时候,移动止损是否也及时进行了修改等等,这些都可以用回测来验证。
怎样避免掉入EA回测的坑
对于外汇EA的回测,有很多因素会影响回测效果。在大多数情况下,这些因素会造成回测效果比实际交易效果更好,只有少数情况下,实际效果比回测效果好。因此,咱们在回测的时候,要尽量让Ea更具有通用性,这样的Ea回测效果将更接近实盘。
1、技术漏洞
Ea开发者有时候会在代码中加入一些有未来函数的指标,这种情况有可能是无意的,也许是Ea开发者不知道这个指标有未来函数,也有可能是有意的,因为这样的Ea,回测结果看起来非常好看,可以用来吸引用户,因为这种指标会根据行情的发展修改信号,如果它知道了历史行情的走势,那就有可能在回测时修改信号,因为这种指标会完美的拟合行情,所以EA回测结果也会非常漂亮,对小白用户来说非常有吸引力。
比如当天的交易还没有结束,Ea就引用了当天的最高最低价或是收盘价来进行止盈止损或平仓,这种情况下,回测效果确实是非常好,但是实际交易的时候,不管是人还是Ea,谁也不可能准确知道当天的最高价、最低价和收盘价,那这种EA除了回测漂亮之外,基本没有实际使用的价值。
因为未来函数会造成这种情况,所以我们从不开发有未来函数指标的EA,对于想要根据指标写EA的用户,我们都会要求用户提供指标的源码,经过检查确认没有未来函数,这样的Ea才值得开发。
2、过度优化
过度优化这种情况可能经常发生,其实优化是应该做的,所有策略都应该进行一定的优化,这样才能适合某个品种的交易,或者让参数更贴近行情,实际使用中效果也更好。
这里说的是优化不能过度,要把优化控制在一个可控的范围,比如说在某天,有笔订单差了5个点没有止盈,结果止损出场,你发现这天是星期四,然后你设置在每个星期四的止盈都减少5个点,这可能就有过度优化的嫌疑。
用大白话说,就是咱们的策略应该比较皮实,相比于更高的盈利,应该追求更好的稳定性。
有个绩效很不错的老用户,跟我分享过他的参数设定方法,他会根据近三个月的日线或4小时K线的历史走势,找到历史中跟这三个月走势相似的一段行情,重点是看这段历史行情之后的一段行情是怎么发展的,然后根据之后的1-2个月行情,调整EA的参数,用这组参数进行接一来未知的1-2个月的交易,他这么做是基于两个原因,1、最近的行情对接下来的行情影响最大。2、历史会重演。
3、评估心理问题
你可能觉得我用Ea交易,只要回测效果还行,我就可以什么都不管,闭着眼用。
Ea是个交易程序,确实是没有感情,可你是人,你有感情,也许你看Ea的回测报告,平均年盈利80%,效果很不错,你觉得可以实盘了,但是你可能忽略掉了一些会影响你的情绪的重要信息,比如曾经在某一段时间,这个Ea的最大回撤达到40%,时间经历了三个月,想想看,你能不能受的了三个月回撤40%,这三个月你怎么过,会不会影响你的生活,这些日子你晚上能不能若无其事的睡觉,所以用Ea的时候,建议评估一下自己的心理承受能力。
“细节决定成败”,Ea回测实际并没那么简单,应该务必小心。
你花在回测上的时间和心思都是值得的。