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.5-cp312-cp312-win_amd64.whl (23.1 MB view details)

Uploaded CPython 3.12Windows x86-64

ctpx-6.7.2.5-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.5-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.5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ctpx-6.7.2.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 23.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ctpx-6.7.2.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 50e4d8b571b48099574bc2980defaddcb60693857d5c8b30ef300c865f869fe2
MD5 ffa275c0f0781a0536188ee563af192c
BLAKE2b-256 007c027d467ef88367b8eedb93ac492f43d008de2dcdad32ab5092af077119a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for ctpx-6.7.2.5-cp312-cp312-win_amd64.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.5-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ctpx-6.7.2.5-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5f48751b68e8544f4416e42514582adcd51e2d9aefd395aa1914ce6c7122841e
MD5 fac6ca1e32d17e55b2a393f3c0c63917
BLAKE2b-256 4b5801618b7317e555f8ba724075f6e4dbaf82f42869bb37956a6eac3651891a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ctpx-6.7.2.5-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.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ctpx-6.7.2.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8f8285f714bb333ab59aa5003b9f1627b669e65689a8dbf1fc17c5903c2fbad4
MD5 679b1ba13a94ed001c0a93f784f5ffce
BLAKE2b-256 7a1cd11587654cd3a518b83035aaeeafc82ed093dc8f16bff78634cf46e366b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for ctpx-6.7.2.5-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