核心解答
币圈量化越来越少只看OHLC。
很多策略会同时使用K线、成交量、Open Interest、资金费率、Mark Price、主动买卖和清算数据。
数据源变多以后,一个非常隐蔽的问题开始出现:这些字段虽然都有时间戳,但它们的时间含义并不一定相同。
15分钟K线的时间到底代表什么
有的数据源把K线时间标记为区间开始时间。
例如12:00这一根15分钟K线实际包含的是12:00到12:14:59之间的数据。
当你看到它完整的最高、最低、收盘和成交量时,这根K线实际上已经结束。
如果策略在12:00这个时间点就读取完整收盘值并下单,相当于提前知道未来15分钟发生了什么。
这是非常典型的前视偏差。
OI快照和K线不是同一种数据
Open Interest可能按固定周期采样,也可能来源于某个接口查询时点。
一个12:15的OI值究竟表示12:15瞬间的持仓量,还是12:00到12:15统计结果,需要看数据定义。
如果简单用pandas按最近时间向前填充,很可能把稍晚才公布的OI值填回更早K线上。
表格看起来非常整齐,策略实际上已经偷看未来。
资金费率更容易被错位
资金费率通常在特定结算时点发生,但研究数据还可能同时存在预测费率、当前费率和实际结算费率。
如果策略使用“最终实际结算值”决定结算之前的仓位,就已经使用了当时还不知道的信息。
所以字段名称里不能只写funding_rate,还要记录它到底是什么类型、对应哪个周期,以及什么时候真正变成可用信息。
成交数据的时间精度又不同
逐笔成交可能精确到毫秒甚至更细,而K线只有分钟级。
当策略把逐笔主动买卖聚合成5分钟指标时,需要明确窗口是左闭右开还是其他定义,并保证这5分钟统计值只能在窗口结束以后用于下一次决策。
否则一边用12:00到12:05全部成交统计,一边又假设自己12:00已经知道结果。
统一使用UTC仍然不够
统一时区可以消除本地时间和夏令时问题,但不能解决“事件什么时候可知”。
真正重要的是同时保存event_time和available_time。
event_time表示市场事件属于哪个时间,available_time表示你的系统最早什么时候能够拿到这个数据。
回测只能使用决策时刻之前已经available的数据。
不同交易所的数据不能默认完全同步
BTC在多个交易所有各自订单簿、指数和合约规则。
一个平台的OI、另一个平台的成交价、第三个平台的资金费率直接拼接,可能产生时间和市场结构上的不一致。
如果确实需要跨交易所因子,应明确每个字段来源,并考虑网络延迟、接口刷新频率和交易所自身发布时间。
缺失值不能无脑forward fill
OI接口短暂失败、某个时间段没有返回数据,不代表真实OI一定保持不变。
无限向前填充会把一个陈旧快照伪装成连续有效数据。
更好的做法是设置最大可接受陈旧时间,超过阈值以后把因子标记为缺失,并规定策略在关键数据缺失时是否禁止交易。
建立一张Data Contract表
每个字段至少记录来源、单位、时区、时间戳含义、采样周期、发布时间、缺失规则和历史是否会修订。
例如同样叫volume,也要区分币本位数量、USDT名义金额和成交笔数。
只有先把数据语义写清楚,回测和实盘才可能使用同一套定义。
回测和实盘必须复用同一套对齐逻辑
研究阶段如果用一套离线脚本对齐数据,实盘又自己写一套实时逻辑,很容易出现“回测信号和实时信号始终差一点”。
更稳妥的方法是把时间归一化、窗口聚合、陈旧数据判断和因子生成做成共享模块。
然后用历史数据重放实时处理流程,验证同一时刻能够得到相同因子。
资料依据
主流加密货币衍生品交易平台的官方API通常分别定义Kline、Open Interest、Funding Rate、Mark Price等数据接口,并明确各自时间字段和采样方式。
研究时应以实际使用交易所的最新API定义和历史数据说明为准。
风险提示
历史数据和回测结果不代表未来收益。本文讨论的是量化数据工程方法,不构成投资建议。
结论
多因子策略最危险的前视偏差,往往不是代码里明显写了shift(-1),而是几张不同时间语义的数据表被“漂亮地”合并在一起。先定义数据什么时候发生、什么时候可知,再谈策略有没有预测能力。
继续了解这个主题
一个BTC策略回测看起来赚钱,加入手续费、滑点、资金费率和真实成交以后,结果可能完全不同。
阅读全文 →加密货币量化合约回测为什么不能只看K线?Mark Price会直接改变强平结果永续合约的强平并不是简单看普通K线最后成交价。Mark Price、维持保证金、杠杆和极端行情都会影响真实强平路径。
阅读全文 →加密货币量化Walk-Forward + Monte Carlo:一个币圈策略上线前到底要过几关?单次历史回测只是一条过去路径。准备上线的策略还应经过Walk-Forward、严格样本外、成本压力和Monte Carlo等验证。
阅读全文 →加密货币量化资金费率是怎么一点点吃掉合约策略利润的?永续合约策略除了手续费和滑点,还存在持仓期间的资金费率现金流。持仓时间越长,这项成本越不能忽略。
阅读全文 →淄博卓亚网络科技服务有限公司
电话:15269365953
地址:山东省淄博市张店区体育场街道办事处华光路2号泽泉消防市场三楼S18