一句话里的那个模型
在 Kyle 那个 1985 年发表在 Econometrica 上的模型里,做市商只看到总的净委托流,并把价格设为它的一个线性函数:Δp = λ × 净流量。因此 lambda 是市场深度的倒数。同一篇论文把流动性框定在三个维度上——紧密度、深度和弹性——而 lambda 就是把深度那个维度变成了一个数字。
从 K 线上估计它
在一个 K 线窗口上,把 x 取为这根 K 线的净带符号成交量、也就是它的 Delta,而把 y 取为收盘价的变化。过原点的回归给出 λ = Σxy / Σx²。而一个带截距的版本会吸收掉这个窗口的漂移。像这样逐根 K 线地估计它,沿用的是 Hasbrouck 1991 年的做法。替代做法把 Delta 换成它带符号的平方根,以反映冲击的平方根律,或者换成买单笔数与卖单笔数之差。
一个算例
在 120 根 K 线上,Delta 乘以收盘价变化之和是 1 500,而 Delta 平方之和是 2 000 000,价格以指数点计。那么 λ = 1 500 / 2 000 000 = 每一张合约净流量 0.00075 点。按每 1 000 张的净买入算,收盘价平均移动 0.75 点,而在一个最小跳动 0.25 的合约上那是三跳。如果一小时之后同样的计算给出 0.00150,那么净流量正在把价格推动两倍之多:委托簿变薄了,或者流量变得更有信息。
在 Senzoukria 里
「Kyle Lambda (price impact)」是「Quantitative」组里的一个副图指标。它的「Window (bars)」默认是 120,范围从 10 到 2 000。「Order flow」可以选「Net signed volume (delta)」(默认)、「Signed square root of delta」或「Trade count imbalance」。「Fit an intercept」默认关闭,因为在这个模型里,零净流量没有理由去挪动价格。「Unit」默认是每 1 000 单位流量的跳数,也可以选每单位流量的价格、或者每 1 000 单位的基点。一个有数据缺失、或者完全没有净流量的窗口,不产生数值而不是产生一个零。这个指标自己的说明写出了它的局限:它是一个平均的同期冲击,既不区分永久冲击与暂时冲击,也不预测下一张委托的成本,还取决于数据源主动方分类的质量,并且会随周期而变。
常见错误
- 在不换算单位的情况下跨周期或跨工具比较 lambda。
- 把上升的 lambda 读成一个方向性信号;它描述的是价格对流量有多敏感,而不是流量会往哪边走。
- 信任一个在「主动方是推断出来、而不是被报告出来」的数据源上算出来的 lambda。
相关内容
同一栏目
其他语言版本
常见问题
- Kyle's lambda 很高意味着什么?
- 它意味着在这个窗口里,每一单位净委托流都把价格推动了很多:这个市场很薄,或者这股流量很有信息。面对这种条件的流动性提供者往往会报更少的量、或者报得更宽,而那又反过来让 lambda 保持很高。
- Kyle's lambda 就是 DOM 上的市场深度吗?
- 它们从不同的数据描述同一个属性。DOM 显示的是某一瞬间被显示出来的规模;而 lambda 度量的是在一个窗口里,价格对已执行的净流量实际上怎么反应,其中包含了被显示深度所看不到的隐藏规模、补单和撤销。