Free lesson · Execution & microstructure
Capacity is where alpha meets market impact
Open interactive lessonPractice calculationsExplore labs
Start with the idea
Capacity asks how an edge changes as more capital tries to trade it. Impact, opportunity cost and financing often grow with size, so scaling a profitable small trade is not simply multiplication.
Symbols, units & horizon
- Q: positive order-size magnitude
- V: market volume over the matching horizon
- Q/V: participation fraction
- Y: calibrated impact coefficient
- σ: return volatility on the volume horizon
- impact(Q): adverse fractional price effect
- Gross forecast, fees, spread, financing: same-horizon return fractions
- e: residual edge budget after non-impact expenses
- Q*: algebraic break-even size under the assumed impact curve
When and why to use this
Use a calibrated cost curve to set participation limits and reject allocations whose expected benefit disappears at executable size.
Invert an assumed square-root impact curve
- Participation q=Q/V is dimensionless. Under , divide by Yσ and square to get .
- Then . Hold the horizon and calibration fixed when interpreting size sensitivity.
If impact is 4 bp at a reference size, four times that size gives 8 bp in the model. A 12 bp budget permits nine times the reference size.
This square-root impact relation is an empirical approximation, not a universal execution law. Q is order size, V is market volume over a stated reference horizon, σ is volatility over a compatible horizon, and Y is calibrated from relevant executions. Impact estimates vary with urgency, liquidity, venue, and market conditions.
Solve an after-cost capacity boundary
- Let a be gross forecast and c fixed non-impact costs. Net edge is .
- Set net edge to zero and isolate Q: if a>c. If a≤c, no positive size is justified by this model.
Gross 20 bp, fixed costs 8 bp and reference impact 4 bp gives break-even multiplier [(20−8)/4]²=9, before uncertainty.
Every term is expressed as a return per dollar traded over the intended holding horizon. If the gross forecast does not grow with order size but impact does, scaling capital eventually erases the edge. More capital can increase dollar profit while reducing return on capital, until the cost curve overwhelms the signal.
- Fit cost curves by size bucket and volatility regime; do not extrapolate from tiny orders without a margin for uncertainty.
- Stress lower volume, wider spread, slower execution, and borrow withdrawal together.
- Set participation and position-liquidation limits before choosing the capital allocation.
Python implementation
Self-contained teaching example. Python 3.10+; dependencies and input conventions are shown in the code and notation. Run in your own Python environment.
def square_root_impact(quantity, market_volume, volatility, coefficient):
if quantity < 0 or market_volume <= 0 or min(volatility,coefficient)<0:
raise ValueError("Invalid impact inputs")
return coefficient*volatility*(quantity/market_volume)**.5
def capacity_boundary(gross_edge, fees, spread, financing, volume, vol, coefficient):
"""Model break-even, not a safe order-size recommendation."""
if min(volume,vol,coefficient) <= 0:
raise ValueError("Positive volume, volatility and coefficient required")
budget = gross_edge-fees-spread-financing
return 0 if budget <= 0 else volume*(budget/(coefficient*vol))**2
print(capacity_boundary(.003,.0002,.0005,.0001,1e6,.02,.5))Continue learning
Execution & Market Microstructure — all lessons- The spread is a price for immediacy
- Measure implementation shortfall
- Capacity is where alpha meets market impact
- Make the order lifecycle auditable
Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations