Skip to content

danni2019/pTrader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pTrader

一个简单的CTP行情+交易服务

简介

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内的方法,构建你自己的交易逻辑了。

FAQ

1. 开源出来的这一部分功能比较简单,因为我个人的框架解耦没那么彻底,导致很多功能的实现需要本地
    组件甚至数据库的支持,没办法全开源出来。比如infra/tool/rules里面有几个方法的实现就需要
    用户自己根据情况去完善。
2. 这套基于Flask的Web Server对于同时多个交易指令的处理不是特别理想,如果你有那种同一时刻多
    个交易指令的需求,需要自己去实现排队或者并发等方案。
3. 景色的CTP封装方案还是挺易用的,如果需要用到最新的CTP版本也可以自己编译然后把文件放到对应
    位置即可。
4. TraderApi的功能我只实现了一小部分,如果有需要可以自行扩展。

总结

这部分东西我之前跑过一段时间的SIMNOW和实盘,中低频、交易逻辑简单的话用起来基本没什么问题。
开源也是为了回馈,当我最开始搞CTP的时候可以有很多开源供我参考,例如景色CTP。我这些简单的代码
也希望能对更多的人有启发。

目前在逐渐从python转向c++,希望未来有更好的东西拿出来和大家分享。

联系作者

vx:muzexlxl

About

A pythonic CTP Trading Web Server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages