← all projects

Trading & Quant Complete 2026

IMC Prosperity 4

Algorithmic market-making under a 900ms clock

The problem

IMC Prosperity 4 scores algorithms on SeaShells profit against bots on a simulated island exchange, under hard constraints: each trading decision must return in under 900ms, the trader is stateless between calls (only a serialized traderData string persists), and only pandas, numpy, statistics, math, typing, and jsonpickle are available - no external ML stack.

The approach

Built a Trader class organized around round-specific strategy modules, using bid/ask wall midpoint (rather than raw mid price) as a more stable fair-value estimate, and validated every strategy against locally replayed round data and a backtester before upload, prioritizing robustness over maximum backtested score to avoid overfitting to one dataset.

<900ms response time per trading iterationstateless design (state persisted only via traderData)5 competition rounds: market making, stat-arb, options, location arbitrage
PythonpandasNumPyjsonpickleBacktesting

IMC Prosperity 4 is a multi-round algorithmic trading competition where a submitted Trader class quotes and takes orders against simulated bots on an island exchange, scored on cumulative SeaShells profit.

the constraints shape the design

Three hard constraints rule out most of the usual quant-dev toolbox: every decision has to return in under 900ms, the trader is stateless across calls (state only survives via a serialized traderData string passed back each round), and the only libraries available are pandas, numpy, statistics, math, typing, and jsonpickle. No sklearn, no external services, no persistent process.

strategy approach

Each round introduces new tradable products, and strategies are organized into distinct categories with different risk profiles:

TypeApproachRisk profile
Market makingQuote around a fair-value estimate, earn the spreadLow variance
Statistical arbitrageTrade spread deviations, e.g. an ETF against its constituentsMedium variance
Informed tradingDetect systematic bot signal patternsLow-medium variance
Location arbitrageExploit local vs. external pricing gapsLow variance

The core fair-value estimate throughout is wall mid pricing - the midpoint of the bid and ask walls (the largest resting order clusters) rather than the raw best-bid/best-ask mid, which is far more easily distorted by a single bot overbidding at the top of book.

discipline over overfitting

The governing principle across rounds, borrowed and stated explicitly in the strategy docs: never commit to a strategy you can’t explain from first principles, and never optimize purely for the backtest score, since that’s the fastest way to overfit to one sample of historical bot behavior. Every strategy was tested against locally replayed round data with a backtester before being uploaded to the platform.

why this approach

Market-making competitions reward robustness more than cleverness - a strategy that looks brilliant on last round’s data and blows up on this round’s is worse than a boring one that holds up. Building each strategy from an explicit model of “how could this market data have been generated” rather than pattern-matching a moving average or z-score was the throughline for every round.

What I took away

  • Wall mid pricing (the midpoint of the largest bid/ask walls, not just best bid/ask) is a materially more stable fair-value anchor than raw mid price, since it's less distorted by bots overbidding or undercutting at the top of book.
  • Optimizing purely for backtest score is a trap in a competition with unseen future rounds - every strategy needed a first-principles explanation for why it should work, not just a number that looked good on historical data.
  • Studying a prior top finisher's public write-up (Frankfurt Hedgehogs, 2nd place in Prosperity 3) and adapting the reasoning rather than copying the numbers directly was more valuable than any single tactic.

0 comments

0/1000

Loading…