Back to Projects
🟒 LIVE

Options Market-Maker Simulator

A market-making training simulator for a live American-style option chain β€” quote bid/ask spreads against a competing market maker, manage Greeks and delta-breach risk in real time, and work through 14 scripted lessons from a beginner introduction to a fast, aggressive order-flow stress test.

Open Live App View on GitHub

TECH STACK

Next.jsTypeScriptZustandOptions PricingMarket MicrostructureAlgorithm DesignVitest

Deep Dive

Inspired by the internal options market-making training curriculum used at quant trading firms, most directly from Akuna Capital's Options 101 & 201, this is a from-scratch reimplementation of that training format, not a port of any existing software. The main screen is a live option chain, one row per strike, with the trader's own resting quote on each side repricing every tick.

The pricing core is a Cox-Ross-Rubinstein binomial tree, not the simpler closed-form Black-Scholes many teaching tools default to, so early exercise is handled correctly; Delta/Gamma/Theta are read directly off the tree's own nodes rather than bumped-and-repriced, avoiding the discretization noise that technique introduces into Gamma. A 9-node implied volatility surface reproduces a hand-rolled "correlation matrix" skew-editing mechanic β€” tugging one node cascades a damped adjustment into its neighbors β€” and every quote's width scales directly off live vega, with a fade-and-reset mechanic that widens a quote automatically after it gets run over so the market maker isn't repeatedly picked off at a stale price.

On top of that: 9 standard combo types (spreads, flies, straddles, strangles, risk reversals) with a wholesale block-trading form, a live risk matrix stressing the portfolio across Β±30% spot moves, and 14 fully scripted training lessons with deterministic seeded replay, each authored from a training manual's own description of what it's meant to teach β€” spanning a flat-vol-curve-fitting introduction, a scheduled-news-event simulation, and a dense, fast order-flow stress test. Every engine module (pricer, vol surface, order book, matching, lesson player) is pure, framework-free TypeScript with its own unit test suite, wired into a live tick loop through a thin Zustand layer.