自己做量化交易软件(22)小白量化之MetaTrader5自动交易1
小白量化框架源代码是《零基础搭建量化投资系统――以Python为工具》的随书演示代码.
作者其中之一杨老师利用小白量化系统参加外汇期货实战比赛,取得了8天获利860%的战绩.
我看了这个战绩,我从心里羡慕、嫉妒、外加眼红,让杨老师把交易策略告诉我。通过学习,我进行实战联系,获得了1天获利105%的成绩。
很多读者也希望了解小白量化系统在MetaTrader5回测及自动交易的应用,因此我写这篇介绍给广大朋友。本文只涉及电脑技术,不涉及交易策略。
1、首先是pip安装MetaTrader5.如果读者使用了本系列前篇的“绿色Py37”,需要如下操作,安装必要库。
python -m pip install --upgrade pip
pip install MetaTrader5
pip install numpy -U
2、《零基础搭建量化投资系统――以Python为工具》读者群复制小白量化2模块到用户新建目录中。
3、安装MetaTrader5软件,安装好后,申请DEMO用户,开启算法交易。
4、开始编写MT5的Python程序
#引入相关库
import MetaTrader5 as mt5
import HP_mt5 as hmt5#初始化小白mt5库
hmt5.init()#登陆用户mt5的帐户
hmt5.login(login=用户名, server=服务器名,password=用户密码)#输出mt5连接相关信息
hmt5.info()#获取用户登陆信息
#accountinfo=mt5.account_info()
#print(accountinfo)
程序如果连接成功,会出现如下结果。
显示有关MetaTrader 5程序包的数据
MetaTrader5 package author: MetaQuotes Software Corp.
MetaTrader5 package version: 5.0.33
# 显示有关连接状态、服务器名称和交易账户的数据
TerminalInfo(community_account=False, community_connection=False, connected=True, dlls_allowed=False, trade_allowed=True, tradeapi_disabled=False, email_enabled=False, ftp_enabled=False, notifications_enabled=False, mqid=False, build=2489, maxbars=100000, codepage=936, ping_last=222091, community_balance=0.0, retransmission=0.07995623448217817, company='True ECN Trading Ltd', name='MetaTrader 5 IC Markets (SC)', language='Chinese (Simplified)', path='C:\\Program Files\\MetaTrader 5 IC Markets (SC)', ...)
# 显示有关MetaTrader 5版本的数据
(500, 2489, '12 Jun 2020')
5、现价开多单
hmt5.buy(symbol = "XAUUSD",volume=0.01)
6、现价开空单
hmt5.sell(symbol = "XAUUSD",volume=0.01)
7、平仓
hmt5.pingcang(id)
8、清仓,平仓掉所有获利大于profit的所有单子
hmt5.qingcang(profit=-9999999)
9、止赢,平仓掉所有获利大于profit的所有单子
hmt5.zhiying(profit=-9999999)
10、止损,平仓掉所有获利小于profit的所有单子
hmt5.zhisun(profit=-100)
11、MT5行情数据转小白量化数据格式,hq为MT5获取的行情数据
hmt5.tohpdata(hq)
12、获取MT5的仓单,并返回DataFrame 对象格式.
hmt5.reload_positions(symbol="XAUUSD")
介绍了相关小白量化的演示,下面给交易的例子。
#引入相关库
import MetaTrader5 as mt5
import HP_mt5 as hmt5#初始化小白mt5库
hmt5.init()#登陆用户mt5的帐户
#hmt5.login(login=用户名, server=服务器名,password=用户密码)
hmt5.login(login=5019, server="ICMarkets-Demo",password="XBrX")#输出mt5连接相关信息
hmt5.info()#获取用户登陆信息
#accountinfo=mt5.account_info()
#print(accountinfo)hmt5.reload_positions()
hmt5.buy()
hmt5.buy()
hmt5.buy()
hmt5.buy()
hmt5.sell()
hmt5.sell()
hmt5.sell()
hmt5.sell()
hmt5.sell()
程序运行结果。
订单数: 1
多单买入价: 1725.6
订单数: 2
多单买入价: 1725.59
订单数: 3
多单买入价: 1725.59
订单数: 4
多单买入价: 1725.59
订单数: 5
空单卖出价: 1725.23
订单数: 6
空单卖出价: 1725.29
订单数: 7
空单卖出价: 1725.63
订单数: 8
空单卖出价: 1725.64
订单数: 9
空单卖出价: 1725.66
订单数: 10
这篇先介绍到这里,有兴趣的朋友,可以继续看下一篇。