smarkets python sdk-api客户端和实用程序库

smk_python_sdk的Python项目详细描述


Build status

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(或查看许可文件)

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

推荐PyPI第三方库


热门话题
java使用哪个地图/集合?   bluej Java:计算税   由于性能问题,java双精度字符串替代方案   java Eclipse CDT生成设置因重新启动而丢失   如何在java控制台中显示字节流值   java获取url地址,其中是包含我的页面的iframe   java 403禁止的spring启动API调用错误?   如果一个方法返回true,java将停止计时器   使用JavaNIO获取文件创建日期   在Java中从整数转换为二进制时保留整个字节的字符串   java AspectJ&Maven警告:“未应用……中定义的建议?”   java为什么我得到3,我不应该得到+7   java当一个方法包含多个返回的if语句时,如何从该方法中获取返回值?   在运行时循环java(scan.nextLine()!="$")   java配置休眠。cfg。春天的xml   java使用HtmlUnit模拟用户,错误   java CLI如何持续检查更改   java最大素因子(返回)