smarkets python sdk-api客户端和实用程序库
smk_python_sdk的Python项目详细描述
smarkets流式api python客户端。
与Python2.7、3.5和PyPy1.9+兼容。
文档:http://smarkets-python-sdk.readthedocs.org/en/latest/
使用源分发版安装
使用pypi发行版安装smk python sdk时,没有非python依赖项。安装smk python sdk时,将获取所有python依赖项。
PYPI页面:https://pypi.python.org/pypi/smk_python_sdk
pip install smk-python-sdk
开始
importlogginglogging.basicConfig(level=logging.DEBUG)fromsmarkets.streaming_api.apiimport(SessionSettings,Session,StreamingAPIClient,)username='username'password='password'settings=SessionSettings(username,password)settings.host='stream.smarkets.com'session=Session(settings)client=StreamingAPIClient(session)client.login()client.ping()client.read()client.flush()client.logout()
注册回调
deflogin_response(message):print('eto.login_response',msg)defglobal_callback(name,message):print(name,message.protobuf)client.add_handler('eto.login_response',login_response)client.add_global_handler(global_callback)
下订单
fromsmarkets.streaming_api.apiimportSIDE_BIDfromsmarkets.streaming_api.setoimportOrderCreatedeforder_accepted(message):reference=message.order_accepted.referenceorder_id=message.order_accepted.order_idprint('ORDER_ACCEPTED: reference {} corresponding to order_id {}'.format(reference,order_id,))deforder_rejected(message):reference=message.order_rejected.referencereason=message.order_rejected.reasonprint('ORDER_REJECTED with reference {} with reason {}'.format(reference,reason))client.add_handler('seto.order_accepted',order_accepted)client.add_handler('seto.order_rejected',order_rejected)market_id=100000contract_id=200000order=OrderCreate()order.quantity=400000# £40 payoutorder.price=2500# 25.00%order.side=SIDE_BIDorder.market_id=market_idorder.contract_id=contract_idclient.send(order)client.flush()
取消订单
fromsmarkets.streaming_api.setoimportOrderCancelorder_id=...# received in seto.order_accepted messagedeforder_cancelled(message):order_id=message.order_cancelled.order_idreason=message.order_cancelled.reasonprint('ORDER_CANCELLED order_id {} with reason {}'.format(order_id,reason))deforder_cancel_rejected(message):order_id=message.order_cancel_rejected.order_idreason=message.order_cancel_rejected.reasonprint('ORDER_CANCEL_REJECTED: with order_id {} with reason {}'.format(order_id,reason))client.add_handler('seto.order_cancelled',order_cancelled)client.add_handler('seto.order_cancel_rejected',order_cancel_rejected)cancel=OrderCancel()cancel.order_id=order_idclient.send(cancel)client.flush()
螺纹安全性
此包中包含的函数和类成员是线程安全的。实例成员是not线程安全的。
开发
github存储库:https://github.com/smarkets/smk_python_sdk/
非python依赖项:
- 皮奇
- google protocol buffers编译器和库
您可以通过执行以下命令来安装python依赖项:
pip install -r requirements.txt
要构建和安装,请致电:
python setup.py clean build install
注意:构建包不会从setup.py中各自的位置获取最新的piqi文件。 为此,必须调用python setup.py clean,然后调用python setup.py build。
许可证
版权所有(c)smarkets limited<;support@smarkets.com>;
此模块在mit许可下发布:http://www.opensource.org/licenses/mit-license.php(或查看许可文件)