Python如何优雅的对接SimNow
SimNow 是上期技术提供一个模拟交易平台,同时提供了一组 C++ CTPAPI,用于对接 SimNow 平台。 由于 C++ 本身的难度以及不便于进行一般性测试,得益于热心网友努力,出现了Python版本的 CTPAPI, 关于如何生成Python版CTPAPI的逻辑可以参考文章CTP Python API及Demo(利用Swig 封装)Windows版(traderapi)
Python语言易理解易编写易调试,可以方便的编写相关交易逻辑并进行测试。
原使用Python CTPAPI方式
根据上面文章,使用Python CTPAPI 对接 SimNow 分为以下几步(windows为例):
-
确定 CTPAPI 版本,如 6.6.7
-
下载动态库文件
首先, 确定操作系统 windows, 下载 CTPAPI动态库 thostmduserapi_se.dll thosttraderapi_se.dll 其次,下载对应Python扩展库,需要确定Python版本,如 Python3.9 _thostmduserapi.pyd _thosttraderapi.pyd 最后,下载对应的Python文件 thostmduserapi.py thosttraderapi.py
-
将下载的所有文件放在同一个文件夹下(测试文件prices.py)
4. 运行测试,成功连接
python prices.py 180.168.146.187:10131 au2305 rb2305 TA305 i2305 IF2302
这里使用的是 Windows系统,6.6.7 CTPAPI, Python-3.9。 可以看出,以上步骤逻辑很清晰明确,但配置起来还是有一些麻烦的。
对新手来讲的话,就有点不太友好了。 新手不想去分析这么多的系统、CTPAPI版本、Python版本等等以及各自之间的关系、不想手动下载文件、不想手动调整动态库文件、不想去分析各个库之间的关系, 新手想要开箱即用(老手也想吧🐶)。
那有没有更简洁更优雅的方式呢? 以前是没有的,现在有了,一键安装指定Python CTPAPI,不需要关心操作系统,不需要关心Python版本,不需要手动配置各种库,开箱即用。
新的使用 Python CTPAPI 方式: pip
同样安装 6.6.7 CTPAPI,只需要一步:
pip install openctp-ctp-667
使用方式也是非常简洁:
from openctp_ctp_667 import mdapi, tdapi
运行示例 mdapi.py 如下:
新的方式,绝对是一键到位、纵享丝滑了。
同样的,在Linux/Mac系统,以及Windows其他Python版本都是支持的。
更多信息见项目地址:github.com/Jedore/open…
参考
openctp: github.com/openctp/ope…
Python CTPAPI: github.com/nicai0609/P…
转载自:https://juejin.cn/post/7223343320298471485