企业微信

交易所API到底是什么东西

把交易所API想象成一条电话线。你坐在家里,拨通这个号码,就能直接跟交易所的电脑系统对话。不用打开交易软件点按钮,而是用自己的程序发指令。比如你写一段代码,说当螺纹钢期货价格跌到3500就买一手,API会帮你把这个指令传给交易所,成交后把结果带回来。

普通散户平时用的文华财经、同花顺那些界面,背后也是靠API跟交易所通信的。区别在于,你手动点鼠标,程序自动发指令。

国内期货和股票用的API不一样

做期货量化,国内主流是CTP接口。上期技术开发的,几乎所有的期货公司都支持。CTP分两个版本,生产版和评测版。生产版要付费,一般通过期货公司开权限。评测版免费,只能做模拟盘,不能实盘交易。

期货量化交易怎么接入交易所API?

股票这边,个人散户拿不到交易所的直接API。需要走券商提供的接口。大券商有自己封装的API,小券商可能只支持第三方平台如恒生电子的UFT、迅投的QMT。现在很多券商推Ptrade和QMT,门槛通常五十万资金起步。

外盘期货比如芝加哥商品交易所、伦敦金属交易所,用的API五花八门。盈透证券的TWS API比较常见,能交易全球期货和股票。

接入API前必须想清楚的几件事

第一,你的程序会不会失控。API发单没有人工确认,代码写错一个数字,可能瞬间亏光。必须有止损逻辑和最大持仓限制,写死在代码里。

第二,交易所和期货公司都有频率限制。CTP默认每秒最多报单50笔,查询间隔至少1秒。超了会被拒绝甚至封IP。高频策略需要申请更高频率,但资金门槛极高。

第三,网络必须稳定。程序化交易对延迟敏感,尤其是做日内。普通家庭宽带抖动几十毫秒,可能错过最佳价位。专业机构把服务器托管在交易所机房旁边,叫机房托管。散户至少用云服务器,选离期货公司近的节点。

第四,资金安全。API密钥和密码不能明文写在代码里。万一泄露,别人可以替你下单。用环境变量或者加密文件存储。

从模拟盘到实盘的步骤

第一步,开期货账户,找客户经理申请CTP权限。通常要求有编程能力证明,或者直接说要做量化。评测版账号免费,先跑通登录、行情订阅、报单、撤单、查询持仓整个流程。

第二步,用模拟盘测试策略。至少跑一个月,看滑点、成交率、手续费影响。很多策略在回测里赚钱,实盘模拟就亏,因为忽略了网络延迟和排队。

第三步,小资金实盘。先入金一两万,跑最小手数。比如螺纹钢一手,玉米一手。观察实际成交和模拟盘的差异。

第四步,逐步放大。每次加资金前,检查最大回撤是否在承受范围。不要因为短期赚钱就加杠杆。

股票API的特殊之处

股票没有期货那样的夜盘和杠杆,但T+1规则对程序化有影响。当天买的不能当天卖,日内策略基本做不了。股票API更适合做中低频的调仓,比如每周平衡一次。

券商API的报单接口比CTP简单,但数据质量参差不齐。有些券商只提供五档行情,不提供逐笔成交。做算法交易需要逐笔数据,得额外付费。

股票API还有一个坑,不同券商的字段命名和错误码不统一。换券商就要重写代码。选大券商比如华泰、国泰君安,接口文档相对规范。

写代码时容易忽略的细节

合约代码要写对。期货用品种加月份,比如rb2410代表螺纹钢2024年10月合约。大小写敏感,rb和RB不同。

报单价格要用交易所规定的最小变动价位。螺纹钢是1元,原油是0.1元。报价不是整数倍会被拒绝。

CTP的报单引用RequestID必须唯一。重复了会乱序。每次报单前用时间戳加随机数生成。

行情订阅有数量限制。CTP默认最多订阅500个合约。超了要分批,或者申请扩容。

查询持仓和资金不能太频繁。CTP查询接口有流控,一秒一次比较安全。查询多了会被断线。

散户到底要不要碰API

如果你每天盯盘四小时,手动交易能稳定盈利,没必要折腾API。程序化交易的优势在于纪律性和速度。手动交易容易受情绪影响,该止损时犹豫。API能严格执行。

速度方面,日内高频策略人工根本做不到。比如套利机会只存在几十毫秒,只有程序能抓住。

但API不是印钞机。策略本身不赚钱,用API只会亏得更快。先用手动交易验证策略逻辑,能稳定盈利三个月以上,再考虑程序化。

技术门槛也要评估。不会Python或者C++,学API要花几个月。这段时间没有收入,还要交学费。

选择API服务商的坑

有些第三方平台号称一键接入所有交易所。实际上是把你的资金放在他们账户里,跑路风险极高。正规做法是资金在你自己期货账户,API只是通道。

免费API往往有陷阱。要么延迟大,要么限制多,要么偷偷收集你的策略数据。付费API看口碑,问清楚是否直连交易所,还是中转。

测试环境不要用真实资金。很多平台提供模拟环境,但行情是假的。要找支持实时行情模拟的,比如CTP评测版就是实时行情。

实际部署中的网络问题

家庭宽带晚上高峰期丢包严重。程序发单后收不到回报,以为没成交,重复发单导致超仓。解决方法是加心跳检测和订单状态轮询。

云服务器选地域。做上期所品种,选上海节点。做郑商所,选郑州节点。跨地域延迟增加十毫秒以上,对高频致命。

备用网络。主用有线,备用4G路由器。API断线后自动重连,重连后先查询持仓再继续。不要盲目补单。

给新手的三个务实建议

先用模拟盘跑三个月。不要觉得浪费时间。实盘亏的钱比三个月时间值钱。

策略逻辑要简单。均线交叉、突破、回归,这些经典策略先跑通。不要一上来就搞机器学习。

记录每笔交易。API返回的成交明细存数据库。每周复盘,看滑点多少,手续费占比多少,最大回撤多少。数据不会骗人。

交易所API是工具,不是圣杯。用得好,它帮你执行纪律。用不好,它帮你快速亏钱。先想清楚自己有没有能力驾驭程序化交易,再决定是否接入。