【求助】如何利用mql5进行机器学习来进行分析?

 

因为mt5平台下的数据经过了特殊的编码方式,后缀名也不同,所以在诸如MATLAB,octave等语言环境下是无法使用哪些数据的,

然后在mql5也没有相似的编程环境,不知道如何获取数据利用机器学习来进行分析,

如果去淘宝上买数据的话,又不能保证他和交易商平台所提供的数据相同,如此,进退两难,请大佬解答!

 
xkyup:

因为mt5平台下的数据经过了特殊的编码方式,后缀名也不同,所以在诸如MATLAB,octave等语言环境下是无法使用哪些数据的,

然后在mql5也没有相似的编程环境,不知道如何获取数据利用机器学习来进行分析,

如果去淘宝上买数据的话,又不能保证他和交易商平台所提供的数据相同,如此,进退两难,请大佬解答!


一般平台的MT5可以提供M1的历史数据,至少10年。

因此可以编写一个MT5的EA,跑一遍测试,数据都下来了,然后保存数据为 txt格式即可。

这个工作我已经做好了。

下载即可使用。

https://www.mql5.com/zh/code/20002

为 MetaTrader 4 回溯测试取得M1 OHLC数据
为 MetaTrader 4 回溯测试取得M1 OHLC数据
  • 投票: 8
  • 2018.02.27
  • Ziheng Zhuang
  • www.mql5.com
在 MetaTrader 4 中,通常大多数经纪商不会提供超过3个月的 M1 数据,而在 MT5 中,它们会提供超过3年的 M1 数据. 所以,我们可以使用这个工具来在 MetaTrader 5 测试器中取得 M1 数据,并且把数据保存到 .hst 文件中用来做 MetaTrader 4 的回溯测试。 怎样使用? 在 MetaTrader 5 中测试 EA , 选择 M1...
 
Ziheng Zhuang:


一般平台的MT5可以提供M1的历史数据,至少10年。

因此可以编写一个MT5的EA,跑一遍测试,数据都下来了,然后保存数据为 txt格式即可。

这个工作我已经做好了。

下载即可使用。

https://www.mql5.com/zh/code/20002

非常感谢,楼主好人一生平安

 
Ziheng Zhuang:


一般平台的MT5可以提供M1的历史数据,至少10年。

因此可以编写一个MT5的EA,跑一遍测试,数据都下来了,然后保存数据为 txt格式即可。

这个工作我已经做好了。

下载即可使用。

https://www.mql5.com/zh/code/20002

在请问楼主能否获得每次报价信息,以及是否建议这样做?

如果不建议或不能的话有什么好的替代方法?
 
xkyup:

在请问楼主能否获得每次报价信息,以及是否建议这样做?

如果不建议或不能的话有什么好的替代方法?


可以获得tick数据,是否要这么做看你的需求,但是我不建议这么做,因为tick数据很少有靠谱的。

MT5测试终端是可以下进行 tick测试的,实际也是从服务器下载tick数据,所以也是可以收集下载的tick数据。

如果那样收集tick数据,则需要测试时选择every tick based on real tick,并在OnTick中收集存储数据,测试收集过程长,比较耗时,一个品种一年估计在1G左右。

但是这tick数据并不能保证质量,不管平台从哪里弄来的tick数据,它都非常大,也都是其他第三方收集存储的,难免不出问题。

用下载下来的tick数据构造M1的K线数据,估计会有些很奇怪的K线。

直接下载M1的K线数据则可以保证质量,毕竟M1的历史数据10年也就大概150M,收集存储过程可以有保障。


另外并不是任何策略必须要做tick测试,有些策略是基于开盘价的,或者基于确立的信号即信号出现在已经走完的K线上,然后止盈止损还比较大,用M1的OHLC就可以了。

自己评估是否需要tick测试。

测试20年tick数据也不能保证未来不出问题,tick测试并不具备决定性的意义。

总之,是否要做tick测试看策略。

 
Ziheng Zhuang:


可以获得tick数据,是否要这么做看你的需求,但是我不建议这么做,因为tick数据很少有靠谱的。

MT5测试终端是可以下进行 tick测试的,实际也是从服务器下载tick数据,所以也是可以收集下载的tick数据。

如果那样收集tick数据,则需要测试时选择every tick based on real tick,并在OnTick中收集存储数据,测试收集过程长,比较耗时,一个品种一年估计在1G左右。

但是这tick数据并不能保证质量,不管平台从哪里弄来的tick数据,它都非常大,也都是其他第三方收集存储的,难免不出问题。

用下载下来的tick数据构造M1的K线数据,估计会有些很奇怪的K线。

直接下载M1的K线数据则可以保证质量,毕竟M1的历史数据10年也就大概150M,收集存储过程可以有保障。


另外并不是任何策略必须要做tick测试,有些策略是基于开盘价的,或者基于确立的信号即信号出现在已经走完的K线上,然后止盈止损还比较大,用M1的OHLC就可以了。

自己评估是否需要tick测试。

测试20年tick数据也不能保证未来不出问题,tick测试并不具备决定性的意义。

总之,是否要做tick测试看策略。

好的,感谢楼主的详细解答。

这几天我看了一下相关的文章,也明白具体如何利用mt5进行数据下载以及压缩了,

确实,如果选择every tick,那么下载的tick数据将会非常大,毕竟我平均了一下,过去一年每分钟tick_volume平均就有40多,并且下载的tick数据也仅仅是报价量而已。

如果使用压缩的话,那么必须自己设定具体的规则,然后才能使用别的语言正常使用数据,我也会按照我的需求具体设计。

再次感谢楼主无私的解答。

 
xkyup:

因为mt5平台下的数据经过了特殊的编码方式,后缀名也不同,所以在诸如MATLAB,octave等语言环境下是无法使用哪些数据的,

然后在mql5也没有相似的编程环境,不知道如何获取数据利用机器学习来进行分析,

如果去淘宝上买数据的话,又不能保证他和交易商平台所提供的数据相同,如此,进退两难,请大佬解答!

楼歪了,说好的聊机器学习呢?
 
m1 数据确实比tick数据来得快,回测更方便。