提供python市场数据api访问flextrade sym
pyflx的Python项目详细描述
Pyflx
提供对flextrade sym的python市场数据api访问。pyflx有两个市场数据python类-symlister(客户机)用于使用flextrade市场数据服务器中的市场数据,以及symproxy(发布者或订阅者)用于将自定义tick数据发布到flextrade市场数据服务器。
安装
从PyPI安装,使用pip
:
pip install pyflx
示例
importpyflximporttimedefonData(symbol,data={}):print("[onData] symbol:{}, data:{}".format(symbol,data))sl=pyflx.Symlistener()sl.onData(onData)whileTrue:try:ifsl.connect('192.168.1.123',7600):sl.subscribe('XAU/USD')sl.loop()time.sleep(5)exceptKeyboardInterrupt:exit(0)exceptExceptionase:print(e)
有关示例代码,请参见symlistener.py
和symproxy.py
。
API
SymListener类
pyflx.symlistener()
创建SymListener客户端的实例。
>> sl = pyflx.Symlistener()
symlistener.connect(ip_address,port)
IP地址:str
端口:int
返回:bool
连接到指定端口号上的sym服务器。如果成功,则返回true
;如果无法连接到服务器,则返回false
。
>> sl.connect('192.168.1.123', 7600)
symlister.subscribe(symbol)
符号:str
订阅符号的市场数据。
>> sl.subscribe('XAU/USD')
symlister.subscribeAll()
订阅所有符号的市场数据。
>> sl.subscribeAll()
symlistener.取消订阅(symbol)
符号:str
取消订阅符号的市场数据。
>> sl.unsubscribe('XAU/USD')
symlister.subscribeAll()
取消订阅所有符号的市场数据。
>> sl.unsubscribeAll()
symlister.loop()
输入事件循环并侦听回调。
>> sl.loop()
symlister.ondata(symbol,data)
符号:str
数据:dict
如果已分配回调onData
,则在从sym server接收消息时调用该回调。
>> def onData(symbol, data):
>> print("[onData] symbol:{}, data:{}".format(symbol, data))
>>
>> sl = pyflx.Symlistener()
>> sl.onData(onData)
交感神经类
pyflx.symproxy()
创建symproxy服务器的实例。
>> sp = pyflx.Symproxy()
symproxy.initialize(port)
端口:int
侦听端口上的传入连接请求。
>> sp.initialize(7600)
symproxy.getfd()
返回:int
返回客户端或绑定套接字。
>> sp.getFd()
symproxy.select()
返回:int
在套接字上查找事件。
>> sp.select()
symproxy.checksocket()
将触发进程检查请求和回调。
>> sp.checkSocket()
symproxy.publish(symbol,data)
符号:str
数据:dict
将市场数据tick更新发布到sym服务器。
>> sp.publish('XAU/USD', {0:1420, 1:1421.5, 512:1000, 513:2000, 1032:'USD', 1541:'U'})
symproxy.onlogon(username,password)
用户名:str
密码:str
如果已分配回调onLogon
,则在从客户端接收登录消息时调用该回调。
>> def onLogon(username, password):
>> print("[onLogon] username:{}, password:{}".format(username, password))
>>
>> sp = pyflx.Symproxy()
>> sp.initialize(7600)
>> sp.onLogon(onLogon)
>> sp.onSubscribe(onSubscribe)
>> sp.onUnsubscribe(onUnsubscribe)
symproxy.onsubscribe(symbol)
符号:str
如果已分配回调onSubscribe
,则在从客户端接收符号订阅消息时调用该回调。
symproxy.onunsubscribe(username,password)
符号:str
如果已分配回调onUnsubscribe
,则在从客户端接收到符号取消订阅消息时调用该回调。
支架
- 在issue tracker 中报告问题
更改日志
1.2.0
- 2019年8月7日
- 支持Python2.7
- SymListener类
- 交感类