怎样避免EA优化过度

阅读 :

经常有人提及MT4历史测试无用论,以前确实有历史测试和真实测试不相符的情况。随着mt多次升级,比对真实测试和历史测试,现在可以说比较准确,历史测试进行优化碰到比较多的是优化过度的问题,这个和mt历史测试无关。再精确的测试也会碰到这个问题。

话说回来,你每做1个ea不可能都花很多时间模拟测试,再说过短的测试也不一定能反应全貌,历史测试是必不可少的工具,就看你怎么用,如何避免EA优化过度呢?

这里先讲两个故事:

◎某人练习射箭,可总射不准,看到其他人箭箭红心,不禁眼红,后来他想了一个好办法,就是先把箭射出去,然后跑到箭射入的目标处把“箭靶”画上,这样看来,也是箭箭红心;

◎又话说英国足彩风气盛行,某君也想通过足彩捞一把,可是他老猜不中,于是他想了一个点子:周末开赛前,他通过黄页选定了3000个人作为目标,分别去信,声称自己能准确预测周末A队对B队的战果,对其中1000人,他预测A队获胜,对另外中的1000人,他预测B对获胜,剩下的1000人,则预测两队战和。

下一个周末,他对上周预测准确的1000人又分成3批发信,分别作出3种预测,再下周亦如是...到剩下33人的时候,他又分别向他们去信,声明如想要获得本周末赛果的预测,需先向他支付1000英镑,结果,这些人中的大部分对这个“独具慧眼”的专家早已倾心不已,某君终于大赚一笔。

所谓的“优化过度”,就是利用历史资料匹配系统,针对一段历史行情与指标、数据的关系编写EA,为使EA看起来有良好的表现,不断地对参数作出调整、优化,设置过滤条件。

使EA与历史资料数据之间完全吻合,结果可以肯定,这套EA在历史数据测试中表现良好,会在大涨之前适时地买入,大跌之前适时地卖出,可是当下次大涨大跌之前EA还会适时地发出信号吗?恐怕不能,因为这个EA是针对过去的状况编写的,它不一定适用于未来。

从自己的经验总结,EA设定的条件越多,结构越复杂,“优化过度”的情况就越严重。话又说回来,编写EA不能离开历史资料,不然我们就成了盲人摸象,无从入手。

怎样避免过度的“优化过度”?我是这样做的,首先准备足够长的历史资料数据,将其分成两份,前一份用于观察,后一份尽量不去看它,EA出来后先用前一份数据作测试、调整,直到EA达到目标要求后再用后一份历史资料去测试它,如果这时EA的表现和前一份数据差不多,那么我认为这个EA基本合格了。

本文标题:怎样避免EA优化过度 - MT4平台MQL4编程学习
本文地址:http://www.waihuibang.com/fxschool/autotrading/mql4/40599.html

相关文章

  • 高盛600名交易员如今只剩2人,如何看待EA交易?

    高盛纽约总部交易大厅曾同时容纳600多位交易员,而现在已是人去楼空。2000年顶峰时期,高盛在纽约总部的美国现金股票交易柜台就雇佣了600名交易员,替投行金主的大额订单进行股票买卖操作。但时至如今,这里...

    MQL4编程学习
  • EA编程教程第九讲 预处理程序

    预处理程序是MQL编译器的一个子系统,通过预处理程序可以使软件的可读性更好,预处理程序运行在程序编译之前。预处理指令以(#)开头。1 定义常量使用#define来定义常量。如:1. #define ABC 1002. #define PI 0.3143. #d...

    MQL4编程学习
  • MQL4预定义标准常量(四)

    目录[hide]未初始化原因代码特殊常量 错误代码为了简化程序编写,使程序文本编辑使用起来更加简便,在MQL4中预定义了标准常量。标准常量类似于宏代换,并且是int(整数类型)。这些常量按用途进行分组。未初始化...

    MQL4编程学习
  • MT4指标编程入门(三):MT4编程中的变量介绍
    MT4指标编程入门(三):MT4编程中的变量介绍

      MT4指标编程中有很多的变量,下面我们就来详细的介绍一下MT4编程中的变量。   自定义变量在使用前,必须先创建(定义),设定变量的类型和名称。   创建时可同时赋值,也可以不赋值。名称可以使用中文字符。...

    MQL4编程学习
  • 外汇EA及其工作原理

    EA 即 Expert Advisors 的英文缩写,中文意思专家顾问,俗称智能交易系统,就是由电脑模拟交易员的下单操作进行机器自动交易的过程。一、人工操盘过程下面我们就以MT4外汇客户端为例,首先来分析一个外汇交易员手工...

    MQL4编程学习
你可能感兴趣