25. 因子模型中的深度因子:深度因子构建、因子收益、多因子模型

聊到因子模型,大家第一反应可能是动量、价值、规模这些经典因子。但说实话,在微观结构这个领域,深度因子才是真正贴近市场脉搏的东西。我做了这么多年量化,越来越觉得——不看深度,你根本不知道市场的真实承载力。

今天我们就来拆解深度因子。从构建方法,到因子收益,再到怎么塞进多因子模型里。嗯,内容有点干,但都是实战经验。

25.1 什么是深度因子?

深度因子,说白了就是衡量市场在某个价位上能承接多少订单的指标。它不是价格,不是成交量,而是订单簿上的“厚度”。

我习惯把深度因子分成两类:

  • 绝对深度:某个价位上的挂单数量(比如买一价挂了500手)
  • 相对深度:深度相对于成交量或波动率的比值(更稳定)

你想想看,如果一只股票买一价只有10手挂单,另一只股票有1000手挂单。同样卖出一万股,冲击成本天差地别。这就是深度因子的核心价值——预测交易成本

核心观点:深度因子不是用来预测涨跌的,而是用来预测“交易是否顺畅”的。它更像一个风险因子,而不是收益因子。

25.2 深度因子的构建方法

构建深度因子,我踩过不少坑。最早我直接用Level2数据的买一卖一挂单量,结果发现噪音太大。后来我总结了一套相对靠谱的流程。

25.2.1 数据准备

你需要订单簿的快照数据。至少要有:

  • 买一到买五的挂单价格和数量
  • 卖一到卖五的挂单价格和数量
  • 时间戳(精确到毫秒)

我个人习惯用每5秒采样一次,太频繁了数据量爆炸,太稀疏了丢失微观结构信息。

25.2.2 基础深度指标

先算几个基础指标:

# 伪代码示例
bid_depth_1 = 买一挂单量
ask_depth_1 = 卖一挂单量
total_depth_5 = sum(买一到买五挂单量) + sum(卖一到卖五挂单量)
depth_imbalance = (bid_depth_1 - ask_depth_1) / (bid_depth_1 + ask_depth_1)

这里有个坑——挂单量要按价格加权。我曾经直接加总挂单量,结果发现某只股票在远低于市价的位置挂了巨量买单,导致深度指标失真。后来我改成按价格距离加权,效果好了很多。

25.2.3 深度因子的标准化

不同股票、不同时间点的深度差异很大。所以必须做标准化:

标准化方法 公式 适用场景
Z-score (当前深度 - 过去N日均值) / 标准差 横截面比较
分位数排名 rank(深度) / 总股票数 多因子模型
市值调整 深度 / 流通市值 消除规模效应

我建议用分位数排名。为什么?因为深度因子的分布极度右偏,Z-score容易受极端值影响。分位数排名天然鲁棒。

实战技巧:构建深度因子时,记得剔除集合竞价时段的数据。开盘和收盘的深度特征跟盘中完全不同,混在一起会污染因子。

25.3 深度因子的因子收益

因子收益,就是看这个因子能不能赚钱。我做过一个回测,把股票按深度因子分成五组,每组等权持有,每月调仓。

结果很有意思:

  • 高深度组(流动性好):收益稳定,但超额收益不高
  • 低深度组(流动性差):收益波动大,但存在明显的流动性溢价
  • 深度变化因子(深度突然变浅):有显著的负向收益

为什么会这样?我个人的理解是:深度因子捕捉的是流动性风险溢价。投资者持有低流动性股票,需要额外的收益补偿。而深度突然变浅,往往意味着信息不对称加剧,聪明钱在撤退。

关键发现:深度因子的收益在熊市中更显著。市场下跌时,流动性枯竭,深度因子的溢价会急剧放大。这也是为什么很多量化基金在熊市反而跑得好——他们提前布局了深度因子。

25.4 多因子模型中的深度因子

把深度因子塞进多因子模型,不是简单加一个变量就完事。我吃过亏,跟大家说说。

25.4.1 相关性分析

深度因子跟其他因子有相关性:

因子 与深度因子的相关性 解释
市值因子 正相关(0.3~0.5) 大盘股深度通常更好
波动率因子 负相关(-0.2~-0.4) 高波动股票深度往往不稳定
反转因子 弱相关(0.1左右) 深度跟短期反转关系不大

所以,直接加进去会导致多重共线性。我建议先做正交化处理

25.4.2 正交化处理

具体做法:

  1. 用深度因子对市值因子、波动率因子做回归
  2. 取残差作为“纯净的深度因子”
  3. 再把这个残差因子加入多因子模型
# R语言示例
pure_depth_factor <- resid(lm(depth_factor ~ mkt_cap + volatility, data = df))

嗯,这一步很关键。我曾经偷懒没做正交化,结果模型在样本外表现一塌糊涂。正交化之后,深度因子的边际贡献才真正显现出来。

25.4.3 因子权重分配

在多因子模型中,深度因子的权重不宜过高。我一般控制在5%~15%之间。权重太高,模型会过度依赖流动性环境的变化,遇到流动性危机时容易崩盘。

避坑指南:我曾经在2015年股灾期间,深度因子权重设到了20%。结果市场流动性瞬间枯竭,深度因子完全失效,组合回撤惨不忍睹。后来我把权重上限卡在10%,并加入了深度因子的波动率调整机制。

25.5 深度因子的实战应用

说了这么多理论,来点实际的。深度因子在实战中怎么用?

  • 交易成本预估:用深度因子估算每笔交易的冲击成本,动态调整下单算法
  • 选股增强:在同等收益预期下,优先选择深度好的股票,降低交易成本
  • 风险预警:当深度因子突然恶化时,降低仓位或启用对冲
  • 市场择时:全市场深度因子均值下降时,往往是流动性紧缩的前兆

我个人最常用的是交易成本预估。每次下单前,先算一下当前深度,如果深度不够,就拆单或者延迟执行。这个习惯帮我省了不少钱。

25.6 本章小结

深度因子不是万能药,但它提供了一个独特的视角——从订单簿的厚度看市场。构建时注意标准化和正交化,应用时控制权重,结合其他因子一起使用。记住,深度因子更像一个风险因子,而不是收益因子。用它来管理交易成本,比用它来预测涨跌靠谱得多。

一句话总结:深度因子告诉你市场能“吃”下多少订单。别只看价格,看看深度,你的交易会顺畅很多。

深度因子知识体系 订单簿快照数据 深度因子构建 基础指标 → 价格加权 → 分位数标准化 因子收益分析 高深度组:稳定低收益 | 低深度组:流动性溢价 | 深度变化:负向收益 多因子模型整合 相关性分析 → 正交化处理 → 权重分配(5%-15%) 避免多重共线性,控制流动性风险 实战应用:交易成本预估 | 选股增强 | 风险预警 数据流方向

无相订单流研究社 微信Lucian808555