
股票数据接口选不好 你的量化策略从一开始就输了
做股票量化交易,策略逻辑写得再漂亮,数据接口拉胯,回测收益全是幻觉。很多人花了三个月调参,实盘一跑就亏,根子不在模型,在数据。选接口这件事,跟选券商开户一样,不是看谁名气大,是看你的策略吃哪口饭。
先搞清楚你的策略到底需要什么频率的数据
日线级别的策略,比如双均线轮动、基本面因子选股,对数据频率要求不高。每天收盘后拉一次全市场日线复权数据,几秒钟的事。这种需求,免费接口完全扛得住。新浪财经、腾讯证券的公开接口,写个爬虫定时抓,一分钱不花。问题在于稳定性和字段完整度,免费接口说停就停,复权因子偶尔算错,你拿这种数据回测,等于用假钞练点钞。
分钟级策略,比如日内动量、开盘区间突破,需要1分钟或5分钟K线。免费源基本没戏,延迟大、丢包多。这时候要看商业接口,聚宽、米筐、优矿这些量化平台自带数据服务,按年付费,几千到几万不等。它们的优势是数据清洗过,停牌、除权、涨跌停标记都帮你处理好,省掉大量脏活。

Tick级和盘口数据,做高频、做套利、做订单流分析的,只有两条路。一条是买Level-2行情,通过券商或第三方数据商,每年成本五位数起步。另一条是走期货公司CTP接口,商品期货的Tick数据相对便宜,股指期货受限但也能拿到。股票Tick数据贵得离谱,散户别碰,机构都得掂量掂量。
实时行情延迟是隐形杀手
很多接口宣传“实时”,实际延迟三到五秒。日线策略无所谓,分钟策略勉强能用,Tick策略直接判死刑。判断延迟不能看广告词,要自己测。写个脚本,记录本地时间戳和接口返回数据里的时间戳,跑一天,看差值分布。延迟稳定在1秒以内算及格,超过3秒的,做日内就是给市场送钱。
期货CTP接口的延迟通常在毫秒级,因为走的是专线。股票这边,券商柜台接口比公开HTTP接口快一个数量级。你要是做股指期货和股票之间的套利,两边数据源延迟差超过500毫秒,价差早就被吃光了。
历史数据的坑比实时数据还多
回测用到的历史数据,三个地方最容易出问题。复权处理,前复权还是后复权,除权除息日怎么调整,不同接口商算法不一样。你用一个接口回测,换另一个接口实盘,信号对不上,哭都来不及。停牌和涨跌停标记,有些接口只给价格不给状态,你的策略会在停牌股上反复下单,回测曲线漂亮,实盘根本成交不了。幸存者偏差,退市股票的数据很多接口不提供,你的回测只覆盖活到今天的票,收益率虚高一大截。
选接口时,拿几只已知退市股和长期停牌股去测,看能不能拉到完整数据。拉不到的直接淘汰。
API调用成本和限流规则要算细账
免费接口通常限流,比如每分钟60次,每天5000次。全市场股票5000多只,拉一遍日线就超了。你得写分批调度,加缓存,折腾半天。商业接口按调用次数或按年收费,差别很大。
按量计费的,要估算策略每天消耗多少次调用。一个多因子选股策略,每天拉全市场财务数据加行情数据,轻松上万次。按年付费的量化平台,很多是包月不限量,但底层有QPS限制,并发请求太多照样被掐。
期货CTP接口本身免费,但需要期货公司开通权限,有的公司要求日均权益达标。股票这边,券商柜台接口通常只对机构或高净值客户开放。
数据质量和文档质量决定开发效率
接口文档写得像天书,字段命名混乱,错误码不统一,你光调试接口就能耗掉一半开发时间。好的接口商,文档里有可直接运行的示例代码,Python、C++、Java都有,字段含义清清楚楚,错误码有对照表。
数据质量方面,拿同一只股票同一天的分钟线,跟主流行情软件对照,看开盘价、最高价、最低价、收盘价、成交量能不能对上。对不上的,直接拉黑。
不同阶段选不同方案
个人散户做日线策略,先用免费接口跑通逻辑,确认策略有效再考虑升级。别一上来就买几万块的数据服务,策略没验证之前,那钱就是打水漂。
小团队做分钟级策略,选一家量化平台年付,省心省力。数据清洗、复权处理、回测框架都打包好了,你专注策略本身。
机构做Tick级和高频,自建数据管道,从交易所或一级数据商拿原始数据,自己清洗存储。成本高,但可控。
期货量化相对简单,CTP接口统一标准,数据质量各家期货公司差别不大,选个手续费低、通道稳定的就行。
选股票数据接口,核心就一句话:你的策略吃什么频率的数据,你就花什么级别的钱。别为用不上的Tick数据买单,也别拿免费日线数据去跑日内策略。数据是量化的地基,地基歪了,楼越高塌得越狠。