用于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从Struts操作的钩子更改表单值(Liferay 6.2)   java如何改变Spring MVC处理url“点”字符的行为   Clojure中使用Java接口的问题   junit如何模拟comosDB azure java集成客户端?   运行函数时发生java错误   netbeans Java。jar文件和依赖项   Eclipse中文本字段中的java输入类型   在JAVA中,将集合变量从实时批处理运行时传递到调用批处理文件   java通过Bean验证API中的自定义消息管理异常   XML到json的转换,在Java中,同时保留数据类型   根据JAVA中的列名从Excel文件中获取单元格值   在AsyncTask的doInBackground中未调用java FirebaseMessagingService   java如何在数据库中插入一行?