Python交换引擎

beige的Python项目详细描述


Python本机交换引擎

WebsitePyPIPyPI - LicenseGitHub issues

米色

为什么是米色?在

因为它不是特别吸引人, 可能有更好的颜色, 但它有点管用。 我很惊讶现在还没有名为beige的包!在

一个简单、缓慢的交换库

米色是一个非常简单的库,它提供了匹配引擎的全部功能,具有跟踪帐户余额和正在进行的报价的功能。在

示例

导入正确的位,然后启动引擎

frombeigeimportEngine,Order,Market,Limit,Side# Create the engineeng=Engine()

账户余额可以在市场交易开始时初始化

^{pr2}$

然后可以以相当直观的方式提交订单:

# Limit buy order for 'what?' security, 1# Store the ID, and we can query its status lateroid=eng.submit(Order(instrument='what?',type_=Limit(10),side=Side.Sell,quantity=5,entity='person-b',))# Submit a market order thateng.submit(Order('WHAT?',Market(),Side.Buy,1,'person-a',))

检索到订单的ID后,我们可以随时查看订单的完整信息:

o=eng.status(oid)# type(o) == dict# o.keys() == ['sym','price','side','qty','acct','id','submitted','filled','averagepx','filledtime','status']

提供完整的按时间顺序排列的事务数据集

df=eng.txs# df.columns = ['qty','px','time','sym']

在任何时候,都可以请求报价。 请注意,对于任何不可用的值,None都将返回,例如,last如果还没有发生任何事务,last将为空。在

bid,ask,last,bidsize,asksize,lastsize=eng.quote('TSLA')

限制

  • 速度。软件还没有完全优化,许多数据结构可以真正受益于一点爱和关心。在
  • 仅整数数量
  • 所有帐户实体和证券都不区分大小写,并且将以所有大写字母显示
  • “$”证券对现金进行编码,是所有证券交易的基本单位。对不起前美国用户!在

测试

  • 正确性=>;python3 tests.py
  • 速度=>;python3 tests.py speed
  • 探查器=>;python3 tests.py profile

我平均每个订单执行0.15毫秒。 在这种情况下,我可能比你在市场上所需要的顺序指令慢。 请随意提高速度,但请将请求拉回我。在

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

推荐PyPI第三方库


热门话题
java垂直解析txt文件   如何在从ovf部署vm时使用vi java api指定IP地址?   使用部分密钥进行java AES256解密   我无法接收RESTJava ws作为JSONObject发送到我的安卓应用程序的布尔值   java以下同步块的目的是什么?   java小部件在进入应用程序时停止更新   java如何在Okhttp中使用Socks5代理来启动http请求   java Android多资源库项目   java使用条形码4J创建gif条形码   java Play测试数据持久性问题使用GET时,发布的数据不可用   java Jnlp在证书中给出错误   java将我的exist服务器连接到GCM   AChartEngine中XAxis标题和XAxis标签之间的java边距   java BLOb:无法读取所有数据,但只有很少的kb   java Android WebView未加载Instagram授权   JAVAutil。日志记录可以指定一个java。util。通过D选项或不需要更改代码的某种方式创建日志格式化程序?   windows如何在Inno安装程序的路径中查找应用程序(Java)   java如何使用Jgit API调用“git checkout m”?   客户端Java服务器:通过广播在讲师和学生之间进行会议