下载MetaTrader 5
要添加评论,请登录注册
在代码库发布程序。提高您的等级!
insane007
824
insane007 2014.08.17 19:01 

为何要用tick 数据来进行历史回测?
1.MT4中历史回测最小的单位是1M,也就是说1M以下的数据变动情况是无法得知的,所以每次进行历史回测时,都必须先“计算”出每根1M柱的每tick变动情况,由于它是由计算机模拟计算出来的,因此其与当时的实际市况有所差别,一个个小的差异积累起来就造成了与真实结果的巨大差异。
2.MT4的历史回测中的点差是固定的。哪怕你可以通过工具修改点差,它也在历史回测中始终是固定的,而我们知道,实际市况中不同时段的点差是动态的,而不同点差也对EA的结果造成不同的差异。
因此,我们要用每一秒的TICK数据和每一秒的点差来进行历史回测。
因此凡是力求精确测试,要先有tick数据.dukascopy.com有免费tick数据下载.
1.      开立演示帐户:
  去www . dukascopy.com  :  开立演示户口栏  注册一个模拟账户,除了邮箱之外都可以随便填写(建议专门注册一个邮箱,接下来会用到),然后去邮箱里得到登陆账号和密码。如图:

 2.    选择平台: 见图:

 

下载Jfore.JNLP文件.如图:

 

 

 Jfore.JNLP文件是用java程序打开的,电脑上如果没有安装java的,还要下载java,如图:

 

 

 

 

下载后,安装好java 然后打开Jfore.JNLP文件,用java打开.如图:

 

 

3.  这样就打开了dukascopy的模拟平台。输入账号和密码。如图:

 

4.   进入平台后,选择工具里的historicalData Manager,然后依照下图修改,勾选,然后点开始,慢慢等待,一般情况下下载2007.3.1~现在的数据需要几十个小时的时间。如图:

 

5.      转换数据
当你下载的数据完成之后,是CSV格式的,不能直接用于MT4
需要进行转换。找到存放目录,将其名字改为货币对名称,如EURUSD(便于操作)。

将CSV数据拷贝到你的平台/experts/files文件夹内。如图:

 

 

 6下载格式转换工具:CSV2FXT 

在网址: eareview . net  注册一个帐户 然后到如图这里下载.如图:

 

 

 下载CSV2FXT转换工具 .如图:

 



下载格式转换工具:CSV2FXT ,将压缩文件中的experts文件覆盖到你的MT4目录里。
打开MT4打开你需要创建的历史数据的货币对图表(比如你要测试EURUSD,15分钟,那么就打开EURUSD,15M图表),将脚本CSV2FXT拖进图表中。
在参数中 csvfile 填上你的下载的数据名和后缀。如:EURUSD.csv.  

UseRealSpread中选择True。点确定。如图:

 

 

 7 在eareview . net  注册一个帐户后,邮箱里会有一封带有number 数字编码,是专门试用Tick Data Suite 软件的KEY,先下载Tick Data Suite 软件如图:

 

 

 注明:此软件试用期为7天,过期后,你用的电脑不再能使用Tick Data Suite 软件,除非你换台电脑再注册试用,或者交费使用.

安装打开Tick Data Suite 软件.如图:

 

 

 

 双击打开tds文件,即可进行历史测试了,

理论上就可以用TICK DATA数据来进行测试了,和普通历史回测一样,唯一的区别是不会再有“生成1M数据”的字样,而直接进行测试。
  测试完毕,你会得到99%的模型精度。如图:

 

 

 

insane007
824
insane007 2014.08.17 19:09  

转载来的,希望有大神用这个方法帮我测试下EA... 

Xiangdong Guo
3707
Xiangdong Guo 2014.08.17 22:26  

策略测试中的最小数据周期是M1,"Every tick"选项实际上是1分钟数据按照插值算法模拟出来的。

MT4/MT5目前不支持直接用tick值回测,所以没用。

enbo lu
版主
1904
enbo lu 2014.08.18 05:28  
insane007:

转载来的,希望有大神用这个方法帮我测试下EA... 

你的EA的策略中订单持有时间一般多久,以秒计算吗? 平均获利点数亏损点数很小吗?

如果不是头皮型的,没有太大必要用ticks数据测试。

真实ticks数据可以用MATLAB测试。 

insane007
824
insane007 2014.08.18 06:13  
luenbo:

你的EA的策略中订单持有时间一般多久,以秒计算吗? 平均获利点数亏损点数很小吗?

如果不是头皮型的,没有太大必要用ticks数据测试。

真实ticks数据可以用MATLAB测试。 

就是头皮型的...所以需要...
bingbing zhang
322
bingbing zhang 2014.08.18 09:15  
头皮可能是以后的一个趋势了
insane007
824
insane007 2014.08.18 11:16  
zbb:
头皮可能是以后的一个趋势了
我不跟风,不管是不是头皮,能赚钱才是对的...
insane007
824
insane007 2014.08.18 15:46  
求助啊,我还没有弄出来,按照这篇帖子的步骤也没弄好啊...有谁用过的?求指导啊...
enbo lu
版主
1904
enbo lu 2014.08.19 03:13  
insane007:
求助啊,我还没有弄出来,按照这篇帖子的步骤也没弄好啊...有谁用过的?求指导啊...
这也只是杜卡斯贝的ticks数据,测试结果并不能代表其他经纪商上的情况,你为何不做前向测试呢?
insane007
824
insane007 2014.08.19 04:30  
luenbo:
这也只是杜卡斯贝的ticks数据,测试结果并不能代表其他经纪商上的情况,你为何不做前向测试呢?
额....什么是前向测试?...怎么弄?...科普下...
Ziheng Zhuang
1436
Ziheng Zhuang 2014.08.19 10:18  

tradelife已经告诉你了,MT4/MT5都不支持tick测试。你转的帖子其实是把tick数据转换成M1的K线数据,因为在MT4中做“tick”测试,必须要有M1的K线数据,MT4中所谓的“tick”测试,

其实是用M1的K线数据采用插值计算的方法来得到"tick",显然这不是真实的tick,是模拟的。

大家为什么要做这个转换来获得M1呢? MT4自身不是有M1吗? 那是因为MT4自身的M1 K线数据太少了,一般平台提供不会超过3个月,所以就通过转换来获得更长的M1数据,这样才有效的进行MT4的“tick”测试。

这种测试也有个问题,就是你的MT4的帐号一旦联网,就会获得平台的M1,这样就覆盖了你转换而来的用于测试的M1的数据,其次,谁能保证你下载的tick数据没有错误?

所以不必折腾。 

 向前测试即forward test,是与back test 相对的概念。forward test 就是你挂机测试,把MT4开启,EA挂上,用实际行情数据测试。

/ /12
要添加评论,请登录注册