分享一个快速获取10年高质量历史数据(用于MT4的EA测试)的方法

 

第一步:从MT5下载数据,构造成MT4可用的M1的K线数据(.hst)。

              这需要编写一个MT5的EA,利用该EA做复盘测试的机会下载历史数据,并转换成MT4的M1数据。

第二步:在MT4中把该M1转换成其他周期,这样就可以在MT4中测试了。

             这需要一个MT4的周期转换脚本。

这两步我都替你做好了,看看我分享的代码:

https://www.mql5.com/zh/code/20002

https://www.mql5.com/en/code/19839


10年数据,5分钟搞定。

为 MetaTrader 4 回溯测试取得M1 OHLC数据
为 MetaTrader 4 回溯测试取得M1 OHLC数据
  • www.mql5.com
在 MetaTrader 4 中,通常大多数经纪商不会提供超过3个月的 M1 数据,而在 MT5 中,它们会提供超过3年的 M1 数据. 所以,我们可以使用这个工具来在 MetaTrader 5 测试器中取得 M1 数据,并且把数据保存到 .hst 文件中用来做 MetaTrader 4 的回溯测试。 怎样使用? 在 MetaTrader 5 中测试 EA , 选择 M1...
 

再说得详细点。

第一步: 用这个MT5的EA在MT5上跑测试,从而获得对应周期的M1的数据。

              EA请自己下载编译 https://www.mql5.com/zh/code/20002

             不懂如何编译的,下载后保存到MQL5\Experts文件夹中,重启MT5即可自动编译。

              然后进行测试,按Ctrl+R 调出测试终端,测试时的设置必须是选择 1 minute OHLC 以及 M1 周期

             测试很快就完毕了,完毕后EA自动生成了数据文件  比如 EURGBP1.hst, 这个文件位于测试文件夹 tester下面,比如:

             XXXX \Tester\Agent-127.0.0.1-3001\MQL5\Files

            这个EURGBP1.hst是EURGBP的M1 数据,是MT4中的图表数据格式

            


第二步:把第一步中获得的数据文件 EURGBP1.hst 拷贝到MT4中,并用用脚本转换M1为其他周期(M5,M15,M30,H1,H4,D1,W1,MN)的数据,用于EA测试。具体步骤:

1. 制作一个专门做测试的MT4(必须与那个MT5是同一个平台),即复制已有的MT4到一个新的文件夹。

2. 打开专用MT4,登录账号,联网,市场报价窗口右键选择显示所有品种,关闭所有打开的图表。

3. 进入到历史数据文件夹,删除历史,具体操作:

   菜单栏--->打开数据文件夹-->....  比如  XXX MT4\history\Alpari-ECN-Demo\  ... 

     Alpari-ECN-Demo(服务器)是你的账号所在的服务器,删除该目录下的所有数据文件,  然后把前面获得的EURGBP1.hst保存到该目录下。

4. 删除MT4账号密码,具体操作:

   菜单栏 --- 工具 --- 选项--- 服务器 ---> 删除密码   然后点击确认,关闭MT4

5.再启动MT4,从市场报价窗口 打开 EURGBP图表,打开时是H1图表,没有任何数据,这时切换到M1,就有K线数据了,但是只有M1的数据。

  接下来就是用脚本转换数据。

6. 下载转换脚本:https://www.mql5.com/en/code/19839

    下载后保存到MQL4\Scripts文件夹中,重启MT4以便生成可执行文件 PeriodConverterAllTimeframes.ex4

7. 打开MT4后,在图表EURGBP M1上运行这个脚本,就可以基于M1的数据转换出其他周期的数据(M5,M15,M30,H1,H4,D1,W1,MN)。


到此为止,已经获得了基于M1的所有周期历史数据,可以进行EA测试了。


小白用户务必严格按照上述步骤,每一步都是有其作用的,不具体说明。

为 MetaTrader 4 回溯测试取得M1 OHLC数据
为 MetaTrader 4 回溯测试取得M1 OHLC数据
  • www.mql5.com
在 MetaTrader 4 中,通常大多数经纪商不会提供超过3个月的 M1 数据,而在 MT5 中,它们会提供超过3年的 M1 数据. 所以,我们可以使用这个工具来在 MetaTrader 5 测试器中取得 M1 数据,并且把数据保存到 .hst 文件中用来做 MetaTrader 4 的回溯测试。 怎样使用? 在 MetaTrader 5 中测试 EA , 选择 M1...
 
楼主,感谢你的分享。
 
Shenyou Yu:
楼主,感谢你的分享。
Thanks for sharing, Excellent!
 
怎么下载是数据不是自定义时间的数据呢?
 
您好,怎么能跟您学习?
 
michael26:
怎么下载是数据不是自定义时间的数据呢?

整个过程只有MT5测试终端下载M1周期的数据,也只需要M1周期的数据。

 
13627207215:
您好,怎么能跟您学习?

你搜下,有好多论坛,各种群,都可以学习,还可以自学成才。

我没有搞培训的意愿。

 

首先,非常感谢您的分享。按照您提供的方案,在已经成功的从MT5获取数据并导入MT4进行测试。

测试后发现的问题:

1、多个MT4真实帐号用EA回测MT5获取的2018年1分钟图转换成MT4的1小时图欧美货币对数据,三个帐号测试结果是一致的,图表输入错误为0,复盘质量90%。说明数据是有效的。

2、用MT4自带更新的数据测试相同EA相同时间和相同参数,与使用MT5获取的历史数据有较大差距(80%以上)。

3、MT4自带更新数据回测2018年的结果与实盘2018年的实际结果和收益走势基本相同。

所以,根据实盘结果对比测试数据,从MT5获取的历史数据可能不太准确。不知道是不是我测试方法的问题还是EA得问题。有太多不确定因素。

欢迎探讨。

 

从MT5获得的是M1的数据,通过M1构造出MT4的其他周期的数据,构造本身是没有问题的。

要保证数据完全一致,否则测试的结果不一样。

要保证MT5的K线数据与MT4的K数据的时区GMT是一样的,且数据本身(OHLC)是一致的,所以必须是同一个平台(即使同一个平台,他们的MT5与MT4数据也有细微的差别,也会导致结果不同)。

 
大神,为什么我按照你的方法Tester文件夹里只生成了logs文件,并没有生成.hst 啊