11评论

2收藏

外汇EA如何获得99%质量的回测数据?

 

avatar nothing | 13857 人阅读 | 11 人评论 | 2013-03-17

由于文中提到用PHP命令行工具,对大部分人来说稍显困难,用文中说的简单方法即可

==========================================================
一般情况下,非剥皮和刷点类EA回测使用MT4历史数据中心的数据是OK的,
但你如果用这两种EA每单赚1-15点利润的时候,即使是一个很小的数据差异都会对结果产生很大影响

这篇文章的起因是那些无法取得真实历史数据,最好情况下也只有1分钟K柱数据的(这些数据是在最小的时间周期插值产生的)。这对于设置100点止盈止损的EA来说问题不大,但对于只剥几点的EA来说,你的整个回测可能都被误导了。

因此,使用尽可能高质量的数据进行测试是非常重要的。

Dukascopy的tick数据
平台商:dukascopy
数据:dukascopy免费提供2007年以来几乎所有货币对的数据,可以媲美商业品质的数据,在回测中可以达到99%的质量。dukascopy的数据1小时更新一次

简单的方法:
如果你想略过使用PHP的过程,有一个简单的方法:需要你注册一个模拟帐号(http://eareview.net/out/dukascopy-demo),启动JForex平台,当然注册一个真实帐号数据也是一样的。用的EMAIL里的帐号登录,找到工具按纽点击历史测试器,在底部会显示历史测试器,从现在开始你要做的事情都在这个小窗口完成,首先选择一个货币对(默认是EU),如果你想增加货币对点那个“+”号选择确定即可。再点击右边的日历按纽,选择2007.03.01作为开始日期(这之前数据是不可用的)并选择一个结束日期。需要提醒的是,如果选择今天作为结束日期可能会有一个下载错误,因为不是所有数据现在都有效。在完成日期选择后,确保下面的下拉框选择项为“Ticks”,然后点击“Get Data”按纽。
下载过程中如果遇到错误重试即可,如果一直遇到错误。就一个个货币对的下载,并且调小一点时间周期,如果还是出错,就用下面介绍的PHP的方法吧。
如果下载OK,点击“Save Data”并选择一个文件路径存放每个货币对的CSV文件。现在你可以用jForex2FXT脚本来转换数据为FXT格式。它的工作模式就像Dukascopy2FXT脚本的文档里面有如何转换数据为MT4格式的章节介绍的一样,你要做的只是用jforex的压缩包替代dukascopy的压缩包(并用JForex2FXT替代Dukascopy2FXT)

注意:JForex2FXT和Dukascopy2FXT是不同的,即使他们的输入参数看起来很像。
工具:
PHP脚本这里下载:http://eareview.net/download/dukascopy_php_scripts_21.04.2010.zip
里面有三个脚本:
1、download_dukascopy_data.php下载dukascopy数据。这个脚本不会重复下载已有的数据。在货币对的数组里面设置每个货币的开始和结束时间。脚本会用LINUX标准时函数mktime转换后处理。
2、process_dukascopy_data.php用来处理已下载的数据,这脚本需要一些参数
3、一个小shell脚本用来处理所有的下载数据
windows版本PHP下载安装 & 如何转换成CSV文件
http://windows.php.net/download/这里下载PHP最新的binary版本(ZIP文件),解压到C:\php\并且把http://eareview.net/download/dukascopy_php_scripts_21.04.2010.zip解压到同一目录
把c:\php\php.ini-development改名为c:\php\php.ini
打开php.ini编辑,找到这一行:
;extension=php_curl.dll
改为:
extension=ext/php_curl.dl
保存并退出

依次执行:开始 -> 运行 -> cmd -> cd \php -> php download_dukascopy_data.php
等。。。。。。
如果你想要下载特定的数据可以加上参数运行,例如:
php process_dukascopy_data.php EURUSD 200702 200911 EURUSD.csv
或者,可运行process.bat 这个批处理会处理所有货币对的数据。
注意:
确保磁盘有足够空间。
下载的文件会超过7.5GB,并且转换过的CSV文件会接近60GB

使用数据:
为了使用CSV数据,必须做以下步骤:
1、转换数据为FXT或HST格式
2、拷贝FXT/HST数据到正确的目录
3、运行MT4加载FXT文件,就可以开始回测了
转换数据为MT4格式:
为把数据转为HST格式,用一个MT4脚本:http://eareview.net/download/dukascopy_mql_scripts_19.09.2010.zip

这个脚本从GainData2fxt.mq4演变来的
执行下面的步骤将CSV数据转换为FXT:

1、将dukascopy_mql_scripts_22.04.2010.zip拷贝到MT4安装目录并解压
2、将CSV文件移到experts\files目录
3、打开对应数据的图表(如果你下载的是eurusd数据就打开这个图表)
4、选择一个你想要生成FXT文件的时间周期(如果你想回测H1数据,就选择H1图表)
5、在导航器的脚本菜单中双击Dukascopy2FXT脚本
6、配置参数
1)CsvFile:如果你的CSV文件名字是eurusd.csv,这栏就不需要输入
2)CreateHst:如果这栏选择为true,则在别的时间周期图上就无需再次生成HST文件,因为第一次就会生成所有周期的数据
3)Spread:配置你的FXT文件所需要的点差,如果设为0,脚本会使用你所在平台的点差。值得注意的是许多平台在周末都会扩大点差。如果是5位数平台,则2点差需要输入20,4位平台只需要输入2
4)StartDate/EndDate:按上面提示,可留空,脚本会自动使用CSV文件里面的时间
7、点击OK,脚本大概要花5-30分钟,结束后会有提示出来,expert日志也可以看到一些记录8、如果有人碰到其它一些问题,请在这里留言
拷贝数据到正确的位置:
完成以后在experts\files\里面有一些文件,将其移动到history\你的服务器名\里面

注意
除非修改或者重新制作一个,否则HST文件只需要被生成一次就够了,移动完HST文件后,将experts\files里生成的FXT文件移到\tester\history目录下面
可以用它们进行回测了。。。(后面note部分未翻译)
注意:只能用255版本的MT4加载数据

""
还没有人打赏,支持一下

评论|共 11 个

sslgz

发表于 2013-3-19 12:11:41 | 显示全部楼层

谢谢分享,顶起来

简炼

发表于 2013-4-3 15:58:27 | 显示全部楼层

谢谢分享,顶起来

东方红

发表于 2013-9-7 03:51:56 | 显示全部楼层

谢谢分享

风一样

发表于 2013-10-5 08:28:03 | 显示全部楼层

不错不错

风一样

发表于 2013-10-5 08:28:07 | 显示全部楼层

不错不错

sxcdh

发表于 2014-10-24 15:27:26 | 显示全部楼层

好象不能用了!!!

dezhen

发表于 2014-10-30 11:49:37 | 显示全部楼层

看看吧,谢谢分享

独步古坛

发表于 2014-10-31 17:47:32 | 显示全部楼层

没有使用说明书

算平

发表于 2014-11-5 01:41:32 | 显示全部楼层

xiexiefenxiang

12下一页
您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则