Sandboxed cross-exchange trading stack: simulated exchanges plus a NestJS engine that listens for market data, detects arbitrage, and (currently) simulates execution.
- Exchange Simulator: Fake exchange exposing REST depth snapshots and WS depth updates.
- Trading Engine: NestJS service with three pieces:
- Feed: Maintains WS connections, snapshots, and emits orderbook updates.
- Arbitrage: Finds best bid/ask across exchanges, de-dupes via Redis, emits opportunities.
- Execution: Logs/handles opportunities (placeholder for real orders).
exchange-simulator/— Simulated exchange; see readme.trading-engine/— Engine + arbitrage logic; see readme.
From the project root (market-engine), using the Makefile:
- Install dependencies:
make deps- Build simulator images (first time or after simulator changes):
make simulators-build- Start simulators, Redis, and trading engine:
make up- Stop everything:
make downSee the package READMEs in each folder for deeper details and configuration.