/ctp_net_core

当前版本是再海风CTP的基础上,提供可在linux下运行的.net core5版本,保证代码结构上与原版一直,方便升级。

Primary LanguageC#Apache License 2.0Apache-2.0

hf_ctp_py_proxy

上期技术期货交易api之python封装,实现接口调用。支持windows linux.

环境需求

  • VS2017
  • python 3.6+

.net core 下使用说明

  • 当前版本版本基于海风版本修改(fork 2018年11月),修改了对dll的引用方式,时期能在.net core下编译并运行。
  • 当前的版本已经能在linux运行(centos 7.3环境 .net core 2.13)。
  • 接口未全面测试,请小心使用。

用前须知

  • 未来的修改将主要集中在 netcore_ctp 目录下。
  • netcore_ctp 目录下的代码和海风的代码相比,会有很大的不一样,所以如果现有代码升级话,请使用 cs_ctp 目录下的文件。
  • 如果海风ctp未来版本升级的话,请阅读 如何让海风CTP的c#版本能跑在 Linux (.net core) 自己升级海风代码。

测试demo执行

  • 在centos7.3 下安装好 .net core
  • git clone 项目
  • 先编译测试demo
    • dotnet build cs_ctp/quote_save/
  • 复制 *.so 到执行目录
    • cp dll/*.so cs_ctp/quote_save/bin/Debug/netcoreapp2.1
  • 执行测试demo
    • cd cs_ctp/quote_save/
    • dotnet run
  • 测试demo会接入上期所的模拟环境,获得当前交易的tick,demo只有在有效的交易时间段才会有数据返回。

使用说明

  • 运行 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
          1. 代码生成
            pip uninstall py-ctp -y && python generate/run.py $VERSION
          2. 编译 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 ../..
          3. 测试
            sed -i "s#version=.*#version='$VERSION.`date '+%m%d'`',#g" setup.py && \
            python setup.py install && python test_trade.py
          4. 上传
            python setup.py sdist && twine upload -u haifengat dist/*$VERSION.`date '+%m%d'`*.gz && \
            python setup.py bdist_wheel && twine upload -u haifengat dist/*$VERSION.`date '+%m%d'`*.whl

更新

20201104

更新:接口更新到6.3.15;不再支持32位; 解决lnx下so路径问题;解决合约过多导致的bug;

20210115

更新:接口更新到6.5.1;大商所非交易合约数量庞大导致的问题。