openctp:CTP兼容接口,5 分钟搭一套 7×24 模拟交易环境
【免费下载链接】openctpopenctp提供CTP股票期权、中泰证券XTP、华鑫证券奇点TORA、东方证券OST、东方财富证券EMT、盈透证券TWS、易盛TAP、量投QDP等各通道的CTPAPI兼容接口,CTP程序可以无缝对接各股票柜台。openctp也提供了一套基于TTS交易系统的模拟环境,同样提供了CTPAPI兼容接口,不仅支持国内期货与期权全品种,也支持A股股票、基金、债券以及股票期权模拟交易,可以替代Simnow,为CTP量化交易开发者提供7x24可用的模拟环境。项目地址: https://gitcode.com/GitHub_Trending/op/openctp
openctp 提供 CTP 兼容接口。它还提供一套 7×24 模拟交易环境。支持国内期货、期权全品种模拟交易,也覆盖 A 股股票、基金、债券和股票期权。适合需要全天候测试环境的 CTP 量化开发者。
测试总要被打断?
写过 CTP 程序的人,都懂这种感受。
SimNow 模拟环境只在交易时段开放。
晚上想验证策略,连不上。
白天有人占用,行情和报单节奏你说了不算。
申请真实柜台(券商的交易系统)模拟账号,流程更长。
openctp 就是为此而生。
它给出一套全天候可用的 CTP 兼容模拟交易环境。
你的程序只需要改一个地址。
那个地址叫前置(负责转发请求的中间服务)。
先看它到底能干什么。
它到底能干什么:一张表看全
| 能力 | 一句话说明 |
|---|---|
| CTPAPI兼容模拟环境 | 期货、期权全品种,可直接替代 SimNow |
| A 股模拟交易 | 股票、基金、债券、股票期权都能模拟 |
| 各柜台 CTPAPI 兼容接口 | 不改一行代码,换 dll 接入 XTP、TORA、EMT |
| 三档环境 | 7×24、仿真、vip 仿真,按需选择 |
| 多语言接口 | Python、Java、Go、C、Rust、C# 都有 CTPAPI |
| 配套客户端 | 命令行与图形交易客户端,行情、结算单工具齐全 |
能力讲完了,直接跑。
三步跑通第一次行情
准备不复杂,Python 3.7 以上即可。
第 1 步:安装 CTPAPI 的 Python 接口。
pip install openctp-ctp==6.3.15.*运行后你应该看到:安装无报错,pip 列表里出现 openctp_ctp。
第 2 步:克隆仓库,拿到示例代码。
git clone https://gitcode.com/GitHub_Trending/op/openctp运行后你应该看到:本地生成 openctp 目录,含 ctpapi-python、demo 等子目录。
第 3 步:跑行情示例。
python ctpapi-python/demo/md_demo.py示例默认连 CTP 实盘行情。想连 openctp 环境,把代码里的地址改成 121.37.80.177 的 20004 端口即可,那是 7×24 环境行情前置。
运行后你应该看到:先打印 OnFrontConnected,再打印登录成功,随后合约价格、成交量开始刷新。
行情出来了,再往深走一步。
接入 7×24 环境,下一笔模拟单
假设你要在 7×24 环境验证一个新策略,连接流程和 CTP 完全一致。
区别只在于:券商代码、授权码、AppID 都可以留空。
from openctp_ctp import thosttraderapi as tdapi api = tdapi.CThostFtdcTraderApi.CreateFtdcTraderApi() api.RegisterFront("tcp://121.37.80.177:20002") api.Init()运行后你应该看到:前置连接建立的回调被打印出来。
接下来在回调里按顺序走这四步,一步都不能少。
# 1. ReqAuthenticate 客户端认证(7×24 环境可全留空) # 2. ReqUserLogin 登录 # 3. ReqSettlementInfoConfirm 确认结算单 # 4. ReqOrderInsert 报单运行后你应该看到:确认结算单成功后,ReqOrderInsert 返回委托参考号。
7×24 环境循环回放最近一个交易日的行情。
订单按回放行情撮合,流程可以完整跑通。
想验证实盘效果,就用仿真环境。它和实盘交易时段一致,覆盖全品种。
当然,路上还会有几个坑。
新手最常踩的坑
现象:连上前置没反应,回调一个都不来。原因:CTPAPI 版本和接口库不匹配,或者端口写错。解法:确认 dll/so 与接口版本一致(如 6.3.15),交易用 20002 端口,行情用 20004。
现象:接入 XTP 柜台正常,就是查不到合约。原因:XTP 没有原生合约查询,靠本地合约字典文件。解法:把 dict.csv 放到程序运行目录,和 dll 放一起。
现象:认证失败,或者报单直接报错。原因:跳过了客户端认证,直接登录报单。解法:看 pRspInfo 的 ErrorID 和 ErrorMsg,把步骤补齐。
现象:订阅成功,那个合约的行情却始终不刷新。原因:7×24 只回放最近交易日的合约,你订阅的不在其中。解法:先手动确认该合约有行情,再怀疑自己的程序。
踩坑清单过完,再看手头的工具。
周边工具与社区入口
ViTrader:命令行交易客户端,纯终端就能下单、查询。TickTrader / MiniTrader:图形界面交易客户端,点价下单、自动开平,支持各柜台。ctpcommand:交互式命令行工具,像 telnet 一样查合约、资金、持仓。prices:CTP 行情显示工具,替换 dll 即可连各柜台。getsettle:把 CTP 结算单解析成 json,方便程序处理。FTD-XML:用一份 xml 统一定义 CTPAPI 数据结构,批量生成代码。openctp 数据中心:RESTful 接口提供全市场合约基础数据,无需注册。QQ 群 564385877:技术交流入口,卡住可以直接提问。
现在可以打开终端,敲下第一条 pip install 命令了。
第一行行情刷出来的那一刻,你的 7×24 模拟交易环境就搭好了。
【免费下载链接】openctpopenctp提供CTP股票期权、中泰证券XTP、华鑫证券奇点TORA、东方证券OST、东方财富证券EMT、盈透证券TWS、易盛TAP、量投QDP等各通道的CTPAPI兼容接口,CTP程序可以无缝对接各股票柜台。openctp也提供了一套基于TTS交易系统的模拟环境,同样提供了CTPAPI兼容接口,不仅支持国内期货与期权全品种,也支持A股股票、基金、债券以及股票期权模拟交易,可以替代Simnow,为CTP量化交易开发者提供7x24可用的模拟环境。项目地址: https://gitcode.com/GitHub_Trending/op/openctp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考