# murad24-cuper/bottrading architecture

> Architecture diagram of the GitHub repository murad24-cuper/bottrading, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/murad24-cuper/bottrading
- Repository: https://github.com/murad24-cuper/bottrading

## Overview

This is a single-owner XM MetaTrader 5 trading bot. Its main workflow is to connect to the local terminal, discover and screen symbols, analyze market bars into strategy signals, apply risk rules, and execute and record trades; a localhost dashboard exposes status and controls. The repository also includes backtesting, research and a learning-oriented “brain” subsystem. Edges reflect README statements and the supplied source index or excerpts; several implementation details were not sampled, so uncertain connections are omitted.

Main entry points: [`src/scanner.py`](https://github.com/murad24-cuper/bottrading/blob/main/src/scanner.py) (Signal scanner), [`src/bot.py`](https://github.com/murad24-cuper/bottrading/blob/main/src/bot.py) (Trading loop), [`src/executor.py`](https://github.com/murad24-cuper/bottrading/blob/main/src/executor.py) (Order execution), [`src/dashboard/queries.py`](https://github.com/murad24-cuper/bottrading/blob/main/src/dashboard/queries.py) (Dashboard queries)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Trading runtime"]
  node_bot["Trading loop<br/>[bot.py]"]
  node_symbols["Symbol discovery<br/>[symbols.py]"]
  node_market["Market data<br/>[market_data.py]"]
end

subgraph group_analysis["Market analysis"]
  node_scanner["Signal scanner<br/>[scanner.py]"]
  node_indicators["Indicators and features<br/>[indicators.py]"]
  node_strategies["Strategy families"]
  node_sessions["Session analysis<br/>[sessions.py]"]
end

subgraph group_safety["Risk and execution"]
  node_risk["Risk controls<br/>[risk.py]"]
  node_trade_rules["Trade rules<br/>[trade_rules.py]"]
  node_executor["Order execution<br/>[executor.py]"]
end

subgraph group_learning["Research and learning"]
  node_backtest["Backtest engine<br/>[engine.py]"]
  node_brain["Trading memory<br/>[memory.py]"]
  node_evaluation["Model evaluation<br/>[evaluation.py]"]
  node_feature_impact["Feature analysis<br/>[feature_impact.py]"]
end

subgraph group_operations["Operations and reporting"]
  node_store[("Trade database<br/>[db.py]")]
  node_dashboard["Local dashboard<br/>[app.py]"]
  node_queries["Dashboard queries<br/>[queries.py]"]
end

node_owner(("Bot owner"))
node_mt5["MT5 terminal"]

node_owner -->|"starts"| node_bot
node_bot -->|"connects to"| node_mt5
node_bot -->|"uses"| node_symbols
node_bot -->|"runs scans"| node_scanner
node_bot -->|"manages trades"| node_executor
node_bot -->|"records trades"| node_store
node_symbols -->|"loads history"| node_market
node_scanner -->|"gets market data"| node_market
node_scanner -->|"calculates features"| node_indicators
node_scanner -->|"dispatches signals"| node_strategies
node_scanner -->|"checks limits"| node_risk
node_scanner -->|"checks sessions"| node_sessions
node_executor -->|"sizes positions"| node_risk
node_executor -->|"checks rules"| node_trade_rules
node_executor -->|"sends orders"| node_mt5
node_dashboard -->|"reads status"| node_queries
node_queries -->|"queries SQLite"| node_store
node_scanner -->|"uses memory"| node_brain
node_backtest -->|"checks risk"| node_risk
node_backtest -->|"uses market data"| node_market
node_queries -->|"uses analysis"| node_feature_impact

click node_bot "https://github.com/murad24-cuper/bottrading/blob/main/src/bot.py"
click node_symbols "https://github.com/murad24-cuper/bottrading/blob/main/src/symbols.py"
click node_market "https://github.com/murad24-cuper/bottrading/blob/main/src/market_data.py"
click node_scanner "https://github.com/murad24-cuper/bottrading/blob/main/src/scanner.py"
click node_indicators "https://github.com/murad24-cuper/bottrading/blob/main/src/indicators.py"
click node_strategies "https://github.com/murad24-cuper/bottrading/tree/main/src/strategies"
click node_sessions "https://github.com/murad24-cuper/bottrading/blob/main/src/sessions.py"
click node_risk "https://github.com/murad24-cuper/bottrading/blob/main/src/risk.py"
click node_trade_rules "https://github.com/murad24-cuper/bottrading/blob/main/src/trade_rules.py"
click node_executor "https://github.com/murad24-cuper/bottrading/blob/main/src/executor.py"
click node_store "https://github.com/murad24-cuper/bottrading/blob/main/src/db.py"
click node_dashboard "https://github.com/murad24-cuper/bottrading/blob/main/src/dashboard/app.py"
click node_queries "https://github.com/murad24-cuper/bottrading/blob/main/src/dashboard/queries.py"
click node_backtest "https://github.com/murad24-cuper/bottrading/blob/main/src/backtest/engine.py"
click node_brain "https://github.com/murad24-cuper/bottrading/blob/main/src/brain/memory.py"
click node_evaluation "https://github.com/murad24-cuper/bottrading/blob/main/src/brain/evaluation.py"
click node_feature_impact "https://github.com/murad24-cuper/bottrading/blob/main/src/analysis/feature_impact.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_bot,node_symbols,node_market toneBlue
class node_scanner,node_indicators,node_strategies,node_sessions toneAmber
class node_risk,node_trade_rules,node_executor toneMint
class node_backtest,node_brain,node_evaluation,node_feature_impact toneRose
class node_store,node_dashboard,node_queries,node_owner,node_mt5 toneIndigo
```

## Components

### Trading runtime

- [Trading loop](https://github.com/murad24-cuper/bottrading/blob/main/src/bot.py): `src/bot.py`
- [Symbol discovery](https://github.com/murad24-cuper/bottrading/blob/main/src/symbols.py): `src/symbols.py`
- [Market data](https://github.com/murad24-cuper/bottrading/blob/main/src/market_data.py): `src/market_data.py`

### Market analysis

- [Signal scanner](https://github.com/murad24-cuper/bottrading/blob/main/src/scanner.py): `src/scanner.py`
- [Indicators and features](https://github.com/murad24-cuper/bottrading/blob/main/src/indicators.py): `src/indicators.py`
- [Strategy families](https://github.com/murad24-cuper/bottrading/tree/main/src/strategies): `src/strategies`
- [Session analysis](https://github.com/murad24-cuper/bottrading/blob/main/src/sessions.py): `src/sessions.py`

### Risk and execution

- [Risk controls](https://github.com/murad24-cuper/bottrading/blob/main/src/risk.py): `src/risk.py`
- [Trade rules](https://github.com/murad24-cuper/bottrading/blob/main/src/trade_rules.py): `src/trade_rules.py`
- [Order execution](https://github.com/murad24-cuper/bottrading/blob/main/src/executor.py): `src/executor.py`

### Research and learning

- [Backtest engine](https://github.com/murad24-cuper/bottrading/blob/main/src/backtest/engine.py): `src/backtest/engine.py`
- [Trading memory](https://github.com/murad24-cuper/bottrading/blob/main/src/brain/memory.py): `src/brain/memory.py`
- [Model evaluation](https://github.com/murad24-cuper/bottrading/blob/main/src/brain/evaluation.py): `src/brain/evaluation.py`
- [Feature analysis](https://github.com/murad24-cuper/bottrading/blob/main/src/analysis/feature_impact.py): `src/analysis/feature_impact.py`

### Operations and reporting

- [Trade database](https://github.com/murad24-cuper/bottrading/blob/main/src/db.py): `src/db.py`
- [Local dashboard](https://github.com/murad24-cuper/bottrading/blob/main/src/dashboard/app.py): `src/dashboard/app.py`
- [Dashboard queries](https://github.com/murad24-cuper/bottrading/blob/main/src/dashboard/queries.py): `src/dashboard/queries.py`

### Other components

- **Bot owner**
- **MT5 terminal**

## Connections

- Bot owner → Trading loop: starts (evidence: `README.md`)
- Trading loop → MT5 terminal: connects to (evidence: `README.md`)
- Trading loop → Symbol discovery: uses (evidence: `src/bot.py`)
- Trading loop → Signal scanner: runs scans (evidence: `src/bot.py`)
- Trading loop → Order execution: manages trades (evidence: `src/bot.py`)
- Trading loop → Trade database: records trades (evidence: `README.md`)
- Symbol discovery → Market data: loads history (evidence: `src/symbols.py`)
- Signal scanner → Market data: gets market data (evidence: `src/scanner.py`)
- Signal scanner → Indicators and features: calculates features (evidence: `src/scanner.py`)
- Signal scanner → Strategy families: dispatches signals (evidence: `src/scanner.py`)
- Signal scanner → Risk controls: checks limits (evidence: `src/scanner.py`)
- Signal scanner → Session analysis: checks sessions (evidence: `src/scanner.py`)
- Order execution → Risk controls: sizes positions (evidence: `src/executor.py`)
- Order execution → Trade rules: checks rules (evidence: `src/executor.py`)
- Order execution → MT5 terminal: sends orders (evidence: `README.md`)
- Local dashboard → Dashboard queries: reads status (evidence: `src/dashboard/app.py`)
- Dashboard queries → Trade database: queries SQLite (evidence: `src/dashboard/queries.py`)
- Signal scanner → Trading memory: uses memory (evidence: `src/scanner.py`)
- Backtest engine → Risk controls: checks risk (evidence: `src/backtest/engine.py`)
- Backtest engine → Market data: uses market data (evidence: `src/backtest/engine.py`)
- Dashboard queries → Feature analysis: uses analysis (evidence: `src/dashboard/queries.py`)
