# ctp_python **Repository Path**: optionsquant/ctp_python ## Basic Information - **Project Name**: ctp_python - **Description**: 使用pybind绑定的期货CTP接口,便于python拓展,仅供交流学习使用 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2026-04-01 - **Last Updated**: 2026-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.11+-green.svg)](https://www.python.org/) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux-lightgrey.svg)](#) 高性能 CTP 期货量化交易引擎,基于 Python + pybind11 实现。 ## 项目说明 - **本项目是期货量化交易框架**:基于 CTP(中国期货市场统一交易平台)API 开发的量化交易系统 - **仅用于学习研究目的**:本项目仅供学习量化交易技术和 CTP API 使用 - **使用 SimNow 仿真环境进行测试**:所有测试均在 SimNow 仿真环境中进行,不涉及真实交易 ## 功能特性 - 🚀 **高性能**: C++ 核心层 + Python 策略层,兼顾执行效率和开发效率 - 📊 **完整行情**: 支持五档行情、K线合成、Tick 数据处理 - 💹 **交易支持**: 完整的交易API封装,支持穿透式认证登录/直接登录 - 🔐 **穿透式监管**: 支持 CTP 看穿式监管(AppID/AuthCode 认证) - 🔄 **异步架构**: 基于 asyncio 的异步事件驱动 - 🛡️ **风控模块**: 内置风险检查机制 - 📈 **策略框架**: 完整的策略开发框架 - 🔒 **线程安全**: 所有核心组件经过线程安全加固 ## 项目结构 ``` XM_CTP/ ├── src/ │ └── XM_CTP/ │ ├── core/ # Python 核心模块 │ │ ├── ctp_client.py # CTP 客户端 │ │ ├── engine.py # 交易引擎 │ │ └── ... │ ├── trade_session/ # 交易会话(支持穿透式认证) │ ├── ctp_bridge/ # CTP 桥接器(K线合成、Tick处理) │ ├── *.cpp # C++ 绑定代码 │ └── *.h # C++ 头文件 ├── examples/ # 示例代码 │ ├── test_trading_only.py │ └── test_market_data_only.py ├── docs/ # 文档 └── config1/ # 配置文件 ``` ## 穿透式监管(看穿式监管) 本项目已完整实现 CTP 穿透式监管功能: - **AppID/AuthCode 认证**: 支持期货公司分配的 AppID 和 AuthCode 认证 - **终端信息采集**: 自动采集 MAC 地址、硬盘序列号、IP 地址 - **系统信息上报**: 支持 RegisterUserSystemInfo / SubmitUserSystemInfo ### 使用穿透式认证 ```python from XM_CTP import TradeSessionDirect, LoginState session = TradeSessionDirect() session.set_config( broker="9999", user="your_user_id", pass="your_password", app_id="your_app_id", # 期货公司分配的 AppID auth_code="your_auth_code" # 期货公司分配的 AuthCode ) session.connect("tcp://180.168.146.187:10101") ``` ## 快速开始 ### 环境要求 - Python 3.11+ (强烈建议使用3.11) - Windows 10/11 或 Linux - CMake 3.16+ - Visual Studio 2022 (Windows) 或 GCC (Linux) ### 安装 1. 克隆项目 ```bash git clone https://gitee.com/your-repo/xm_ctp.git cd xm_ctp ``` 2. 编译 C++ 扩展 ``` conda activate py311(示例激活环境) cd C:\path\to\XM_CTP # 删除旧目录,创建新目录,配置并编译 rmdir /s /q build_release 2>nul mkdir build_release cmake -S src -B build_release -DCMAKE_BUILD_TYPE=Release cmake --build build_release --config Release ``` 3. 运行示例 ```bash cd examples python test_trading_only.py ``` ## 使用示例 ### 测试 SimNow 交易(穿透式认证) ```python python test_trading_only.py ``` ### 测试行情连接 ```python python test_market_data_only.py ``` ## SimNow 环境 | 环境 | 行情前置 | 交易前置 | |------|---------|---------| | 第一套 | 182.254.243.31:30011 | 182.254.243.31:30001 | | 第二套(7x24) | 182.254.243.31:40011 | 182.254.243.31:40001 | ## 文档 - [构建指南](docs/BUILD_GUIDE.md) - [测试计划](docs/TEST_PLAN.md) - [项目架构](docs/项目架构文档.md) - [CTP穿透式监管实现指南](CTP_PENETRATION_GUIDE.md) ## 安全修复记录 本项目已修复以下安全问题: | 修复项 | 文件 | 说明 | |-------|------|------| | 析构函数命名错误 | `trade_api_bind.cpp` | 修复 TradeApi 析构函数 | | K线合成线程安全 | `kline_generator.h` | 添加 mutex 保护 | | 桥接器线程安全 | `ctp_bridge_bind.cpp` | 修复多线程访问问题 | | 回调队列锁优化 | `callback_queue.h` | 避免持锁调用 Python | | GIL API 统一 | `session_direct_bind.cpp` | 统一 GIL 管理风格 | ## 依赖 - CTP API v6.7.11 (已包含) - pybind11 - Python 3.11+ ## 许可证 MIT License - 详见 [LICENSE](LICENSE) 文件 ## 注意事项 1. 本项目仅供学习研究使用,请勿用于生产环境 2. 交易前请充分测试 3. 使用 SimNow 仿真环境进行测试 4. 穿透式认证需要向期货公司申请 AppID 和 AuthCode