上期技术期货交易 api 之 python 封装,实现接口调用。支持 windows linux.
- VS2017
- python 3.6+
- 运行
pyton generate\\run.py
生成所有文件 - C++编译
- Windows
- 环境要求
vs2017
- 设置项目为 x64,否则会提示找不到 windows.h
- 打开 ctp_c\ctp.sln
- 编译 ctp_quote 和 ctp_trade 项目
- 编译后生成的 dll 放在
py_ctp/lib64
目录下
- 环境要求
- Linux
- 设置系统语言为:zh_CN.UTF-8
- 执行以下指令, -Wl,rpath=指定 so 路径(需要与 setup.py 中的 data_files 配合使用)
- export VERSION=v6.5.1
- 代码生成
pip3 uninstall py-ctp -y && python generate/run.py $VERSION
- 编译 so
cd py_ctp/lib64 && \ \cp ../../$VERSION/lnx/*.so . \ && g++ -shared -fPIC -Wl,-rpath . -o ./ctp_trade.so ../../ctp_c/trade.cpp thosttraderapi_se.so \ && g++ -shared -fPIC -Wl,-rpath . -o ./ctp_quote.so ../../ctp_c/quote.cpp thostmduserapi_se.so \ && cd ../..
- 测试
sed -i "s#version=.*#version='$VERSION.`date '+%Y%m%d'`',#g" setup.py && \ python setup.py install && python test_trade.py
- 上传
pip install wheel twine setuptool setuptools_rust python setup.py sdist && twine upload -u haifengat dist/*$VERSION.`date '+%Y%m%d'`*.gz && \ python setup.py bdist_wheel && twine upload -u haifengat dist/*$VERSION.`date '+%Y%m%d'`*.whl
- 代码生成
- export VERSION=v6.5.1
- Windows
更新:接口更新到 6.3.15;不再支持 32 位; 解决 lnx 下 so 路径问题;解决合约过多导致的 bug;
更新:接口更新到 6.5.1;大商所非交易合约数量庞大导致的问题。
更新: 重新编译封装的 C 接口, trade 登录不再需要 productInfo