# colochampre/rsi-div-strat architecture

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

- Interactive diagram: https://gitdiagram.com/colochampre/rsi-div-strat
- Repository: https://github.com/colochampre/rsi-div-strat

## Overview

This repository combines a TradingView RSI-divergence strategy with two validation loops: offline analysis of exported trades and a monthly monitor that regenerates signals, replays trades against market candles, and updates a portfolio report. The README documents strategy stages and capabilities; sampled monitor code supports the signal/replay and corroboration links. Monitor and analysis internals not sampled are represented only at their documented directory paths.

Main entry points: [`monitor/actualizar.py`](https://github.com/colochampre/rsi-div-strat/blob/main/monitor/actualizar.py) (Monthly update), [`monitor/corroborar.py`](https://github.com/colochampre/rsi-div-strat/blob/main/monitor/corroborar.py) (Export corroboration), [`backtest`](https://github.com/colochampre/rsi-div-strat/tree/main/backtest) (Trade exports), [`monitor/simular.py`](https://github.com/colochampre/rsi-div-strat/blob/main/monitor/simular.py) (Trade replay)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_strategy["Trading strategy"]
  node_strategy_pine["Strategy<br/>[strategy.pine]"]
  node_visual_indicator["RSI visualizer<br/>[rsi-div.pine]"]
end

subgraph group_validation["Backtest analysis"]
  node_trade_exports["Trade exports"]
  node_configs["Run summaries<br/>[configs.csv]"]
  node_analysis_scripts["Validation analyses"]
end

subgraph group_monitor["Monthly monitor"]
  node_signal_engine["Signal engine<br/>[senales.py]"]
  node_replay_engine["Trade replay<br/>[simular.py]"]
  node_monthly_runner["Monthly update<br/>[actualizar.py]"]
  node_corroboration["Export corroboration<br/>[corroborar.py]"]
  node_signal_validation["Signal validation<br/>[validar_senales.py]"]
  node_replay_validation["Replay validation"]
end

subgraph group_state["Monitor state and reports"]
  node_monitor_state["Monitor state<br/>[estado.json]"]
  node_confirmed_state["Confirmed trades<br/>[corroboradas.json]"]
  node_portfolio["Pair selection<br/>[pares.txt]"]
  node_monitor_page["Monitor report<br/>[monitor.html]"]
  node_other_reports["Strategy reports"]
end

node_trader(("Trader"))
node_tv(("TradingView"))
node_candles(("Binance candles"))
node_candle_provider["Candle provider"]

node_trader -->|"loads strategy"| node_tv
node_tv -->|"executes"| node_strategy_pine
node_tv -.->|"renders"| node_visual_indicator
node_tv -->|"exports trades"| node_trade_exports
node_trade_exports -->|"analyzed by"| node_analysis_scripts
node_configs -->|"summarizes runs"| node_analysis_scripts
node_analysis_scripts -.->|"informs"| node_other_reports
node_monthly_runner -->|"requests candles"| node_candle_provider
node_candle_provider -->|"fetches"| node_candles
node_monthly_runner -->|"generates signals"| node_signal_engine
node_monthly_runner -->|"replays trades"| node_replay_engine
node_replay_engine -->|"uses signals"| node_signal_engine
node_replay_engine -->|"uses candle data"| node_candle_provider
node_monthly_runner -->|"reads pairs"| node_portfolio
node_monthly_runner -->|"reads and writes"| node_monitor_state
node_monthly_runner -->|"renders report"| node_monitor_page
node_trade_exports -->|"supplies exports"| node_corroboration
node_corroboration -->|"requests candles"| node_candle_provider
node_corroboration -->|"reads and updates"| node_monitor_state
node_corroboration -->|"records trades"| node_confirmed_state
node_corroboration -->|"uses helpers"| node_monthly_runner
node_corroboration -->|"refreshes report"| node_monitor_page
node_signal_validation -->|"checks signals"| node_signal_engine
node_signal_validation -->|"compares entries"| node_trade_exports
node_signal_validation -->|"requests candles"| node_candle_provider
node_replay_validation -->|"checks replay"| node_replay_engine
node_replay_validation -->|"compares results"| node_trade_exports
node_replay_validation -->|"requests candles"| node_candle_provider

click node_strategy_pine "https://github.com/colochampre/rsi-div-strat/blob/main/strategy.pine"
click node_visual_indicator "https://github.com/colochampre/rsi-div-strat/blob/main/indicators/rsi-div.pine"
click node_trade_exports "https://github.com/colochampre/rsi-div-strat/tree/main/backtest"
click node_configs "https://github.com/colochampre/rsi-div-strat/blob/main/backtest/configs.csv"
click node_analysis_scripts "https://github.com/colochampre/rsi-div-strat/tree/main/analysis"
click node_signal_engine "https://github.com/colochampre/rsi-div-strat/blob/main/monitor/senales.py"
click node_replay_engine "https://github.com/colochampre/rsi-div-strat/blob/main/monitor/simular.py"
click node_monthly_runner "https://github.com/colochampre/rsi-div-strat/blob/main/monitor/actualizar.py"
click node_corroboration "https://github.com/colochampre/rsi-div-strat/blob/main/monitor/corroborar.py"
click node_signal_validation "https://github.com/colochampre/rsi-div-strat/blob/main/monitor/validar_senales.py"
click node_replay_validation "https://github.com/colochampre/rsi-div-strat/blob/main/monitor/validar_simulacion.py"
click node_monitor_state "https://github.com/colochampre/rsi-div-strat/blob/main/monitor/estado.json"
click node_confirmed_state "https://github.com/colochampre/rsi-div-strat/blob/main/monitor/corroboradas.json"
click node_portfolio "https://github.com/colochampre/rsi-div-strat/blob/main/monitor/pares.txt"
click node_monitor_page "https://github.com/colochampre/rsi-div-strat/blob/main/informe/monitor.html"
click node_other_reports "https://github.com/colochampre/rsi-div-strat/tree/main/informe"

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_strategy_pine,node_visual_indicator,node_tv toneBlue
class node_trade_exports,node_configs,node_analysis_scripts toneAmber
class node_signal_engine,node_replay_engine,node_monthly_runner,node_corroboration,node_signal_validation,node_replay_validation toneMint
class node_monitor_state,node_confirmed_state,node_portfolio,node_monitor_page,node_other_reports toneRose
class node_trader,node_candles,node_candle_provider toneIndigo
```

## Components

### Trading strategy

- [Strategy](https://github.com/colochampre/rsi-div-strat/blob/main/strategy.pine): `strategy.pine`
- [RSI visualizer](https://github.com/colochampre/rsi-div-strat/blob/main/indicators/rsi-div.pine): `indicators/rsi-div.pine`

### Backtest analysis

- [Trade exports](https://github.com/colochampre/rsi-div-strat/tree/main/backtest): `backtest`
- [Run summaries](https://github.com/colochampre/rsi-div-strat/blob/main/backtest/configs.csv): `backtest/configs.csv`
- [Validation analyses](https://github.com/colochampre/rsi-div-strat/tree/main/analysis): `analysis`

### Monthly monitor

- [Signal engine](https://github.com/colochampre/rsi-div-strat/blob/main/monitor/senales.py): `monitor/senales.py`
- [Trade replay](https://github.com/colochampre/rsi-div-strat/blob/main/monitor/simular.py): `monitor/simular.py`
- [Monthly update](https://github.com/colochampre/rsi-div-strat/blob/main/monitor/actualizar.py): `monitor/actualizar.py`
- [Export corroboration](https://github.com/colochampre/rsi-div-strat/blob/main/monitor/corroborar.py): `monitor/corroborar.py`
- [Signal validation](https://github.com/colochampre/rsi-div-strat/blob/main/monitor/validar_senales.py): `monitor/validar_senales.py`
- [Replay validation](https://github.com/colochampre/rsi-div-strat/blob/main/monitor/validar_simulacion.py): `monitor/validar_simulacion.py`

### Monitor state and reports

- [Monitor state](https://github.com/colochampre/rsi-div-strat/blob/main/monitor/estado.json): `monitor/estado.json`
- [Confirmed trades](https://github.com/colochampre/rsi-div-strat/blob/main/monitor/corroboradas.json): `monitor/corroboradas.json`
- [Pair selection](https://github.com/colochampre/rsi-div-strat/blob/main/monitor/pares.txt): `monitor/pares.txt`
- [Monitor report](https://github.com/colochampre/rsi-div-strat/blob/main/informe/monitor.html): `informe/monitor.html`
- [Strategy reports](https://github.com/colochampre/rsi-div-strat/tree/main/informe): `informe`

### Other components

- **Trader**
- **TradingView**
- **Binance candles**
- **Candle provider**

## Connections

- Trader → TradingView: loads strategy
- TradingView → Strategy: executes
- TradingView → RSI visualizer: renders
- TradingView → Trade exports: exports trades
- Trade exports → Validation analyses: analyzed by
- Run summaries → Validation analyses: summarizes runs
- Validation analyses → Strategy reports: informs
- Monthly update → Candle provider: requests candles
- Candle provider → Binance candles: fetches
- Monthly update → Signal engine: generates signals
- Monthly update → Trade replay: replays trades
- Trade replay → Signal engine: uses signals
- Trade replay → Candle provider: uses candle data
- Monthly update → Pair selection: reads pairs
- Monthly update → Monitor state: reads and writes
- Monthly update → Monitor report: renders report
- Trade exports → Export corroboration: supplies exports
- Export corroboration → Candle provider: requests candles
- Export corroboration → Monitor state: reads and updates
- Export corroboration → Confirmed trades: records trades
- Export corroboration → Monthly update: uses helpers
- Export corroboration → Monitor report: refreshes report
- Signal validation → Signal engine: checks signals
- Signal validation → Trade exports: compares entries
- Signal validation → Candle provider: requests candles
- Replay validation → Trade replay: checks replay
- Replay validation → Trade exports: compares results
- Replay validation → Candle provider: requests candles
