外汇EA优化过度的防范技巧

经常有人提及MT4历史测试无用论,以前确实存在历史测试和真实交易结果不相符的情况。随着MT平台多次升级,现在对比真实测试与历史测试,可以说准确度有了明显提升。但在历史测试过程中,优化过度是常见问题,这与MT历史测试本身无关,即便是再精确的测试也会遇到。话说回来,每开发一个EA,不可能都花大量时间进行模拟测试,而测试周期过短也不一定能反映全貌。历史测试仍然是必不可少的工具,关键在于如何运用。那么,如何避免EA优化过度呢?

这里先讲两个故事:

◎某人练习射箭,但总射不准,看到其他人箭箭命中红心,不禁眼红。后来他想了一个办法,就是先把箭射出去,然后跑到箭落下的地方把箭靶画上,这样看来,也是箭箭红心。

◎又话说英国足彩风气盛行,某君也想通过足彩获利,可是他总猜不中比分。于是他想了一个点子:周末开赛前,他通过黄页选定了3000个人作为目标,分别去信,声称自己能准确预测周末A队对B队的赛果。对其中1000人,他预测A队获胜,对另外1000人,他预测B队获胜,剩下的1000人,则预测两队战平。下一个周末,他对上周预测准确的1000人又分成三批发信,分别作出三种预测,再下周也是如此,直到剩下33人时,他又分别向他们去信,声明如想要获得本周末赛果的预测,需先向他支付1000英镑。结果,这些人中的大部分对这个独具慧眼的专家早已深信不疑,某君终于大赚一笔。

所谓的优化过度,就是利用历史资料匹配系统,针对一段历史行情与指标、数据的关系编写EA。为了让EA看起来表现良好,不断对参数进行调整和优化,设置过滤条件,使EA与历史资料数据之间完全吻合。结果可以肯定,这套EA在历史数据测试中表现良好,会在价格大涨之前适时买入,在大跌之前适时卖出。可是当下次大涨或大跌来临前,EA还会适时发出信号吗?恐怕不能,因为这个EA是针对过去的状况编写的,它不一定适用于未来。从个人经验总结,EA设定的条件越多,结构越复杂,优化过度的现象就越严重。话又说回来,编写EA不能离开历史资料,否则就成了盲人摸象,无从下手。怎样避免优化过度呢?我是这样做的:首先准备足够长的历史资料数据,将其分成两份,前一份用于观察,后一份尽量不去看它。EA开发出来后,先用前一份数据做测试和调整,直到EA达到目标要求后,再用后一份历史资料去测试它。如果这时EA的表现和前一份数据差不多,那么我认为这个EA基本合格了。在使用tickmill外汇平台进行测试时,这一方法也能有效帮助评估策略的稳健性。