用于MetaTrader 5网关的PythonAPI
pymt5的Python项目详细描述
PYMT5
为MT5网关提供简化的、多线程的、基于套接字的Python接口。Pymt5需要在MT5平台上安装一个DevCartel MT5 gateway来使用Pymt5。
安装
Pymt5同时支持Python2和3。只需使用pip
:
pip install pymt5
示例
importpymt5defonData(data):client=data.get('client_id')# Loginifdata.get('type')=='1':# Send heartbeatm.send(client,{'ver':'3','type':'6'})# Send login OK responsem.send(client,{'ver':'3','type':'1','login':data.get('login'),'password':data.get('password'),'res':'0'})m=pymt5.PyMT5()m.onConnected=onConnectedm.onDisconnected=onDisconnectedm.onData=onData
签出更多邮件examples。
API
pymt5.pymt5([host=''],[port=16838])
主机:str
端口:int
返回:对象
启动Pymt5服务器并监听由port定义的端口。
>> m = pymt5.PyMT5()
当从网关传入连接时,pymt5以dict格式以pymt5.requests
存储客户机信息,格式为
pymt5.stop()
断开所有MT5网关连接并停止服务器。
>> m.stop()
pymt5.广播(data)
数据:dict
向所有连接的网关发送消息。发送市场数据时考虑使用此选项。
>> #send a tick
>> m.broadcast({'ver':'3','type':'4','symbol':'EURUSD.TEST','bank':'dc','bid':'1.2661','ask':'1.2665','last':'1.2665','volume':'1','datetime':'0'})
pymt5.发送(客户端id,data)
客户ID:int
数据:dict
向连接的网关发送消息。
>> #send heartbeat
>> m.send(123145536110592, {'ver':'3','type':'6'})
pymt5.断开连接(客户端id)
客户ID:int
终止连接。
>> m.disconnect(123145536110592)
pymt5.onconnected(客户端信息)
客户信息:dict
如果已分配回调onConnected
,则会在客户端连接成功时调用该回调。客户机信息可以从client_info
的值client_id
、client_address
和client_port
访问。
>> def onConnected(client_info):
>> print(str(client_info))
>> # print {'client_port': 64941, 'client_address': '127.0.0.1', 'client_id': 123145536110592}
>>
>> m = pymt5.PyMT5()
>> m.onConnected = onConnected
pymt5.ondisconnected(客户端信息)
客户信息:dict
如果已分配回调onDisconnected
,则在断开与客户端的连接时调用。客户机信息可以从client_info
的值client_id
、client_address
和client_port
访问。
>> def onDisonnected(client_info):
>> print(str(client_info))
>>
>> m = pymt5.PyMT5()
>> m.onDisconnected = onDisconnected
pymt5.ondata(data)
数据:dict
如果已分配回调onData
,则在从网关接收消息时调用。有关详细信息,请参见Data Format。
>> def onData(data):
>> print(json.dumps(data))
>>
>> m = pymt5.PyMT5()
>> m.onData = onData
数据格式
数据将构成一个dict,其密钥/值定义如下,从网关发送和接收。
Data type | Header | Tags |
---|---|---|
Login | ^{ | ^{ |
Logout | ^{ | None |
Symbol | ^{ | ^{ ^{ ^{ ^{ ^{ ^{ ^{ ^{ ^{ ^{ ^{ |
Tick | ^{ | ^{ |
Order | ^{ | ^{ ^{ ^{ ^{ ^{ ^{ |
Heartbeat | ^{ | None |
Deal | ^{ | ^{ ^{ |
External Deal | ^{ | ^{ ^{ |
支架
- 获取DevCartel MT5 Gateway以便使用pymt5
- 在issue tracker 中报告问题
更改日志
1.2.0
- 2019年7月8日
- 支持Python3.7
- 更新支持链接
- 添加示例
1.1.0
- 2018年4月21日
- 在PYPI上发布
- 添加自述文件
1.0.0
- 2018年4月13日
- 初始版本