
券商股票接口api到底能帮你做什么
很多散户一听到接口api就觉得是机构专属,其实现在大部分券商都开放了接口,只是藏得比较深。你开户之后,客户经理不会主动提,因为佣金低、事又多。但这个东西的本质就是一条通道,让你用程序代替手指去下单、查持仓、拉行情。
股票接口api通常分两类,一类是行情接口,一类是交易接口。行情接口很多免费,延迟从几百毫秒到几秒不等,做日线级别策略够用。交易接口就要签协议、开权限,部分券商要求账户资产达到一定门槛,比如五十万或者一百万。你要是想跑全自动,还得通过券商的合规审查,确认策略不涉及异常交易。
券商股票接口api的底层一般是券商的柜台系统,常见的有恒生、金证、华锐等。不同柜台对接口的支撑能力差别很大,老柜台可能只支持轮询,新柜台支持推送。推送和轮询的区别,推送是柜台主动告诉你行情变了,轮询是你自己不停去问。高频策略必须用推送,不然延迟吃掉了利润。
期货ctp接口和股票接口的区别在哪里
做期货的人更熟悉ctp,上期技术的综合交易平台,几乎成了期货程序化的标配。ctp接口是免费的,文档全,社区活跃,散户也能接。股票接口api没有统一的ctp,各家券商自己封装,有的用restful,有的用websocket,有的干脆给你一个dll让你调。

期货ctp接口的报单速度可以达到毫秒级,股票接口的报单速度受限于券商的柜台和交易所的撮合机制。股票是t+1,当天买的不能卖,程序化策略的设计逻辑完全不同。期货是t+0,可以日内反复开平,策略频率可以做得更高。
费用上,股票接口api通常不额外收费,但券商会要求你交易量达到一定标准,否则可能收回权限。ctp接口本身免费,但期货公司会对程序化交易收取一定的通道费或者提高保证金比例。你做高频期货,手续费返还是关键,股票没有这个说法。
散户用股票接口api做量化最容易踩的坑
第一个坑是延迟。很多人用免费的行情接口回测,收益曲线很漂亮,实盘一跑就亏。免费行情延迟两三秒,你看到的价格和真实盘口差了好几个档位。股票接口api的行情分level1和level2,level1只有快照,level2有逐笔委托。做短线策略必须上level2,费用一年几千到几万不等。
第二个坑是风控。券商对接口下单有流量限制,比如每秒最多几笔,超过就触发警报。你策略里写个循环不停报单,很快就会被限制权限。股票接口api一般会提供撤单次数限制,超过次数当天不能再交易。程序里必须做撤单计数和冷却逻辑。
第三个坑是资金门槛。部分券商的股票接口api要求账户资产五十万以上,而且要求交易经验满两年。你开户之前要问清楚,别跑到营业部签了一堆文件才发现不达标。期货ctp没有这个门槛,但期货本身杠杆高,散户用程序化做期货爆仓的速度比手动快得多。
用python接券商股票接口api的代码框架
大多数券商提供的python接口是封装好的sdk,你装完包之后用账号密码或者token登录。下面是一个伪代码框架,演示如何拉行情、算信号、下单。注意不同券商的函数名不一样,你需要对照他们的开发文档改。
from broker_api import Client
client = Client(account='你的账号', password='你的密码')
client.connect()
# 订阅行情
client.subscribe(['600000', '000001'])
# 拉取持仓
positions = client.get_positions()
print(positions)
# 简单策略:价格跌破均线就卖
import numpy as np
prices = []
while True:
tick = client.get_tick('600000')
prices.append(tick.last_price)
if len(prices) > 20:
ma20 = np.mean(prices[-20:])
if tick.last_price < ma20 and '600000' in positions:
client.sell('600000', price=tick.last_price, volume=100)
client.sleep(1)
这段代码只是示意,实盘要考虑异常处理、断线重连、订单状态回报。股票接口api的订单回报是异步的,你下了单不代表成交,要监听成交回报。期货ctp的回报也是异步的,还有部分成交的情况。程序里必须维护一个订单状态机,否则容易重复下单。
怎么选适合自己的接口
你如果是做日线级别调仓,股票接口api用level1行情加手动确认下单就够了,没必要追求全自动。全自动的维护成本很高,网络抖动、券商系统升级、交易所规则变化,都会让你的程序出问题。
你如果是做日内高频,股票t+1限制了你的操作空间,不如转战期货ctp。期货ctp接口成熟,社区里现成的代码多,散户租个云服务器就能跑。期货品种少,流动性集中在螺纹钢、铁矿石、豆粕、pta这几个,策略容易聚焦。
你如果是做多品种轮动,股票接口api需要同时订阅几十只股票的行情,对带宽和本地算力有要求。建议先用模拟盘跑一个月,看看接口的稳定性和延迟分布。券商提供的模拟环境通常和实盘有差异,最好用小资金实盘测试,亏得起再放大。
还有一个隐性成本是数据。股票接口api只提供实时行情,历史数据要自己存。期货ctp也一样,ctp本身不存历史k线。你得自己搭一个数据库,每天收盘后把行情落库。这个工作量不小,但做量化绕不开。
合规红线不能碰
股票接口api的使用协议里明确写了,不得用于异常交易、不得频繁报撤单影响市场秩序、不得利用接口进行抢帽子等操纵行为。交易所对程序化交易有监控,你的报单模式如果和正常散户差异太大,会被发警示函。
期货ctp同样有自成交防范、频繁报撤单限制。程序里要加一个节流阀,控制报单频率。散户做量化,活着比赚钱重要。别一上来就写个高频策略,先写个低频的,把链路跑通,把风控加上,再慢慢迭代。
接口只是工具,策略的逻辑才是核心。你连股票接口api的文档都懒得读,只想复制别人的代码,亏钱是迟早的事。把接口当成你的手和眼,把风控当成你的刹车,把资金管理当成你的油箱,这三样缺一个都上不了路。