← Work

Sole author · 2026

TradingSim

A browser-based replay simulator for historical market data, with Level-2 depth and no lookahead.

  • Python
  • FastAPI
  • Databento
  • Parquet
  • JavaScript

System

  1. Databento session
  2. Nanosecond timestamps
  3. Ordered replay
  4. Depth-limited fills
  5. Browser UI

Problem

I wanted to practice small-cap momentum trading on historical data. Many simulators show information too early: a bar before it closes, a fill at a price that was never on the book, or a headline before the trades it caused. Practice on that kind of replay does not carry over to live trading.

What I built

  • Replay of one symbol and session at a time using Databento Level-2 depth (MBP-10), the trade tape, OHLCV bars, and optional news, all in strict timestamp order.
  • Fills limited by visible depth and delayed by simulated latency. Passive orders wait in the queue. Commissions, SEC/FINRA fees, and buying power are checked at fill time.
  • Bars appear only after they close, and timestamps stay as integer nanoseconds so news cannot be reordered ahead of the trades around it.
  • Atomic writes for data and config, and 126 automated tests across the Python backend and the frontend.

Results

automated tests
126
Level-2 depth
MBP-10

Limits

It replays one symbol and one session at a time. It is for practice, not for backtesting a portfolio.

Related