MT4回测的最大精度是M1,也就是说M1以下的数据,每次都是电脑模拟出来的,但一分钟可以发生太多事情。差之毫厘谬以千里,尤其是在EA测试上更是这样。 如何使用dukascopy提供的免费tick数据+当时的市场真实点差,来做99%超高精度的历史回测。 1.注册dukascopy模拟账户。打开官网,选择注册模拟账户。 直达链接:https://www.dukascopy.com/swiss/chinese/forex/demo_fx_account/ 信息随便填,但请务必填真实的邮箱,接收账户信息。
2.登陆dukascopy https://www.dukascopy.com/swiss/chinese/forex/trading-login/ 下载jforex,用邮箱里收到的账户密码登陆。点击查看,进入dukascopy历史数据管理器:
3.在jforex里打开历史数据中心,按照下图选择日期,分隔符,tick,货币对,下载位置。然后点开始。下载的tick数据是.csv的文件格式。也可以参考格式自己获取tick数据的csv文本。
4.下载结束后,需要将CSV转为MT4回测需要的HXT文件。 https://eareview.net/downloads 下载CSV2FXT Script v.0.50 a把压缩包解压到 MQL4 文件夹,覆盖到数据文件夹根目录里的同名文件夹。 b把刚才下载好的CSV文件拷贝到MQL4/Files下。
5.打开你要测试的货币对选择好时间周期。(比如你要测试BTCUSD,15M,就打开BTCUSD,选择15分钟)
在MT4导航里找到脚本,双击其中的CSV2FXT脚本。然后找到以下选项:
Use real spread(使用真实点差):选择true commission(手续费):根据实际情况填写,注意:dukascopy是原始点差+手续费,如果你手续费默认为0,将导致测试点差过低。 FXT GMT offset(时区设置):根据你MT4服务器所在时区填写 其他默认,然后点击确认,左上角会跳出1%的进度条。等进度条读取完后,会跳出一个对话框,点击yes。获得HXT文档,重启MT4。 6.在BTCUSD,15M图表上拖入“回测”脚本,弹出对话框点确认。
7.在BTCUSD窗口保持打开的情况下,使用MT4历史回测器进行历史回测。 如果一切正常,不会出现生成数据的步骤,而是直接开始回测。注意:你只能回测BTCUSD 15M,并且不能做数据优化,跟跨周期数据获取。 Dukascopy三个月接近500W的数据量,接近tick,如需更精确的数据可以自己按csv格式爬取。
参考链接:https://www.talkfx.co/thread-191159-1-1.html https://www.waihuituan.com/t/137 http://www.eazhijia.com/thread-111775-1-10.html http://www.eazhijia.com/thread-15163-1-1.html
end |