13、机器学习预警模型(一):特征工程

从订单簿、成交量、波动率、衍生品市场中提取有效特征,避免过拟合。

做量化这些年,我最大的体会是:模型可以简单,特征必须扎实。你想想看,再牛的神经网络,喂进去的是垃圾,吐出来的只能是更精致的垃圾。这一章,我们就聊聊怎么从海量市场数据里,挖出那些真正能预警流动性黑洞的“金子”。

13.1 特征工程的核心思路:信号 vs 噪声

流动性崩溃前的特征,其实是有共性的。我个人习惯把特征分成四类:

  • 订单簿特征:买卖盘的深度、宽度、失衡度
  • 成交量特征:成交速度、大单占比、主动买卖方向
  • 波动率特征:已实现波动、隐含波动、波动率曲率
  • 衍生品特征:期权偏斜、期货基差、跨期价差

说白了,我们要找的是“市场正在失去弹性”的信号。而不是那些随机游走的噪声。

核心原则:每个特征必须有一个可解释的微观结构逻辑。如果连你自己都说不清这个特征为什么能预警,那它大概率是个伪信号。

13.2 订单簿特征:微观结构的“心电图”

订单簿是市场最原始的数据。我曾在一次股指期货的闪崩前,亲眼看到买一和买二之间的价差突然拉大到平时的5倍——这就是典型的“流动性断层”。

13.2.1 深度与宽度

  • 订单簿深度:前10档买卖挂单的总量。深度骤降,说明做市商在撤退。
  • 买卖价差:买一价与卖一价的差值。价差突然扩大,往往是流动性枯竭的前兆。
  • 价格影响系数:吃掉前5档挂单所需的价格变动。这个系数越大,市场越脆弱。

13.2.2 订单簿失衡度

我常用的一个指标是 Order Imbalance Ratio

OIR = (买盘总量 - 卖盘总量) / (买盘总量 + 卖盘总量)

当OIR绝对值超过0.8,且持续3秒以上,往往意味着方向性压力在急剧积累。嗯,这里要注意:不要只看绝对值,要看变化速度。我曾经踩过坑,只盯着阈值,结果错过了几次快速反转的预警信号。

13.3 成交量特征:资金的“真实意图”

成交量不会骗人,但成交量需要“拆解”。

13.3.1 成交速度与大单占比

  • 成交频率:每秒成交笔数。频率突然飙升,往往是程序化交易在集体行动。
  • 大单成交占比:单笔超过平均单量3倍以上的成交占比。占比超过30%时,机构资金可能在集中离场。

13.3.2 主动买卖方向

用Tick数据标记每一笔成交是主动买还是主动卖。我习惯计算一个 主动买卖比率

ABR = 主动买成交量 / (主动买成交量 + 主动卖成交量)

当ABR连续5分钟低于0.3,且价格还在横盘——这往往是“阴跌”的前奏。我在2015年股灾时就吃过这个亏,当时只看了价格没看成交方向,结果被闷杀。

避坑指南:我曾经把成交量和波动率直接作为特征输入模型,结果模型学到的全是“高波动伴随高成交”这种常识性关系,对预警毫无帮助。后来我改用“成交量/波动率”的比值,效果好了很多。

13.4 波动率特征:市场的“恐慌指数”

波动率本身不是风险,波动率的突变才是。

13.4.1 已实现波动率与波动率曲率

  • 已实现波动率:过去5分钟、15分钟、1小时的波动率。我习惯用Parkinson估计量,它对日内跳空更敏感。
  • 波动率曲率:短期波动率与长期波动率的差值变化率。曲率突然转正,说明市场在“加速恐慌”。

13.4.2 波动率聚集性

用GARCH模型拟合残差,提取波动率的自相关性。当波动率的自相关系数在0.7以上时,说明市场处于“波动率集群”状态——这时候流动性黑洞的概率会显著上升。

13.5 衍生品市场特征:聪明钱的“风向标”

衍生品市场往往领先现货市场。我个人习惯把期权和期货数据作为“领先指标”。

13.5.1 期权偏斜

看跌期权与看涨期权的隐含波动率之差。当偏斜度超过历史95分位数时,说明对冲需求在急剧上升。我曾在2020年3月的美股熔断前,看到标普500期权的偏斜度连续3天飙升——那是我第一次真正重视这个指标。

13.5.2 期货基差与跨期价差

  • 基差:期货价格与现货价格的差值。基差突然转负且扩大,说明市场在“抢跑”下跌。
  • 跨期价差:近月合约与远月合约的价差。价差收窄,往往意味着流动性在向远月迁移,近月市场正在“干涸”。

13.6 避免过拟合:特征选择的“铁律”

特征多了,模型就容易“记住”噪声而不是“学习”规律。我总结了几条铁律:

  1. 相关性筛选:特征之间的相关系数超过0.9,只保留一个。我习惯用VIF(方差膨胀因子)来检测多重共线性。
  2. 时间序列交叉验证:不能用随机打乱的方式做验证。要用“滚动窗口”或“扩展窗口”来模拟真实交易场景。
  3. 特征稳定性检验:每个特征在不同市场状态(牛市、熊市、震荡市)下的分布是否一致?如果某个特征只在特定行情下有效,那它就是个“伪特征”。
  4. 业务逻辑约束:如果一个特征在逻辑上说不通,哪怕统计上显著,也坚决剔除。我见过有人把“月相”作为特征,结果回测效果还不错——但谁敢用?
警告:不要为了追求“高夏普”而疯狂加特征。我见过一个团队,用了200多个特征,回测夏普3.0,实盘直接亏掉30%。过拟合是量化交易的头号杀手,没有之一。

13.7 知识体系框架

下面这张图,是我自己整理的特征工程核心逻辑。你可以把它当作一个检查清单:

流动性黑洞预警特征工程框架 数据源层 订单簿数据 | 成交数据 | 波动率数据 | 衍生品数据 特征提取层 订单簿特征 深度、价差、失衡度 成交量特征 成交频率、大单占比 波动率特征 已实现波动、曲率 衍生品特征 偏斜、基差、价差 特征筛选层(防过拟合) 相关性筛选 时间序列交叉验证 稳定性检验 业务逻辑约束 预警模型输入特征集

13.8 实战建议:从“做减法”开始

如果你刚开始做流动性预警模型,我建议你先从5-8个核心特征开始。别贪多。我自己的经验是:订单簿失衡度 + 成交速度 + 波动率曲率 + 期权偏斜,这四个特征组合起来,已经能覆盖80%的流动性崩溃场景。

剩下的20%,靠的是对特定市场微观结构的理解。比如在国债期货市场,基差的变化比期权偏斜更敏感;在加密货币市场,订单簿深度比成交量更重要。这些细节,只能靠你在实战中慢慢积累。

一个小技巧:每次添加一个新特征,先做“单特征回测”。如果这个特征单独就能产生稳定的预警信号,再考虑加入组合。否则,果断放弃。

好了,特征工程这部分就聊到这儿。下一章我们会把这些特征喂进模型里,看看它们到底能不能在实盘中扛住考验。


无相订单流研究社 微信Lucian808555