再说得详细点。
第一步: 用这个MT5的EA在MT5上跑测试,从而获得对应周期的M1的数据。
EA请自己下载编译
不懂如何编译的,下载后保存到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. 下载转换脚本:
下载后保存到MQL4\Scripts文件夹中,重启MT4以便生成可执行文件PeriodConverterAllTimeframes.ex4
7. 打开MT4后,在图表EURGBP M1上运行这个脚本,就可以基于M1的数据转换出其他周期的数据(M5,M15,M30,H1,H4,D1,W1,MN)。
到此为止,已经获得了基于M1的所有周期历史数据,可以进行EA测试了。
小白用户务必严格按照上述步骤,每一步都是有其作用的,不具体说明。
x85185:
正在回测一个剥头皮的EA,运行了20个小时了,才跑完5个月的数据(1分钟周期),结果如下图
请问,剥头皮策略有回测的必要吗?如果要回测,是不是应该用tick回测,而不是1分钟回测?
您这获取数据的方法,能下载tick数据吗?
MT4是没有真实的tick测试的,虽然测试模式选择every tick,但并不是真实的tick,实际是基于M1数据,采取插值计算模拟的tick,非真实。
任何EA做测试都是有必要的,起码能检验代码逻辑是否正确。
剥头皮策略要不要回测,这跟你的策略有很大关系。基于真实tick数据做回测,起码能知道在历史tick数据中系统能不能赚钱。
MT5是有真实的tick数据测试的,这种tick数据是依赖于平台。
aa526146545:
谢谢大神,我到最后一步,执行转换脚本后,发现数据根本不是我在Mt5测试的那么几年的数据,变成了很少的数据,一看文件:C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\B9AB1781CD4361C9C32CAAC85492E650\history\ForexTimeFXTM-Cent-demo,这个里面的1分钟数据由开始我复制过来的400多M也变成了20多M,其他转换周期了的也都是几十KB了,我复制的时候确认数据是几年的有400多M
可能你的账号连接到服务器了,这样导致从服务器下载的数据覆盖了你转换的数据。
1. 你要把原来的数据删除。
2. 防止数据文件被覆盖,必须删除账号密码,这样就不会登录到服务器了。
3. MT4菜单栏 Tools(工具)--->Options(选项)--->Charts(图表)中,最下面 max. bars in history 和 max. bars in chart 都改成999999999 (最终会显示为2147483647)。
aa5261465452019.07.11 14:54
Ziheng Zhuang:
可能你的账号连接到服务器了,这样导致从服务器下载的数据覆盖了你转换的数据。
1. 你要把原来的数据删除。
2. 防止数据文件被覆盖,必须删除账号密码,这样就不会登录到服务器了。
3. MT4菜单栏 Tools(工具)--->Options(选项)--->Charts(图表)中,最下面 max. bars in history 和 max. bars in chart 都改成999999999(最终会显示为2147483647)
非常感谢,的确是显示k线数量的哪里和账号没有删除,现在搞定了
Xiuting Yue2019.11.18 07:03
Ziheng Zhuang:
要做完MT5的EA测试,才有agent-127文件夹出现。
从MT5菜单栏的数据文件夹进去,找tester文件夹,进一步找。
或者安装一个搜索软件,叫everything,能快速搜索本地文件。
您好,测试时是这样设置的,也生成了2018.hcc和2019.hcc文件,软件everything也用着搜索了,还是没见agent-127。我测试时没登录交易账户,应该没影响吧?
When we do back-test, we usually download M1 data from a third party, and then convert M1 data to other timeframes. This script helps to convert history data from M1 to M5, M15, M30, H1, H4, D1, W1 and MN. This script must be run on M1 chart. You may choose whether to convert to D1, W1, MN or not. By default it...
Ziheng Zhuang2022.09.06 02:42
lincsen :
你好,我确实生成了其它周期的历史数据,但是时间是比较短,是从2020年9月以后的其它周期数据
数据短,可能是你没有选择对测试时间的起始时间,有可能你用的平台就没有提供那么长的M1数据。
这个帖子中各位遇到的问题,我专门写了个博客总结,请阅读博客:
分享一个快速获取10年高质量历史数据的方法
问题: 在MT4中进行最精确的测试,即所谓的tick测试,必须要有最小M1的历史数据。一般平台MT4账号提供的M1历史数据不超过3个月,但是MT5账号提供超过10年的M1历史数据。 方案: 在MT5中用EA做复盘测试,测试10年周期,能下载到10年的M1数据,把数据转换成MT4格式的K线数据(*.hst),保存到MT4的相应数据文件夹,供MT4使用。 准备:
发表评论