pTrader本身是从我个人投研框架中剥离出来的一部分,交易框架的封装方案是采用了景色CTP的那套
swig封装CTP到python的方案,然后在此之上再将常用的交易接口做成Web server的形式,而将行情
数据用redis message的形式进行推送。
这样做的好处在于,可以很简单地实现一套账户下对应多个策略,策略只要在需要交易时请求本地的交
易接口即可。
整体分为以下几个模块:
|
| - infra
| |—— tool
| |—— trade
| - utils
| |—— buffer
| |—— tool
utils是一些必要的支持组件,包含redis处理,和一些装饰器、工具组件。
infra则包含了CTP的封装以及交易端的Web server+client, 还有行情数据广播。
要用起来这套东西还是比较简单,只是有一些前置工作需要完成:
1. setup.py & install requirements.txt
2. 请配置一个Redis服务,并将参数填在config.ini中
3. 在trade.ini中配置你自己的交易账户信息,里面有一些残留的信息是SIMNOW的,你也可以配置实盘。
4. 分别运行infra/trade/service/ctp/下的market_data 和 trader_server
5. 现在就可以在你的策略中引用trader_client内的方法,构建你自己的交易逻辑了。
1. 开源出来的这一部分功能比较简单,因为我个人的框架解耦没那么彻底,导致很多功能的实现需要本地
组件甚至数据库的支持,没办法全开源出来。比如infra/tool/rules里面有几个方法的实现就需要
用户自己根据情况去完善。
2. 这套基于Flask的Web Server对于同时多个交易指令的处理不是特别理想,如果你有那种同一时刻多
个交易指令的需求,需要自己去实现排队或者并发等方案。
3. 景色的CTP封装方案还是挺易用的,如果需要用到最新的CTP版本也可以自己编译然后把文件放到对应
位置即可。
4. TraderApi的功能我只实现了一小部分,如果有需要可以自行扩展。
这部分东西我之前跑过一段时间的SIMNOW和实盘,中低频、交易逻辑简单的话用起来基本没什么问题。
开源也是为了回馈,当我最开始搞CTP的时候可以有很多开源供我参考,例如景色CTP。我这些简单的代码
也希望能对更多的人有启发。
目前在逐渐从python转向c++,希望未来有更好的东西拿出来和大家分享。
vx:muzexlxl