
数据接口是量化策略的原材料仓库
做量化交易,策略代码写得再漂亮,如果喂进去的数据是脏的、慢的、缺斤少两的,回测曲线画得再好看也是纸上富贵。数据接口就是量化策略的原材料仓库,仓库里进的货不对,后面加工出来的成品一定出问题。很多人把精力全花在调参数、改模型上,却忽略了数据接口这个最底层的环节,结果实盘一跑就露馅。
行情数据到底分几种
市面上能买到的行情数据接口,按颗粒度粗分三大类。
快照数据,也叫Level-1行情,每三秒推送一次买卖五档报价和最新成交价。这种数据适合做日间波段和中低频策略,比如每天调仓一次的选股模型,或者持仓周期几天的期货趋势跟踪。快照数据的量级不大,一天全市场股票也就几个GB,个人电脑完全扛得住。

逐笔委托和逐笔成交,业内叫Tick数据,记录每一笔挂单的增减和每一笔成交的明细。期货的Tick数据还带买卖方向标记,能看出是主动买还是主动卖。做高频策略、盘口套利、订单流分析的,必须用Tick数据。这种数据一天全市场能到几十上百GB,对存储和计算的要求完全是另一个量级。
分钟线和日线,这是最基础的数据,几乎所有接口都提供。分钟线适合做日内回转和短周期择时,日线适合做中长线配置。这里有个容易踩的坑:不同数据商对分钟线的切分方式不一样,有的按自然分钟切,有的按成交笔数切,回测时用A家的分钟线训练模型,实盘用B家的数据跑,信号对不上是常事。
复权处理是股票数据的头号暗坑
股票数据接口最容易被忽视的就是复权。一只股票除权除息之后,股价会跳空,如果不做复权处理,回测系统会把它当成一次暴跌,触发止损信号,凭空多出一笔亏损。
复权分前复权和后复权。前复权是把历史价格按最新股本调整,当前价格不变,适合看盘和短线回测。后复权是把当前价格按历史股本还原,历史价格不变,适合长周期回测和计算真实收益率。很多免费接口默认给的是不复权数据,或者只给前复权,拿来做五年以上的回测,收益率会严重失真。
更隐蔽的问题是分红送转的现金处理。有的接口把现金分红直接加回股价,有的单独列一个分红字段。回测框架如果没对接好这个字段,股息收益就漏掉了,长期策略的年化收益能差出一两个点。做高股息策略的,这个细节直接决定策略成不成立。
期货数据要盯住换月规则
期货和股票不一样,合约有到期日,主力合约会换月。数据接口如果直接拼接不同合约的价格,会在换月点产生巨大的跳空缺口。做趋势策略的,这个假缺口会触发错误的开平仓信号。
正规的期货数据接口会提供两种处理方式:一种是复权主力连续,把换月价差平滑掉,适合做长周期回测;另一种是不复权主力连续,保留真实价差,适合做套利和价差策略。选接口的时候一定要看清楚它提供的是哪种,别拿复权连续合约去跑跨期套利,那等于用修正过的数据去验证一个依赖真实价差的策略,结果必然错位。
期货Tick数据还有一个特殊字段:买卖方向。交易所原始数据里这个字段有时是估算的,不是真实成交方向。不同数据商对这笔成交归属主动买还是主动卖的判断规则不同,做订单流策略的,换一家数据源,盘口失衡指标的数值就变了。
免费接口和付费接口的边界在哪
免费数据接口不是不能用,但要清楚它的天花板。免费接口通常有三个硬约束:调用频率限制、历史数据长度限制、并发连接数限制。做日线级别的简单策略,免费接口完全够用。做分钟级的多品种轮动,免费接口的调用频率根本撑不住,回测跑一半就限流报错。
付费接口的核心价值不在数据本身,而在数据清洗和字段一致性。一家靠谱的数据商,会把停牌日的价格补齐、把涨跌停板的成交标记清楚、把除权除息的事件对齐到正确日期。这些脏活累活自己干,花的时间成本远超接口订阅费。
选接口的时候重点看三件事:历史数据从哪年开始、Tick数据是否带真实买卖方向、复权因子是否单独提供。这三项过关,基本就不会出大问题。
接口延迟和滑点假设要匹配
回测里最容易骗自己的地方,是假设成交价就是信号触发那一刻的盘口价。实盘里从数据接口收到行情、策略算出信号、订单发到柜台、交易所撮合成交,这条链路走完,快则几十毫秒,慢则几百毫秒。这段时间里价格已经动了。
做日内策略的,如果数据接口本身延迟就有几百毫秒,再叠加网络和柜台延迟,滑点吃掉大部分利润是必然的。选数据接口的时候要问清楚推送延迟的中位数和尾部值,不能只看平均值。做高频的,还要看接口是推送模式还是轮询模式,轮询模式在剧烈波动时永远慢半拍。
一个务实的做法是:回测时给成交价加上一个保守的滑点假设,比如股票加一个最小变动价位的滑点,期货加半个到一个跳动的滑点。用这个偏悲观的结果去判断策略能不能活,比用完美成交价跑出来的漂亮曲线靠谱得多。实盘前一定用小资金跑一段时间的模拟盘,把接口延迟和成交滑点的真实分布摸清楚,再决定要不要加资金。
