Inspiration

Markets are not static. A single fixed market-making rule performs well in some conditions and poorly in others. The goal was to design a strategy that reacts to changing market conditions by adjusting how it provides liquidity, rather than optimizing for only one type of market.


What it does

This project implements a regime-adaptive market-making strategy in a discrete limit-order-book simulation.

The strategy:

  • Acts strictly as a liquidity provider using limit orders
  • Captures bid-ask spread in stable market conditions
  • Reduces exposure and aggressiveness in competitive or volatile markets
  • Enforces strict inventory and risk controls at all times

Profit is generated primarily through systematic spread capture in normal and calm markets, while losses in unstable regimes are limited through conservative quoting behavior.


How we built it

The strategy is implemented in Python using a step-based trading loop connected to a simulated order book.

At each step:

  • Order-book data and price movements are analyzed
  • The current market regime is inferred
  • Regime-specific parameters determine spread offsets, order sizes, and order frequency
  • Inventory-aware logic ensures risk limits are never violated

All behavior is explicitly defined in code without machine learning or external optimization.


Challenges we ran into

  • Managing inventory risk while maintaining competitive quotes
  • Avoiding adverse selection in fast or HFT-dominated markets
  • Designing regime logic that remained robust across very different market scenarios
  • Ensuring realistic behavior without exploiting simulator artifacts

Accomplishments that we're proud of

  • A single strategy that remains profitable in normal markets while limiting drawdowns in stressed regimes
  • Clean separation between regime detection and execution logic
  • Strict risk controls that prevent runaway inventory or invalid pricing
  • Consistent behavior across multiple simulated market scenarios

What we learned

  • Market-making performance is highly regime-dependent
  • Tight spreads are only profitable when volatility and competition are controlled
  • Inventory management is as important as pricing logic
  • Simple, transparent rules can outperform overly complex strategies when risk is managed correctly

What's next

  • Finer regime classification using additional order-book signals
  • Adaptive parameter tuning within each regime
  • More advanced inventory-skewing logic
  • Stress testing under longer and more adversarial simulations

Built With

Share this project:

Updates