
先搞懂实盘接口到底在做什么
用Python做交易,策略写完了只是第一步。把信号变成真实委托单,中间要过一道关口,就是交易接口。接口负责把你的买卖指令发给期货公司或者券商,再把成交回报拉回来。没有接口,策略再漂亮也只是纸上谈兵。
国内能直接对接个人交易者的实盘接口不多。期货市场相对开放,股票市场管得紧。两个市场的接口生态完全不一样,得分开看。
期货实盘接口 CTP是主力
期货程序化交易,CTP几乎是唯一选择。上期技术开发的这套系统,国内一百多家期货公司都在用。Python对接CTP有现成方案,vn.py、金仕达、quickfix都能走通。
CTP接口本身是C++写的,Python要通过封装层调用。vn.py把这一层做得很薄,装好环境就能连柜台。开户时直接问客户经理能不能开CTP权限,大部分期货公司默认给程序化交易者开放。

费用方面,CTP接口本身不额外收费。交易手续费和普通下单一样,交易所收多少就是多少。有些期货公司对高频交易会有限制,报单频率太高可能被柜台拒绝。
CTP的坑在于行情和交易是两套前置。行情前置负责推送tick数据,交易前置负责委托回报。两个地址要分开配置,写代码时不能混。断线重连逻辑必须自己写,CTP不会自动帮你恢复。
股票实盘接口 QMT和Ptrade是主流
股票程序化交易比期货麻烦。券商不会随便给个人开接口,通常有资金门槛。目前个人能接触到的主要是QMT和Ptrade。
QMT是迅投开发的,很多券商采购后给客户用。资金门槛看券商,低的五十万,高的一百万。Python写策略,QMT提供完整API,行情、交易、查询都能覆盖。策略跑在券商的服务器上,本地电脑关机也不影响。
Ptrade是恒生电子的产品,界面和操作逻辑跟QMT不一样。支持的券商少一些,资金门槛类似。两个系统都不便宜,券商通常只给活跃客户免费开通。
股票接口有个硬限制,不能做真正的高频。交易所对撤单率和报单频率有监控,程序化交易报备是必须的。策略换手率太高,容易被券商风控盯上。
第三方平台能不能用
掘金、聚宽、米筐这些平台提供模拟和实盘通道。掘金的仿真交易做得不错,实盘要对接券商柜台。聚宽早年有实盘,后来停了。米筐主要做研究,实盘通道依赖券商合作。
第三方平台的好处是省事,不用自己搭环境。代价是策略逻辑要跑在对方服务器上,保密性差一些。平台跑路或者停止服务,策略要迁移很麻烦。
有些平台宣传支持多品种实盘,期货股票都能做。实际用起来,期货走CTP,股票走券商通道,中间要切换不同接口。代码复杂度上去了,稳定性反而下降。
选接口要看哪几个硬指标
第一看资金门槛。期货CTP几乎没门槛,股票QMT和Ptrade普遍五十万起步。资金不够,再好用的接口也开不了。
第二看语言支持。有些接口只提供C++或者C#,Python封装是社区做的,更新不及时。优先选官方支持Python的,出问题有人管。
第三看柜台稳定性。CTP经历过几次升级,老版本接口还在用的话,断线频率会高。开户时问清楚柜台版本,太老的直接换公司。
第四看费用结构。接口本身不收费,但程序化交易可能被收额外流量费。有些券商对高频报单按笔收费,策略换手率高的话成本不低。
自己搭还是用现成框架
vn.py是期货程序化交易的首选框架。开源免费,社区活跃,CTP接口封装得很完整。装好Python环境,pip安装vnpy,配置好经纪商代码和账号就能跑。
股票没有vn.py这样的统一框架。QMT自带策略编写环境,用Python写策略,在券商客户端里运行。Ptrade类似。想脱离券商客户端自己搭,基本走不通。
自己从零写CTP接口不是不行,工作量很大。行情解码、委托回报、持仓查询、断线重连都要处理。vn.py把这些脏活累活都干了,直接用就好。
实盘之前必须做的事
模拟交易跑一遍。CTP有SimNow仿真环境,免费注册,行情和交易逻辑跟实盘一样。策略在仿真环境跑两周,确认没有逻辑漏洞再上实盘。
小资金试水。仿真环境没有滑点,实盘滑点可能吃掉大部分利润。先用一手单子跑,看看实际成交价和策略预期差多少。
风控模块不能省。程序化交易最容易出的事是死循环报单。策略里必须加最大持仓限制、单日最大亏损限制、报单频率限制。这些限制写在代码里,不依赖柜台风控。
日志要记全。每一笔委托、每一笔成交、每一次断线重连都要写日志。出问题的时候,日志是唯一能还原现场的东西。
接口只是工具 策略才是核心
Python实盘接口解决了执行问题,不解决赚钱问题。CTP再稳定,策略亏钱照样亏。QMT再方便,选股逻辑不对照样不赚。
花时间研究接口是必要的,花太多时间就本末倒置了。选一个稳定的接口,把执行环节跑通,精力放回策略研发上。接口会升级,柜台会更换,策略逻辑才是长期积累的东西。
