用于MetaTrader 5网关的PythonAPI

pymt5的Python项目详细描述


PYMT5

versionpyversionplatformlicensedownloadsSponsor

为MT5网关提供简化的、多线程的、基于套接字的Python接口。Pymt5需要在MT5平台上安装一个DevCartel MT5 gateway来使用Pymt5。

application

安装

Pymt5同时支持Python2和3。只需使用pip

PyPI安装即可。
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.发送(客户端iddata
客户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_idclient_addressclient_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_idclient_addressclient_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 typeHeaderTags
Login^{}^{},^{},^{}
Logout^{}None
Symbol^{}^{},^{},^{},^{},^{},
^{},^{},^{},
^{},^{},^{},^{},
^{},^{},^{},^{},
^{},^{},^{},^{},
^{},^{},^{},
^{},^{},^{},
^{},^{},
^{},^{},^{},
^{},^{},^{},
^{},^{}
Tick^{}^{},^{},^{},^{},^{},^{},^{}
Order^{}^{},^{},^{},^{},^{},^{},^{},
^{},^{},^{},^{},
^{},^{},^{},^{},
^{},^{},^{},^{},
^{},^{},^{},^{},
^{},^{},^{}
Heartbeat^{}None
Deal^{}^{},^{},^{},^{},^{},
^{},^{},^{}
External Deal^{}^{},^{},^{},^{},^{},
^{},^{},^{},^{}

支架

更改日志

1.2.0

  • 2019年7月8日
  • 支持Python3.7
  • 更新支持链接
  • 添加示例

1.1.0

  • 2018年4月21日
  • 在PYPI上发布
  • 添加自述文件

1.0.0

  • 2018年4月13日
  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Admob不使用webview   Java Wicket表单:序列化对象类“myClassName”时出错   java googledriveapi更新文件与我的帐户管理员   java简单框架未知xml标记解析   java如何使用主类和用户获取Spark应用程序ID   java如何更改自定义属性的值?   java有没有办法在jMock中找到未使用的期望值?   gradle运行任务的java文档?   java通过使用数组来存储文本文件的行,通过覆盖来删除文本文件中的行   用于表达式语言注入的java利用负载   java IDEStyle程序运行   java在运行时启用/禁用Springws   爪哇芦苇。formatNumber NullPointException   java为什么我的代码无法检测两个动态实体之间的碰撞?