Arte SheetsLearn. Try. Understand.

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!

IntervalSigned Net Flow Q_t (k sh)Mid-Price Change dP_t ($)Implied Model Fit
Window 1-40-0.10Net selling pushes mid down
Window 2-10-0.02Mild sell imbalance
Window 3+20+0.05Moderate buy imbalance
Window 4+50+0.13lambda = $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.

Further reading