Avellaneda-Stoikov Model

The Avellaneda-Stoikov model is a market making framework that determines optimal bid and ask quotes based on inventory risk, volatility, and order arrival dynamics. It balances expected profit from the spread against the risk of holding inventory.

Core Idea

A market maker sets quotes around a reservation price that shifts with inventory. As inventory grows, quotes are adjusted to encourage trades that reduce risk.

Key Equations

A common formulation is:

Where:

Practical Use

The model provides a structured way to quote tighter spreads when risk is low and widen spreads when inventory risk or volatility increases. It is widely used in high frequency and electronic market making research.

Assumptions and Limitations

The model assumes a specific order arrival process and constant volatility, which may not hold in real markets. It also requires reliable parameter estimation and fast execution to be effective.

Model Intuition

The model balances expected spread capture against inventory risk. When inventory grows, the reservation price shifts so quotes are skewed to attract trades that reduce the position.

This creates a feedback loop that stabilizes inventory while still providing liquidity.

Parameter Estimation

Key parameters include volatility, order arrival intensity, and risk aversion. Volatility can be estimated from recent returns, while order arrival rates can be estimated from historical quote and trade data.

Parameter estimates should be updated regularly because microstructure conditions change quickly.

Inventory Control

Inventory is the primary risk. Limits are often applied so the model reduces quoting or widens spreads when inventory approaches a threshold. Some implementations also hedge inventory with correlated instruments.

Implementation Outline

A simplified flow is: compute mid price, estimate volatility, compute reservation price, compute optimal spread, set bid and ask quotes, update on each market event.

Latency matters because stale quotes can be picked off. Fast updates and cancellation logic are essential.

Limitations and Stress Tests

The model assumes stable market conditions and a specific order arrival process. In fast markets, order flow can change and quotes may be too aggressive. Stress tests should include volatility spikes and one sided order flow.

Example Scenario

Consider a liquid instrument with stable spreads and average volatility. A rule based implementation can be tested on a multi year sample and then on an out of sample period. The goal is to verify that the behavior of Avellaneda-Stoikov Model is consistent across regimes and that the edge does not depend on a narrow set of conditions.

Implementation Checklist

Example Scenario

Consider a liquid instrument with stable spreads and average volatility. A rule based implementation can be tested on a multi year sample and then on an out of sample period. The goal is to verify that the behavior of Avellaneda-Stoikov Model is consistent across regimes and that the edge does not depend on a narrow set of conditions.

Implementation Checklist

Operational Notes

Definitions and conventions should be consistent across datasets and venues. A small difference in data fields or session boundaries can change outcomes, especially for short term strategies. Document inputs and assumptions so results can be reproduced.

If the concept depends on exchange rules or broker behavior, confirm those rules for the specific venue. Operational details often explain why a trade behaved differently than expected.

Stress Scenarios

During volatility spikes, liquidity can evaporate and price gaps can appear. Under these conditions, indicators can lag, order types can misfire, and spreads can widen sharply.

Stress testing the concept against fast markets, thin liquidity, and sudden news helps reveal hidden risks. If a strategy only works in calm conditions, size and timing should reflect that.

Documentation Tips

Keep a short checklist of the rules, parameters, and decision points. Record how the concept is used in live trading and compare it to backtest assumptions. This makes future refinement easier and reduces drift in execution.