Skip to main content

CTP (China Futures Market) Python API Wrapper with multi-implementation support

Project description

ctpx

本项目使用 SWIG 将 CTP C++ 接口封装为 Python 接口,支持官方 CTP 库或三方兼容库(如融航、杰宜斯等)。

构建

依赖

若从源码构建,需要安装以下工具:

  • Python >= 3.12
  • SWIG
  • Boost
  • CMake

macOS

brew install swig boost cmake

Linux

sudo apt install swig libboost-all-dev cmake

编译及打包

项目使用 scikit-build-core 作为构建后端,构建时会自动调用 CMake 编译 SWIG 扩展并打包成 wheel。

./build.sh
或者
uv build

Linux manylinux 发布版

发布到 PyPI 的 Linux wheel 需要在 manylinux 容器中构建并使用 auditwheel repair。本项目通过 cibuildwheel 在 GitHub Actions 中完成这一流程,详见 .github/workflows/build-release.yml

使用

  • 安装 wheel
pip install dist/*.whl
#或者
pip install ctpx
  • 官方 CTP 实现
from ctpx.ctp import mdapi, tdapi

trader_api = tdapi.CThostFtdcTraderApi.CreateFtdcTraderApi()
md_api = mdapi.CThostFtdcMdApi.CreateFtdcMdApi()
  • 融航实现
from ctpx.rohon import mdapi, tdapi

trader_api = tdapi.CThostFtdcTraderApi.CreateFtdcTraderApi()
md_api = mdapi.CThostFtdcMdApi.CreateFtdcMdApi()

注意事项

  1. 同一进程只能使用一种实现:不可同时导入 ctpx.ctpctpx.rohon
  2. Windows DLL 搜索:Python 3.8+ 使用 os.add_dll_directory,旧版本需要设置 PATH
  3. Linux 预加载:使用 ctypes.CDLL(..., RTLD_GLOBAL) 确保符号全局可见。

参考

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ctpx-6.7.2.3-cp312-cp312-manylinux_2_34_x86_64.whl (31.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

ctpx-6.7.2.3-cp312-cp312-macosx_11_0_arm64.whl (9.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file ctpx-6.7.2.3-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ctpx-6.7.2.3-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9e934f677ebe49b8d41c97ff37aac2083908565d59f835085dcc7ede863a09b3
MD5 b6ecd272bb1409abbcee19a9fa34250c
BLAKE2b-256 1ef84842c9ae70b02d6f242ffd6e82c2cf4f869a6cf9c430f41ea9f6c0701aee

See more details on using hashes here.

Provenance

The following attestation bundles were made for ctpx-6.7.2.3-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: build-release.yml on csuduan/pyctp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ctpx-6.7.2.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ctpx-6.7.2.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6856983d4d1cc215f5779f6829fcf4363ce96aa9249359fce5d717cf483a7a90
MD5 61f57a113c8c8496e8147e2e5137721f
BLAKE2b-256 eaa272c9da590194b2de753441fe4e61f2fc1b5636b770acaa9093f0c6ec0ed1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ctpx-6.7.2.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build-release.yml on csuduan/pyctp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page