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 正交化处理
具体做法:
- 用深度因子对市值因子、波动率因子做回归
- 取残差作为“纯净的深度因子”
- 再把这个残差因子加入多因子模型
# 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 本章小结
深度因子不是万能药,但它提供了一个独特的视角——从订单簿的厚度看市场。构建时注意标准化和正交化,应用时控制权重,结合其他因子一起使用。记住,深度因子更像一个风险因子,而不是收益因子。用它来管理交易成本,比用它来预测涨跌靠谱得多。
一句话总结:深度因子告诉你市场能“吃”下多少订单。别只看价格,看看深度,你的交易会顺畅很多。