量化交易接口的数据质量差会怎样拖累你的策略收益

企业微信

数据质量差,策略再好也是白搭

很多人刚开始做量化,脑子里全是因子、模型、参数优化。代码敲得飞起,回测曲线漂亮得像艺术品。一上实盘,亏得亲妈都不认识。问题出在哪?十有八九,出在数据上。

量化交易接口给什么数据,你的策略就只能吃什么料。料不新鲜,做出来的菜能好吃吗?

低频垃圾数据是怎么坑你的

大部分免费接口提供的是日线数据。开盘价、最高价、最低价、收盘价、成交量,五个数。看起来够用了。你拿这个数据去回测一个均线策略,发现年化收益百分之三十,最大回撤只有百分之八。兴奋得睡不着觉。

实盘一跑,第一周就亏了五个点。为什么?因为免费日线接口的收盘价经常是集合竞价的最后一笔,或者干脆是交易所的官方结算价。这个价格你根本成交不了。你的策略假设自己能在收盘价买入,实盘里那个时间点你挂单都挂不进去。

量化交易接口的数据质量差会怎样拖累你的策略收益

更隐蔽的坑是复权处理。很多接口的复权数据只做了前复权,遇到大比例分红送股,历史价格直接跳变。你的策略回测时看到一根巨大的阴线,以为是暴跌信号,赶紧止损。实际上那天公司只是除权了。这种假信号吃进去,策略参数全被带偏。

高频数据缺失让套利变翻车

做期货高频或者跨期套利的朋友,对数据质量更敏感。两个合约的价差策略,依赖的是同一时间戳的tick数据。接口A给的螺纹钢主力合约tick,成交时间戳精确到毫秒。接口B给的次主力合约tick,时间戳是交易所快照的五百毫秒一次。你把两个拼在一起算价差,等于拿北京时间对纽约时间,套利信号全是假的。

还有成交量字段。有些接口的tick数据只给最新价和买卖一档报价,不给真实成交量。你想做量价配合的策略,看到价格突破挂单进去,结果发现那突破是有人用冰山指令对倒出来的,真实成交为零。这种数据骗线,程序交易里一踩一个准。

数据多样性决定策略能活多久

只有一个价格序列,你能做的策略无非是动量、反转、均线。市场风格一切换,策略就失效。数据多样性不够,策略天生就是瘸腿的。

光有K线做不出好策略

期货交易离不开基差、库存、持仓结构。你做螺纹钢的策略,接口只给K线,不给仓单日报和主力持仓龙虎榜。黑色系一搞环保限产,库存数据暴降,你完全不知道,策略还在那傻乎乎地做空。

股票量化更明显。财务数据接口如果只给净利润和营收,不给应收账款周转率和经营现金流,你根本分不清这家公司是真赚钱还是纸面富贵。很多暴雷的白马股,暴雷前一个季度的现金流数据已经很难看了。接口不提供这个字段,你的多因子模型就缺了最关键的一块拼图。

另类数据的价值不在多而在对

现在市面上卖另类数据的供应商很多,什么卫星图像、招聘广告、APP下载量。别贪多,先想清楚你的策略逻辑需要什么数据来验证。做消费股策略,接口能提供重点商场的客流数据,比买一堆莫名其妙的舆情数据有用得多。

数据多样性不是让你把能买的数据全塞进模型。是让你在验证一个投资逻辑时,有不同维度的数据相互印证。你觉得螺纹钢要涨,因为库存低。接口再给你一个高炉开工率数据,发现开工率也在降,供应端确实在收缩,两个数据方向一致,你的持仓才敢上仓位。

怎么在接口数据上做体检

拿到一个量化接口,别急着跑策略。先做三件事。

数据完整性交叉验证

同一家交易所的同一只股票,用两个不同来源的接口各拉一遍日线数据。对比收盘价和成交量。如果差异超过千分之一,说明至少有一个接口的数据清洗有问题。大宗交易或者盘后固定价格交易的合并方式不同,会导致收盘价对不上。找出差异原因再决定用哪个。

期货数据要看夜盘衔接。接口给的日线数据,夜盘算在前一天还是后一天,直接影响你的隔夜持仓判断。搞错了,你的策略会把周五夜盘的涨幅算到周一,周一开盘的跳空直接让你的止盈单失效。

时间戳对齐测试

做日内策略或者高频策略,tick数据的时间戳对齐是命门。写个脚本,把你策略用到的所有数据源按毫秒级排序,看同一时刻的报价是否一致。股票Level2数据,交易所快照间隔三秒。有些接口说是逐笔,实际是快照合成。你策略计算盘口失衡时用的买卖量,如果混入了非真实挂单的虚拟队列,信号衰减会非常严重。

期货tick还得看交易所撮合规则。郑商所的tick和上期所的tick,快照频率和字段定义都不一样。接口不做标准化处理,你的程序交易代码里就得写一堆if-else来适配不同品种,维护成本高不说,还容易出错。

回测与实盘的成本模拟

数据质量好不好,最终要用钱来检验。拿同一套策略逻辑,用A接口和B接口的数据分别回测。A接口回测年化百分之二十,B接口只有百分之十二。别急着高兴,先去看看两个数据集的差异在哪。往往是B接口的数据包含了更多的成交滑点和手续费结构。

用A接口回测出来的高收益,实盘跑三个月,滑点吃掉八个点。相当于你回测里假设自己能按收盘价成交,实际上开盘价和收盘价差了一个点,一天交易两次就是两个点,一年二百多个交易日,光滑点就吃掉一倍的本金。数据接口不告诉你历史盘口的深度和价差,回测里就得自己把滑点参数设狠一点。

数据清洗的笨办法最管用

别迷信供应商说的零清洗。拿到数据先做异常值检测。价格连续三个tick不变,但成交量在飙,大概率是接口在丢包。日线数据里最高价小于开盘价,这种低级错误都出现过。

期货主力合约切换时的价格跳空,必须做后复权处理。接口给的主力连续数据如果是简单拼接,换月那天价格直接断层,你的跨期套利策略回测时看到价差突然拉大,进场就被套。写个脚本把每个品种的换月规则搞清楚,手动调整价格序列,比用接口默认的拼接方式靠谱得多。

股票分红除权数据,别依赖接口自动前复权。自己拿除权除息公告算一遍,拿调整后的价格序列和接口给出的对比。对不上就说明接口的复权因子有问题。这个基础工作做扎实了,后面调因子参数才有意义。

量化交易的尽头是细节。接口给的数据是原材料,策略是菜谱,实盘是厨房。原材料不新鲜,菜谱写得再花哨,端出来的菜也没人敢吃。花在数据清洗和验证上的时间,最终都会体现在实盘账户的回撤控制上。

转载请注明出处:https://www.lianghuajiaoyi.top/wenzhang/lianghua-jiaoyi-jiekou-shuju-zhiliang-1207.html