Quantitative Finance
Kyle Lambda Order-Flow Price Impact & Reciprocal Market Depth Formula (SLOPE)
Estimate Kyle’s (1985) price-impact coefficient lambda = SLOPE(Price_Change, Signed_Order_Flow) and implied book depth 1 / lambda from signed trade-imbalance intervals.
Quantify how much net order imbalance moves the mid-quote!
In Kyle’s (1985) microstructure model, market makers adjust prices linearly in response to net signed order flow Q_t (buyer-initiated volume minus seller-initiated volume): dP_t = alpha + lambda * Q_t + epsilon_t. A higher Kyle’s lambda means thinner liquidity and greater adverse-selection risk per 1,000 shares traded!
Estimating lambda via SLOPE(dP_range, Q_range) gives the dollar price impact per unit of signed volume, while its reciprocal Market Depth = 1 / lambda measures how many signed shares (in thousands) the order book absorbs per $1.00 price move!
| Interval | Signed Net Flow Q_t (k sh) | Mid-Price Change dP_t ($) | Implied Model Fit |
|---|---|---|---|
| Window 1 | -40 | -0.10 | Net selling pushes mid down |
| Window 2 | -10 | -0.02 | Mild sell imbalance |
| Window 3 | +20 | +0.05 | Moderate buy imbalance |
| Window 4 | +50 | +0.13 | lambda = $0.002533 / k sh (Depth = 394.74k sh/$) |
Kyle’s Lambda Price-Impact Slope ($ per 1k Shares)
Regresses mid-price changes C2:C5 on net signed order flow B2:B5 with a zero-variance flow guard.
=IF(VAR.P(B2:B5) = 0, "Zero Flow Variance", ROUND(SLOPE(C2:C5, B2:B5), 6))Reciprocal Market Depth (1 / lambda, in 1k Shares per $1 Move)
Inverts positive Kyle’s lambda to express order-book absorption capacity.
=IF(VAR.P(B2:B5) = 0, "Zero Flow Variance", IF(SLOPE(C2:C5, B2:B5) <= 0, "Non-Positive Impact", ROUND(1 / SLOPE(C2:C5, B2:B5), 4)))Try the example
Use the original values or change them to test your understanding.