Python交换引擎
beige的Python项目详细描述
Python本机交换引擎
米色
为什么是米色?在
因为它不是特别吸引人,
可能有更好的颜色,
但它有点管用。
我很惊讶现在还没有名为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毫秒。 在这种情况下,我可能比你在市场上所需要的顺序指令慢。 请随意提高速度,但请将请求拉回我。在
- 项目
标签: