# ramzygirgis/imc-prosperity-2026 architecture

> Architecture diagram of the GitHub repository ramzygirgis/imc-prosperity-2026, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ramzygirgis/imc-prosperity-2026
- Repository: https://github.com/ramzygirgis/imc-prosperity-2026

## Overview

IMC Prosperity 4 provides trading-strategy backtesting and a dashboard for exploring backtest or competition-log results. The main workflow is to choose a strategy and historical or synthetic market input, run it through the backtester, produce logs, and view analytics and charts in the dashboard. The README documents both dashboard-triggered replay and standalone CLI modes. Some dashboard and synthetic wiring is unsampled, so the graph omits uncertain links.

Main entry points: [`dashboard_api/app.py`](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/dashboard_api/app.py) (Dashboard API), [`backtester/replay.py`](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/replay.py) (Historical Replay), [`backtester/synthetic.py`](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/synthetic.py) (Synthetic Runs), [`backtester/cli.py`](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/cli.py) (Backtest CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_backtest["Backtesting"]
  node_cli["Backtest CLI<br/>[cli.py]"]
  node_replay["Historical Replay<br/>[replay.py]"]
  node_synthetic["Synthetic Runs<br/>[synthetic.py]"]
  node_runtime["Strategy Runtime<br/>[runtime.py]"]
  node_data["Historical Data<br/>[data.py]"]
  node_writers["Log Writers<br/>[writers.py]"]
end

subgraph group_market["Strategies and Markets"]
  node_strategies["Trading Strategies"]
  node_market_sim["Market Simulation"]
end

subgraph group_dashboard["Dashboard Services"]
  node_strategy_upload["Strategy Uploads<br/>[app.py]"]
  node_api["Dashboard API<br/>[app.py]"]
  node_api_runner["Replay Runner<br/>[replay_runner.py]"]
  node_analytics["Log Analytics<br/>[service.py]"]
end

subgraph group_visualization["Visualization"]
  node_app["Dashboard UI<br/>[App.tsx]"]
  node_api_client["API Client<br/>[api.ts]"]
  node_visualizer_main["Standalone Visualizer<br/>[main.py]"]
  node_clean_data["Log Data Parsing<br/>[clean_data.py]"]
  node_plots["Time Series Plots<br/>[timeseries.py]"]
end

node_user(("Researcher"))
node_browser(("Dashboard User"))

node_user -->|"starts run"| node_cli
node_cli -->|"dispatches replay"| node_replay
node_cli -->|"dispatches synthetic"| node_synthetic
node_replay -->|"loads market data"| node_data
node_replay -->|"runs strategy"| node_runtime
node_runtime -->|"invokes strategy"| node_strategies
node_synthetic -->|"generates market"| node_market_sim
node_synthetic -->|"runs strategy"| node_runtime
node_replay -->|"writes logs"| node_writers
node_synthetic -->|"writes logs"| node_writers
node_browser -->|"configures dashboard"| node_app
node_app -->|"requests data"| node_api_client
node_api_client -->|"calls endpoints"| node_api
node_api -->|"stores upload"| node_strategy_upload
node_api -->|"launches replay"| node_api_runner
node_api -->|"requests analysis"| node_analytics
node_analytics -->|"returns results"| node_api
node_visualizer_main -->|"parses input"| node_clean_data
node_visualizer_main -->|"plots series"| node_plots

click node_cli "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/cli.py"
click node_replay "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/replay.py"
click node_synthetic "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/synthetic.py"
click node_runtime "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/runtime.py"
click node_data "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/data.py"
click node_writers "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/writers.py"
click node_strategies "https://github.com/ramzygirgis/imc-prosperity-2026/tree/main/strategies"
click node_market_sim "https://github.com/ramzygirgis/imc-prosperity-2026/tree/main/backtester/market_sim"
click node_strategy_upload "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/dashboard_api/app.py"
click node_api "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/dashboard_api/app.py"
click node_api_runner "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/dashboard_api/replay_runner.py"
click node_analytics "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/dashboard_analytics/service.py"
click node_app "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/frontend/src/App.tsx"
click node_api_client "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/frontend/src/api.ts"
click node_visualizer_main "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/visualizer/main.py"
click node_clean_data "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/visualizer/clean_data.py"
click node_plots "https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/visualizer/plots/timeseries.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_replay,node_synthetic,node_runtime,node_data,node_writers,node_browser toneBlue
class node_strategies,node_market_sim toneAmber
class node_strategy_upload,node_api,node_api_runner,node_analytics toneMint
class node_app,node_api_client,node_visualizer_main,node_clean_data,node_plots toneRose
class node_user toneIndigo
```

## Components

### Backtesting

- [Backtest CLI](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/cli.py): `backtester/cli.py`
- [Historical Replay](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/replay.py): `backtester/replay.py`
- [Synthetic Runs](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/synthetic.py): `backtester/synthetic.py`
- [Strategy Runtime](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/runtime.py): `backtester/runtime.py`
- [Historical Data](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/data.py): `backtester/data.py`
- [Log Writers](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/backtester/writers.py): `backtester/writers.py`

### Strategies and Markets

- [Trading Strategies](https://github.com/ramzygirgis/imc-prosperity-2026/tree/main/strategies): `strategies`
- [Market Simulation](https://github.com/ramzygirgis/imc-prosperity-2026/tree/main/backtester/market_sim): `backtester/market_sim`

### Dashboard Services

- [Strategy Uploads](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/dashboard_api/app.py): `dashboard_api/app.py`
- [Dashboard API](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/dashboard_api/app.py): `dashboard_api/app.py`
- [Replay Runner](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/dashboard_api/replay_runner.py): `dashboard_api/replay_runner.py`
- [Log Analytics](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/dashboard_analytics/service.py): `dashboard_analytics/service.py`

### Visualization

- [Dashboard UI](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [API Client](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/frontend/src/api.ts): `frontend/src/api.ts`
- [Standalone Visualizer](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/visualizer/main.py): `visualizer/main.py`
- [Log Data Parsing](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/visualizer/clean_data.py): `visualizer/clean_data.py`
- [Time Series Plots](https://github.com/ramzygirgis/imc-prosperity-2026/blob/main/visualizer/plots/timeseries.py): `visualizer/plots/timeseries.py`

### Other components

- **Researcher**
- **Dashboard User**

## Connections

- Researcher → Backtest CLI: starts run
- Backtest CLI → Historical Replay: dispatches replay
- Backtest CLI → Synthetic Runs: dispatches synthetic
- Historical Replay → Historical Data: loads market data
- Historical Replay → Strategy Runtime: runs strategy
- Strategy Runtime → Trading Strategies: invokes strategy
- Synthetic Runs → Market Simulation: generates market
- Synthetic Runs → Strategy Runtime: runs strategy
- Historical Replay → Log Writers: writes logs
- Synthetic Runs → Log Writers: writes logs
- Dashboard User → Dashboard UI: configures dashboard
- Dashboard UI → API Client: requests data
- API Client → Dashboard API: calls endpoints
- Dashboard API → Strategy Uploads: stores upload
- Dashboard API → Replay Runner: launches replay
- Dashboard API → Log Analytics: requests analysis
- Log Analytics → Dashboard API: returns results
- Standalone Visualizer → Log Data Parsing: parses input
- Standalone Visualizer → Time Series Plots: plots series
