企业微信

量化交易API到底是个什么东西

很多人一听到API就觉得是程序员才碰的东西。说白了,量化交易API就是券商或期货公司给你开的一扇后门,让你的代码能直接连到交易服务器,自动查行情、自动下单、自动撤单。你不需要手动点鼠标,写好的策略跑起来,电脑替你盯着盘面。

股票和期货的API差别不小。股票API通常走券商柜台,期货API走CTP这类交易网关。股票有T+1限制,当天买的不能当天卖,期货是T+0,来回打脸随便你。股票API返回的行情快照一般是3秒一笔,期货API能拿到500毫秒甚至更快的切片。这些细节决定了你的策略能不能跑得动。

量化交易API到底怎么用?散户也能玩转股票期货自动下单吗

股票API和期货API的核心区别在哪里

股票API的下单指令里,价格类型少,基本就是限价和市价。期货API有排队价、对手价、最新价、超价,还有FAK和FOK两种成交方式。FAK是部分成交剩余撤销,FOK是全部成交否则撤销。你挂一个单子,用FAK可能成交一半,剩下自动撤掉。用FOK要么全成要么全废。

股票API的账户体系简单,一个资金账号对应沪深两市。期货API有上期所、大商所、郑商所、中金所,每个交易所的合约代码规则不一样。上期所螺纹钢是rb2510,大商所铁矿石是i2509,郑商所动力煤是ZC509。代码写错,报单直接被拒。

期货API还有保证金监控和强平逻辑。你的可用资金不够,开仓会被拒绝。持仓保证金不足,期货公司会给你发追保通知,不补钱就强平。股票API没有强平这回事,除非你融资融券

散户用API最容易踩的坑

第一个坑是限流。券商和期货公司的API都有每秒查询次数和每秒报单次数限制。股票API通常每秒允许20到50次查询,期货API的报单限制更严。你写个循环每秒发100个单子,直接被封IP。

第二个坑是鉴权。API需要你提供资金账号、密码、还有交易认证码。有些券商还要动态令牌。代码里明文写密码,被人拿到就完蛋。建议用环境变量或者加密文件存这些敏感信息。

第三个坑是行情延迟。股票API的行情是快照,不是逐笔。你看到的价格可能已经过去3秒。期货API的逐笔行情好一些,但普通散户拿到的也是切片行情。高频策略拼的是机房位置和网络延迟,散户在家里用家用宽带跑高频,等于送钱。

第四个坑是报单类型用错。股票市价单在集合竞价阶段可能不成交,期货市价单在涨跌停板附近可能滑点巨大。你用市价单去追一个已经涨停的股票,报单进去也是废单。

一个最简单的股票API下单代码演示

下面这段Python代码用ctp接口模拟期货报单,股票API逻辑类似,只是函数名和参数不同。注意这只是演示,实盘需要替换成券商提供的接口。


from ctp_api import TraderApi, SubscribeMarketData

class MyTrader(TraderApi):

    def on_rsp_order_insert(self, order_id, error_id, error_msg):

        if error_id == 0:

            print(f"报单成功,订单号{order_id}")

        else:

            print(f"报单失败:{error_msg}")

    def on_rtn_order(self, order):

        print(f"订单状态更新:{order.status}")

trader = MyTrader()

trader.connect("期货公司交易前置地址", "经纪商代码", "资金账号", "密码")

trader.subscribe_market_data(["rb2510", "i2509"])

trader.insert_order(

    symbol="rb2510",

    direction="buy",

    offset="open",

    price=3500,

    volume=1,

    order_type="limit"

)

这段代码连上期货公司前置机,订阅螺纹钢和铁矿石行情,然后挂一个限价买单。实际跑之前你得先登录交易接口,还得处理回报和错误。

量化API策略从模拟盘开始

不要一上来就拿真金白银跑。券商和期货公司都提供模拟环境,仿真撮合。你可以在模拟盘验证策略逻辑、报单流程、异常处理。模拟盘跑通了,再用小资金实盘。

实盘要加风控。单笔最大亏损、单日最大亏损、最大持仓手数、连续亏损几次就停止。这些风控逻辑写在代码里,比人靠谱。人看到亏损会犹豫,代码不会。

股票API和期货API的报单回报是异步的。你发了单子,不是马上成交,要等交易所回报。代码里得有状态机,记录每个订单是已报、部分成交、全部成交还是已撤。

期货API的保证金和强平怎么算

期货是保证金交易。你开一手螺纹钢,交易所收10%保证金,期货公司加收几个点。假设螺纹钢3500元一吨,一手10吨,合约价值35000元。交易所保证金3500元,期货公司收4000元。你账户里有10000元,开一手占用4000元,剩余6000元可用。

价格跌到3300元,你一手亏2000元。账户权益变成8000元,可用资金变成4000元。价格继续跌到3100元,亏4000元,账户权益6000元,已经低于持仓保证金。期货公司会通知你追加保证金或者自行平仓。你不处理,期货公司就强平。

股票API没有这个逻辑。你花35000元买一手股票,跌到31000元,亏损4000元,只要不卖,亏损就是浮亏。没人强平你。

股票API的T+1和期货API的T+0怎么影响策略

股票T+1,今天买的明天才能卖。你做日内回转,得先有底仓。早上冲高卖出底仓,下午回落买回来,赚差价。没有底仓,当天买的卖不掉。

期货T+0,开仓后马上可以平仓。你早上开多,中午平掉,下午再开空,晚上再平掉。一天可以来回很多次。手续费和滑点会吃掉利润。期货手续费有的品种按手收,有的按成交额比例收。螺纹钢一手手续费几块钱,铁矿石贵一些。

高频策略在期货上更常见,因为T+0和低手续费。股票API做高频受限于T+1和印花税。印花税千分之一,来回一次千分之二,高频跑一天手续费比利润还多。

怎么选适合自己的量化交易API

先看你交易什么品种。只做股票,找券商开API权限。券商API通常免费,但需要你满足一定资产门槛或者交易量。只做期货,找期货公司开CTP接口。CTP接口免费,但期货公司会收通道费。

再看你的编程能力。不会写代码,可以用现成的量化平台,这些平台封装了API,你拖拽模块就行。会写Python,直接用vnpy或者自己封装。

还要看API的稳定性。有些小券商的API经常断线,报单延迟大。大券商的API稳定,但限流严格。期货CTP接口相对成熟,各家期货公司都差不多。

模拟盘跑一个月,记录每天的下单成功率、平均滑点、异常次数。数据好看再上实盘。