01月18日 教程:如何获取高质量历史数据以及90%的历史测试质量

如何获取高质量历史数据以及90%的历史测试质量?
进行MT4的历史测试是有技巧的,MT4历史中心下载的数据往往质量不高,如果方法不正确只会浪费时间,更重要的是得到的是不可靠的测试结果;这篇文章将指导你如何下载历史数据,如何正确用一个独立账户来安装它并且转换到不同的时间框架,你将很快会明白并轻易掌握它。

第一步:;数据是每个月更新;请选择相对应的货币对进行下载,解压备用。

第二步: 从 下载一个全新的版本到计算机(建议),当然用现有的也行,不需要另外复制一份;因为这个MT4是历史测试专用的,不用登录到服务器,你可以把它命名为MT4测试。

第三步: 如果你是全新安装,当MT4装完后问是否启动MT4的时候,选则不立即启动,点击完成就行了。

第四步: 当你完成这个新的MT4安装后,删除MT4原有的所有历史数据,目录一般为:程序> Metatrader 4(或则你取的任何名字)>history.(如果这里不是全新安装用的以前的MT4就得进MT4把账户全部也删除了)

第五步: 现在你删除完了所有隶属数据后,启动MT4 并且创建一个模拟账户(任何交易商都

第六步:骚片AV 一旦你的模拟账户建立了,你就需要将它删除,对,你没有看错,我们要删除我们刚才建立的模拟账户,为了防止它复写我们将导入的历史数据;而建立这个账户的目的只是需要一些货币对的目录结构。

第七步: 删除完了之后,关闭MT4.现在我们需要将你刚才下载下来的历史数据拷贝到这个新的MT4的历史数据目录中去,打开你的资源管理器,找到你下载的数据并解压他们,应该是一些类似EURUSD.TXT的文件;这步也可以省略,直接从你解压的目录导入也可以。

在我们继续之前,再次确认一下history目录相关账户里面没有.hst文件,有的话全部删除。

骚片AV把历史数据拷贝到history目录,注意只需要文件,不包含有目录。

第八步:骚片AV 现在,再次打开MT4终端。通常来讲,每次我们打开MT4(如果没有账户的话)都会提示开一个模拟账户,你要选择取消;接着问你登录也选择取消;记住以后每次都这样。

登录也取消:

第九步:骚片AV 现在我们需要改变图表的最大数据设置,选择 TOOLS > OPTIONS.

骚片AV选择图表标签,编辑最大历史柱数量和最大图表显示数量为999999999999,点击确定。

关闭MT4再次打开,你将看到这个样子:

第10步:骚片AV 到工具TOOLS > HISTORY CENTER(历史数据中心) (或者按 F2 ).

在左边菜单中选者你想要导入的货币对,比如AUDUSD. 展开菜单你可以看到不同时间框架。他们应该是灰色的,双击1分钟时间框架。还是灰色的,不过你需要双击来导入数据。

第11步:点击 IMPORT或者是导入按钮. 然后点击 BROWSE(浏览)并且找到你下载的货币历史数据,就是那个TXT文件,例如 Metatrader > history > demo account 目录中,骚片AV whe选择文件并打开它,或许要等待几分钟,视计算机速度而定,有可能你需要将文件类型从TXT变为所有,以便显示所有文件。

骚片AV如果没有打开,你可以尝试跳过一列(skip 1 columns),通常情况都可以正常打开。然后点击OK。

重复以上步骤就可以导入更多的货币对。

第12步:  打开一个你希望的货币对(你刚导入的)图表,选者1分钟图,你应该可以看到1分钟图了。其他周期的图,你可能只看到“等到更新”画面,因为我们还没有那些周期的历史数据,需要下面的工具转换一下。

第13步:转换数据 – 下载周期转换脚本:,将 ,拷贝到骚片AVMT4/experts/scripts目录下,然受将这个脚本拖动到1分钟图表上,输入5就将得到5分钟数据;再次拖动输入15就将得到15分钟数据。

骚片AV有没有转换成功查看日志或者历史数据目录就可得知。

第14步: 重复以上步骤导入其他货币对。  第15步: OK,重新打开MT4,现在你应该可以看到所有周期图表了。就是这样,接下来你就可以可以进行历史测试了。后面的不用我告诉你怎么做了吧。


骚片AV写在最后:即使是90%的数据质量,对于测试剥头皮(1-15个点盈利)的EA的历史测试结果还是不太可靠的,这个时候我们就需要tick数据了,通过tick数据我们可以得到高达99%的数据质量,不过过程也要复杂得多,有机会再和大家交流了。

var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?44d5929b98ed1fd093ffc3d47ec712b9"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();