概述
在上一篇文章中,我们介绍了如何通过观察图表上的趋势来标记数据,并将数据保存到“csv”文件中。在这一部分中,让我们以不同的方式思考:从数据本身开始。
我们将使用Python处理数据。为什么选择Python?因为它方便快捷,并不意味着它运行得很快,但Python庞大的库可以帮助我们大大缩短开发周期。
用MetaTrader5库从MT5客户端获取数据
当然,最基本的是你的电脑上已经安装了python,如果没有,作者不建议安装官方版本的python,而是更喜欢使用易于维护的Anaconda。但普通版的Anaconda体积巨大,集成了丰富的内容,包括可视化管理、编辑等,令人尴尬的是我几乎不用它们,所以我强烈推荐minincoda,简洁明了,简单实用。
1. 基本环境初始化
首先创建一个虚拟环境,然后打开Anaconda Promote,键入:
conda create -n Data_label python=3.10
添加图片注释,不超过 140 字(可选)
输入“y”并等待创建环境,然后键入:
conda activate Data_label
注意:当我们创建conda虚拟环境时,记得添加python=x.xx,否则我们在使用过程中会遇到莫名其妙的麻烦,这是一个吃过苦头的人的建议!
2. 安装必要的库
安装我们的基本库MetaTrader 5,在conda Promote中键入:
pip install MetaTrader5
安装 pytrendseries,在 conda Promote 中键入:
pip install pytrendseries
3. 创建python文件
打开MetaEditor,找到“工具”->“选项”,在“编译器”选项的python列中填写您的python路径,我自己的路径是“G:miniconda3\envs\Data_label”:
添加图片注释,不超过 140 字(可选)
如果提示“initialize()failed!”,请在initialize()函数中添加参数路径,即客户端可执行文件的路径,如以下颜色加深代码所示:
# Copyright 2021, MetaQuotes Ltd.
# https://www.mql5.com
import MetaTrader5 as mt
if not mt.initialize("D:\\Project\\mt\\MT5\\terminal64.exe"):
print('initialize() failed!')
else:
print(mt.version())
mt.shutdown()
一切就绪,让我们获取数据:
# Copyright 2021, MetaQuotes Ltd.
# https://www.mql5.com
import MetaTrader5 as mt
if not mt.initialize("D:\\Project\\mt\\MT5\\terminal64.exe"):
print('initialize() failed!')
else:
sb=mt.symbols_total()
rts=None
if sb > 0:
rts=mt.copy_rates_from_pos("GOLD_micro",mt.TIMEFRAME_M15,0,10000)
mt.shutdown()
print(rts[0:5])