MT5优化不能成功完成!!!

 
哪位大神知道MT5的EA优化总是不能成功的完成啊?走了一半就不能走了,像死机了一样!!!求大神解惑!!!
 
JackpotTycoon:
哪位大神知道MT5的EA优化总是不能成功的完成啊?走了一半就不能走了,像死机了一样!!!求大神解惑!!!

这个问题根本没人理睬,不仅如此,还有以下几方面N久不予重视也未见有更新的迹象:

1、MT5回测时,无论日、周历史数据有多久远, 日线及周线数据加载, 默认都只加载前两年的数据,根本不能正确反映回测起始时段的日、周级别趋势;

2、MT5针对H4周期的时间划分貌似也是不可修改,针对黄金、原油,开盘是在货币对开盘后一小时之后才开盘的,一天交易不足24小时,那么按照黄金或原油交易历程,应该是当日最后一根H4不足4小时,但是,MT5总是划分为当日的第一根H4不足4小时,属于典型的划分错位。有碍于正确量化。

3、交易函数方面,相对MT4,完全是繁琐成赘、画蛇添足。

由此可以看出,MT5侧重的是短线交易的分析和回测,可以说是侧重于刷单式的投机性博弈, 且提倡的是交易信号和vps的有偿使用,貌似已经不再利于趋势化交易的钻研和探讨。


若各位有不同见解,大概是愚下说错了, 请见谅。  谢谢!

 
JackpotTycoon:
哪位大神知道MT5的EA优化总是不能成功的完成啊?走了一半就不能走了,像死机了一样!!!求大神解惑!!!

建议用其它EA先试一试是否死机,要先排除是自己的EA问题,一些EA代码或指标写的不规范,就会出现类似问题。

 
Yuying #:

这个问题根本没人理睬,不仅如此,还有以下几方面N久不予重视也未见有更新的迹象:

1、MT5回测时,无论日、周历史数据有多久远, 日线及周线数据加载, 默认都只加载前两年的数据,根本不能正确反映回测起始时段的日、周级别趋势;

2、MT5针对H4周期的时间划分貌似也是不可修改,针对黄金、原油,开盘是在货币对开盘后一小时之后才开盘的,一天交易不足24小时,那么按照黄金或原油交易历程,应该是当日最后一根H4不足4小时,但是,MT5总是划分为当日的第一根H4不足4小时,属于典型的划分错位。有碍于正确量化。

3、交易函数方面,相对MT4,完全是繁琐成赘、画蛇添足。

由此可以看出,MT5侧重的是短线交易的分析和回测,可以说是侧重于刷单式的投机性博弈, 且提倡的是交易信号和vps的有偿使用,貌似已经不再利于趋势化交易的钻研和探讨。


若各位有不同见解,大概是愚下说错了, 请见谅。  谢谢!

非常感谢你的回答,我也觉得很有可能是MT5软件本身的问题!!!
 
Tiecheng Fu #:

建议用其它EA先试一试是否死机,要先排除是自己的EA问题,一些EA代码或指标写的不规范,就会出现类似问题。

Tiecheng Fu #:

建议用其它EA先试一试是否死机,要先排除是自己的EA问题,一些EA代码或指标写的不规范,就会出现类似问题。

EA在实盘中都是能完全正确执行的,就是测试和优化不成功,我也觉得这可能完全是MT5本身的Debug吧!!!
 
测试也不成功?检查下测试日志输出信息,看看是否有错误。
 
Yuying #:

这个问题根本没人理睬,不仅如此,还有以下几方面N久不予重视也未见有更新的迹象:

1、MT5回测时,无论日、周历史数据有多久远, 日线及周线数据加载, 默认都只加载前两年的数据,根本不能正确反映回测起始时段的日、周级别趋势;

2、MT5针对H4周期的时间划分貌似也是不可修改,针对黄金、原油,开盘是在货币对开盘后一小时之后才开盘的,一天交易不足24小时,那么按照黄金或原油交易历程,应该是当日最后一根H4不足4小时,但是,MT5总是划分为当日的第一根H4不足4小时,属于典型的划分错位。有碍于正确量化。

3、交易函数方面,相对MT4,完全是繁琐成赘、画蛇添足。

由此可以看出,MT5侧重的是短线交易的分析和回测,可以说是侧重于刷单式的投机性博弈, 且提倡的是交易信号和vps的有偿使用,貌似已经不再利于趋势化交易的钻研和探讨。


若各位有不同见解,大概是愚下说错了, 请见谅。  谢谢!


1, 把测试起始时间调到历史数据的最初, 后面一段时间用自己的代码控制只判断和记录趋势而不实际开仓, 如果影响到最终的成绩评定那就在OnTester()里尽量自己调整.

2, 每一个金融产品symbol自身的trading session hours是独立的概念, 历史数据的获取/清洗/测试过程也是独立的概念, 和MT5自身无关. 换句话说, MT5提供了近乎无限的自由度, 自定义金融品种, 自行获取并导入数据, 自定义评价指标(你可以写自己版本的sharpe ratio算法), 玩法可以有很多. 而MT4/MT5自身附带的下载功能所得到的数据, 只能算是交易软件平台附赠的试车材料, 没有谁会用于严谨的策略测试. 

美国期货市场以美国东部时间17:00为一个交易日结束,前推24小时为完整的一个交易日,再以此划分成6个H4.   外汇交易账户里的黄金和原油CFD是和期货市场挂钩, 所以时间设置跟着期货走, 第一根H4柱只有3个小时, 是没错的.

3, 如果MT5不突破MT4那几个玩具一般的交易函数, 那MT5就和MT4一样永远只能在外汇交易这个场外市场(OTC)使用, 永远无法和股票/期货/期权等这些更广泛的金融市场对接.

 
Kang Feng #:


1, 把测试起始时间调到历史数据的最初, 后面一段时间用自己的代码控制只判断和记录趋势而不实际开仓, 如果影响到最终的成绩评定那就在OnTester()里尽量自己调整.

2, 每一个金融产品symbol自身的trading session hours是独立的概念, 历史数据的获取/清洗/测试过程也是独立的概念, 和MT5自身无关. 换句话说, MT5提供了近乎无限的自由度, 自定义金融品种, 自行获取并导入数据, 自定义评价指标(你可以写自己版本的sharpe ratio算法), 玩法可以有很多. 而MT4/MT5自身附带的下载功能所得到的数据, 只能算是交易软件平台附赠的试车材料, 没有谁会用于严谨的策略测试. 

美国期货市场以美国东部时间17:00为一个交易日结束,前推24小时为完整的一个交易日,再以此划分成6个H4.   外汇交易账户里的黄金和原油CFD是和期货市场挂钩, 所以时间设置跟着期货走, 第一根H4柱只有3个小时, 是没错的.

3, 如果MT5不突破MT4那几个玩具一般的交易函数, 那MT5就和MT4一样永远只能在外汇交易这个场外市场(OTC)使用, 永远无法和股票/期货/期权等这些更广泛的金融市场对接.

認同

有很多人對MT5存在著誤解


另外 樓主說的問題 可以檢查一下回測的日誌 執行優化前 必需先確定回測沒有問題

優化出現中斷 很多是代碼上出了問題 還有盤空間不足也會讓回測跟優化中斷 重啟電腦後可以暫時改善

 
Kang Feng #:


1, 把测试起始时间调到历史数据的最初, 后面一段时间用自己的代码控制只判断和记录趋势而不实际开仓, 如果影响到最终的成绩评定那就在OnTester()里尽量自己调整.

2, 每一个金融产品symbol自身的trading session hours是独立的概念, 历史数据的获取/清洗/测试过程也是独立的概念, 和MT5自身无关. 换句话说, MT5提供了近乎无限的自由度, 自定义金融品种, 自行获取并导入数据, 自定义评价指标(你可以写自己版本的sharpe ratio算法), 玩法可以有很多. 而MT4/MT5自身附带的下载功能所得到的数据, 只能算是交易软件平台附赠的试车材料, 没有谁会用于严谨的策略测试. 

美国期货市场以美国东部时间17:00为一个交易日结束,前推24小时为完整的一个交易日,再以此划分成6个H4.   外汇交易账户里的黄金和原油CFD是和期货市场挂钩, 所以时间设置跟着期货走, 第一根H4柱只有3个小时, 是没错的.

3, 如果MT5不突破MT4那几个玩具一般的交易函数, 那MT5就和MT4一样永远只能在外汇交易这个场外市场(OTC)使用, 永远无法和股票/期货/期权等这些更广泛的金融市场对接.

您好,谢谢解答!

对于回测数据问题,是可以这样解决,但是增加了麻烦,回测时还必须给EA添加一个开单日期控制的输入变量,同时楼主所述的问题确实存在,比如按每个及时价格一次性回测10年在回测达到六七年后那个回测速度就成了蜗牛,这点MT4是不存在的。

对于交易函数,MT5确实是为了股票期货等市场,导致相对MT4变得繁琐多了,对于大量非程序专业的交易者,若要自行编写程序化交易基本是可以难到一大批。

时间的划分,您刚说黄金是与期货挂钩的,黄金期货一样每天交易不到24小时,每日开盘时间相对上日收盘时间也是休息一个小时的,个人觉得,按照交易历程划分第一根H4是需要顺延以保证满足4个小时,这样更利于该周期的量化的正确性。犹如每年2月不足30天,可不能说2月上旬没有10天吧,肯定是2月下旬没有10天时间才对。

当然,不同看法我自己保留,您们在程序方面更加内行,请见谅。

 
Yuying #:

您好,谢谢解答!

对于回测数据问题,是可以这样解决,但是增加了麻烦,回测时还必须给EA添加一个开单日期控制的输入变量,同时楼主所述的问题确实存在,比如按每个及时价格一次性回测10年在回测达到六七年后那个回测速度就成了蜗牛,这点MT4是不存在的。

对于交易函数,MT5确实是为了股票期货等市场,导致相对MT4变得繁琐多了,对于大量非程序专业的交易者,若要自行编写程序化交易基本是可以难到一大批。

时间的划分,您刚说黄金是与期货挂钩的,黄金期货一样每天交易不到24小时,每日开盘时间相对上日收盘时间也是休息一个小时的,个人觉得,按照交易历程划分第一根H4是需要顺延以保证满足4个小时,这样更利于该周期的量化的正确性。犹如每年2月不足30天,可不能说2月上旬没有10天吧,肯定是2月下旬没有10天时间才对。

当然,不同看法我自己保留,您们在程序方面更加内行,请见谅。


回测速度问题:

1, 结合7楼的意见, 做回测一定要保证MT5的策略测试器tester的所有agent都是在内存中完全展开历史数据, 回测过程中不涉及硬盘操作, 尤其是不能涉及到Windows系统的虚拟内存SWAP反复读写, 否则不仅速度回测极慢而且长期必然毁伤硬盘. 所以需要观察Windows系统资源占用并调整测试器的设置, 物理内存不够就关掉几个tester agent.

2, 回测速度越来越慢的另外一个可能原因就是EA的代码质量, 和一般的软件开发有些不同, 量化系统有时深埋的BUG可能在程序运行了几千万上亿次OnTick()才会复现, 可能是程序中的某段代码中无效的垃圾运算任务越积越多, 程序每算一个tick都要翻过越垒越高的"屎山"才能进入有意义的分支, 这都需要程序开发者自身的经验去发现问题. 而外部的EA使用者不知EA代码质量如何, 只是直观上觉得测试速度越来越慢, 可能很容易就怪罪到MT5头上.

至于H4划分, 应该还是更多和金融市场的惯例有关, 本身可能不是多严谨科学的东西. 就像美股市场, 美东时间16:00收盘, 往前推8个小时, 从8:00开始画第一根H4柱, 而不是从9:30实际开盘开始划分H4, 如果交易商提供盘后交易, 那么就可以提供一根完整的H4盘后行情, 看起来就更规整一些.

 
JackpotTycoon:
哪位大神知道MT5的EA优化总是不能成功的完成啊?走了一半就不能走了,像死机了一样!!!求大神解惑!!!

肯定是某组参数导致程序bug 了。你可以缩小测试参数的值的范围,看看到底是哪组参数导致的。

原因: