# himanshu-pro01/tradealgo architecture

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

- Interactive diagram: https://gitdiagram.com/himanshu-pro01/tradealgo
- Repository: https://github.com/himanshu-pro01/tradealgo

## Overview

Algobot is a browser-based trading desk and research toolkit layered around OpenAlgo—not a live-order trading bot. A trader defines or edits a strategy, supplies historical prices, reviews its plain-English interpretation, and runs a cost- and risk-aware backtest; look-ahead and reality checks then challenge the evidence. Separate desk workflows support position sizing, journaling, options analysis, fake-money practice, alerts, and sandbox-only broker testing. The sampled engine and pages establish key runtime connections; other capability links reflect README documentation, with uncertain wiring omitted.

Main entry points: [`pages/3_Practice_room.py`](https://github.com/himanshu-pro01/tradealgo/blob/main/pages/3_Practice_room.py) (Practice room), [`pages/5_Backtest.py`](https://github.com/himanshu-pro01/tradealgo/blob/main/pages/5_Backtest.py) (Backtest page), [`algobot/engine.py`](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/engine.py) (Backtest engine), [`algobot/signal_alerts.py`](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/signal_alerts.py) (Signal alerts)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desk["Trading desk"]
  node_home["Desk home<br/>[Trading_Desk.py]"]
  node_backtest_page["Backtest page<br/>[5_Backtest.py]"]
end

subgraph group_research["Strategy research"]
  node_data["Market data<br/>[data.py]"]
  node_config["Strategy config<br/>[config.py]"]
  node_runner["Backtest runner<br/>[runner.py]"]
  node_strategy["Strategy rules<br/>[strategy.py]"]
  node_engine["Backtest engine<br/>[engine.py]"]
  node_risk["Risk manager<br/>[risk.py]"]
  node_costs["Cost model<br/>[costs.py]"]
  node_lookahead["Look-ahead checks<br/>[lookahead.py]"]
  node_reality["Reality audit<br/>[audit.py]"]
  node_lab["Strategy lab<br/>[lab.py]"]
end

subgraph group_simulation["Practice and options"]
  node_options["Options analysis<br/>[options.py]"]
  node_practice["Practice room<br/>[3_Practice_room.py]"]
  node_worlds["Synthetic markets<br/>[worlds.py]"]
  node_advisor["AI advisor<br/>[ai_advisor.py]"]
  node_paper["Paper trading<br/>[paper_trading.py]"]
end

subgraph group_trade_tools["Trade tools"]
  node_size["Position sizing<br/>[sizing.py]"]
  node_gate["Pre-trade gate<br/>[gate.py]"]
  node_journal[("Trade journal<br/>[journal.py]")]
  node_report["P&amp;L reports<br/>[report.py]"]
  node_alerts["Signal alerts<br/>[signal_alerts.py]"]
end

subgraph group_integrations["External integrations"]
  node_sandbox_page["Sandbox page"]
  node_sandbox["Sandbox client<br/>[upstox_sandbox.py]"]
  node_openalgo["OpenAlgo bridge<br/>[openalgo_bridge.py]"]
end

node_trader(("Trader"))
node_market_service{{"Market data service"}}
node_openalgo_service{{"OpenAlgo"}}
node_upstox{{"Upstox sandbox"}}
node_ai_service{{"AI provider"}}
node_telegram{{"Telegram"}}

node_trader -->|"opens desk"| node_home
node_trader -->|"configures test"| node_backtest_page
node_home -->|"fetches chart data"| node_openalgo
node_openalgo -->|"requests candles"| node_openalgo_service
node_trader -->|"provides price file"| node_data
node_data -.->|"fetches history"| node_market_service
node_backtest_page -->|"validates strategy"| node_config
node_backtest_page -->|"runs test"| node_runner
node_backtest_page -->|"loads prices"| node_data
node_runner -->|"runs simulation"| node_engine
node_runner -->|"creates strategy"| node_strategy
node_engine -->|"requests decisions"| node_strategy
node_engine -->|"checks limits"| node_risk
node_engine -->|"prices fills"| node_costs
node_backtest_page -->|"checks future leakage"| node_lookahead
node_trader -->|"audits strategy"| node_reality
node_trader -->|"tests variations"| node_lab
node_trader -->|"sizes position"| node_size
node_trader -->|"checks trade"| node_gate
node_gate -->|"reads limits"| node_journal
node_trader -->|"records trades"| node_journal
node_trader -->|"reviews performance"| node_report
node_report -->|"reads trades"| node_journal
node_trader -->|"requests alert"| node_alerts
node_alerts -->|"calculates lots"| node_size
node_alerts -->|"checks limits"| node_gate
node_alerts -.->|"sends notification"| node_telegram
node_trader -->|"starts practice"| node_practice
node_practice -->|"generates market"| node_worlds
node_practice -->|"prices options"| node_options
node_practice -->|"requests suggestion"| node_advisor
node_advisor -.->|"requests analysis"| node_ai_service
node_practice -->|"records practice trades"| node_paper
node_practice -.->|"streams prices"| node_market_service
node_practice -.->|"places practice order"| node_sandbox
node_trader -->|"tests sandbox"| node_sandbox_page
node_sandbox_page -->|"fetches prices"| node_data
node_sandbox_page -->|"checks strategy"| node_runner
node_sandbox_page -->|"sends sandbox order"| node_sandbox
node_sandbox -->|"uses sandbox API"| node_upstox

click node_home "https://github.com/himanshu-pro01/tradealgo/blob/main/Trading_Desk.py"
click node_backtest_page "https://github.com/himanshu-pro01/tradealgo/blob/main/pages/5_Backtest.py"
click node_data "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/data.py"
click node_config "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/config.py"
click node_runner "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/runner.py"
click node_strategy "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/strategy.py"
click node_engine "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/engine.py"
click node_risk "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/risk.py"
click node_costs "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/costs.py"
click node_lookahead "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/lookahead.py"
click node_reality "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/audit.py"
click node_lab "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/lab.py"
click node_size "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/sizing.py"
click node_gate "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/gate.py"
click node_journal "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/journal.py"
click node_report "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/report.py"
click node_alerts "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/signal_alerts.py"
click node_options "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/options.py"
click node_practice "https://github.com/himanshu-pro01/tradealgo/blob/main/pages/3_Practice_room.py"
click node_worlds "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/worlds.py"
click node_advisor "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/ai_advisor.py"
click node_paper "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/paper_trading.py"
click node_sandbox_page "https://github.com/himanshu-pro01/tradealgo/blob/main/pages/14_Upstox_Sandbox.py"
click node_sandbox "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/upstox_sandbox.py"
click node_openalgo "https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/openalgo_bridge.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_home,node_backtest_page toneBlue
class node_data,node_config,node_runner,node_strategy,node_engine,node_risk,node_costs,node_lookahead,node_reality,node_lab toneAmber
class node_options,node_practice,node_worlds,node_advisor,node_paper toneMint
class node_size,node_gate,node_journal,node_report,node_alerts toneRose
class node_sandbox_page,node_sandbox,node_openalgo,node_trader,node_market_service,node_openalgo_service,node_upstox,node_ai_service,node_telegram toneIndigo
```

## Components

### Trading desk

- [Desk home](https://github.com/himanshu-pro01/tradealgo/blob/main/Trading_Desk.py): `Trading_Desk.py`
- [Backtest page](https://github.com/himanshu-pro01/tradealgo/blob/main/pages/5_Backtest.py): `pages/5_Backtest.py`

### Strategy research

- [Market data](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/data.py): `algobot/data.py`
- [Strategy config](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/config.py): `algobot/config.py`
- [Backtest runner](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/runner.py): `algobot/runner.py`
- [Strategy rules](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/strategy.py): `algobot/strategy.py`
- [Backtest engine](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/engine.py): `algobot/engine.py`
- [Risk manager](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/risk.py): `algobot/risk.py`
- [Cost model](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/costs.py): `algobot/costs.py`
- [Look-ahead checks](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/lookahead.py): `algobot/lookahead.py`
- [Reality audit](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/audit.py): `algobot/audit.py`
- [Strategy lab](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/lab.py): `algobot/lab.py`

### Practice and options

- [Options analysis](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/options.py): `algobot/options.py`
- [Practice room](https://github.com/himanshu-pro01/tradealgo/blob/main/pages/3_Practice_room.py): `pages/3_Practice_room.py`
- [Synthetic markets](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/worlds.py): `algobot/worlds.py`
- [AI advisor](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/ai_advisor.py): `algobot/ai_advisor.py`
- [Paper trading](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/paper_trading.py): `algobot/paper_trading.py`

### Trade tools

- [Position sizing](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/sizing.py): `algobot/sizing.py`
- [Pre-trade gate](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/gate.py): `algobot/gate.py`
- [Trade journal](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/journal.py): `algobot/journal.py`
- [P&L reports](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/report.py): `algobot/report.py`
- [Signal alerts](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/signal_alerts.py): `algobot/signal_alerts.py`

### External integrations

- [Sandbox page](https://github.com/himanshu-pro01/tradealgo/blob/main/pages/14_Upstox_Sandbox.py): `pages/14_Upstox_Sandbox.py`
- [Sandbox client](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/upstox_sandbox.py): `algobot/upstox_sandbox.py`
- [OpenAlgo bridge](https://github.com/himanshu-pro01/tradealgo/blob/main/algobot/openalgo_bridge.py): `algobot/openalgo_bridge.py`

### Other components

- **Trader**
- **Market data service**
- **OpenAlgo**
- **Upstox sandbox**
- **AI provider**
- **Telegram**

## Connections

- Trader → Desk home: opens desk
- Trader → Backtest page: configures test
- Desk home → OpenAlgo bridge: fetches chart data
- OpenAlgo bridge → OpenAlgo: requests candles
- Trader → Market data: provides price file
- Market data → Market data service: fetches history
- Backtest page → Strategy config: validates strategy
- Backtest page → Backtest runner: runs test
- Backtest page → Market data: loads prices
- Backtest runner → Backtest engine: runs simulation
- Backtest runner → Strategy rules: creates strategy
- Backtest engine → Strategy rules: requests decisions
- Backtest engine → Risk manager: checks limits
- Backtest engine → Cost model: prices fills
- Backtest page → Look-ahead checks: checks future leakage
- Trader → Reality audit: audits strategy
- Trader → Strategy lab: tests variations
- Trader → Position sizing: sizes position
- Trader → Pre-trade gate: checks trade
- Pre-trade gate → Trade journal: reads limits
- Trader → Trade journal: records trades
- Trader → P&L reports: reviews performance
- P&L reports → Trade journal: reads trades
- Trader → Signal alerts: requests alert
- Signal alerts → Position sizing: calculates lots
- Signal alerts → Pre-trade gate: checks limits
- Signal alerts → Telegram: sends notification
- Trader → Practice room: starts practice
- Practice room → Synthetic markets: generates market
- Practice room → Options analysis: prices options
- Practice room → AI advisor: requests suggestion
- AI advisor → AI provider: requests analysis
- Practice room → Paper trading: records practice trades
- Practice room → Market data service: streams prices
- Practice room → Sandbox client: places practice order
- Trader → Sandbox page: tests sandbox
- Sandbox page → Market data: fetches prices
- Sandbox page → Backtest runner: checks strategy
- Sandbox page → Sandbox client: sends sandbox order
- Sandbox client → Upstox sandbox: uses sandbox API
