Add comprehensive README with all 25 strategies, usage guide, and output examples
This commit is contained in:
@@ -1,206 +1,296 @@
|
|||||||
# Trading System Pro
|
# MT5 Multi-Strategy Trader
|
||||||
|
|
||||||
**19 strategies · 4 instruments · Real-time MT5 scanner · Dash dashboard**
|
**25 Strategies -- 6 Instruments -- Real-Time Dashboard -- MetaTrader 5**
|
||||||
|
|
||||||
A professional-grade automated strategy scanner that connects to MetaTrader 5,
|
A professional-grade automated strategy scanner that connects to MetaTrader 5, runs 25 independent trading strategies across Gold, NAS100, US500, US30, BTC, and ETH. Features a real-time Plotly Dash dashboard, confluence-based signal scoring, backtesting engine, risk management, trade journaling, and alert system.
|
||||||
evaluates 19 trading strategies across Gold (XAUUSD), NAS100, US500, and US30,
|
|
||||||
fires multi-channel alerts, maintains a trading journal, and displays everything
|
|
||||||
on a real-time web dashboard.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
```
|
```
|
||||||
main.py ← Entry point (orchestrator)
|
+------------------+ +------------------+ +------------------+
|
||||||
├── core/
|
| MT5 Terminal | --> | Data Feed | --> | 25 Strategies |
|
||||||
│ ├── mt5_connection.py ← Thread-safe MT5 singleton
|
| (Live Prices) | | (Multi-TF OHLCV) | | (A through Y) |
|
||||||
│ ├── data_feed.py ← Multi-TF cache & polling engine
|
+------------------+ +------------------+ +--------+---------+
|
||||||
│ └── risk_manager.py ← Position sizing & loss limits
|
|
|
||||||
├── indicators/
|
Signals + Scores
|
||||||
│ ├── trend.py ← EMA, SMA, VWAP, Supertrend
|
|
|
||||||
│ ├── momentum.py ← RSI, MACD, Stochastic, divergence
|
+--------------------------------------+
|
||||||
│ ├── volatility.py ← Bollinger, ATR, Keltner, Asian range
|
| | | |
|
||||||
│ ├── volume.py ← Volume SMA, surge, OBV
|
+-----+----+ +-----+----+ +------+---+ +-+--------+
|
||||||
│ └── structure.py ← BOS, order blocks, FVG, S/R, Fib
|
| Dashboard | | Risk | | Alert | | Journal |
|
||||||
├── strategies/
|
| (Dash UI) | | Manager | | Engine | | (SQLite) |
|
||||||
│ ├── base.py ← BaseStrategy ABC + Signal model
|
+-----------+ +----------+ +----------+ +----------+
|
||||||
│ ├── gold_strategies.py ← A-H (8 strategies)
|
|
||||||
│ ├── nas100_strategies.py← I-M (5 strategies)
|
|
||||||
│ ├── us500_strategies.py ← N-P (3 strategies)
|
|
||||||
│ └── us30_strategies.py ← Q-S (3 strategies)
|
|
||||||
├── alerts/
|
|
||||||
│ └── alert_engine.py ← Desktop/Sound/Telegram + dedup
|
|
||||||
├── journal/
|
|
||||||
│ └── journal.py ← SQLite journal + MT5 sync + analytics
|
|
||||||
└── dashboard/
|
|
||||||
├── layout.py ← Dash UI components
|
|
||||||
├── charts.py ← Plotly candlestick + overlays
|
|
||||||
└── app.py ← Dash callbacks (6 real-time panels)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Strategies
|
### Data Flow
|
||||||
|
|
||||||
| ID | Name | Instrument | Style | R:R |
|
|
||||||
|----|------|-----------|-------|-----|
|
|
||||||
| A | London Breakout Trap | Gold | Scalp | 1:2 |
|
|
||||||
| B | VWAP+OB Sniper | Gold | Scalp | 1:2 |
|
|
||||||
| C | News Spike Fade | Gold | Scalp | 1:1.5 |
|
|
||||||
| D | DXY Divergence | Gold | Day | 1:2 |
|
|
||||||
| E | Session Transition | Gold | Day | 1:2 |
|
|
||||||
| F | Trendline Break+Retest | Gold | Day | 1:2.5 |
|
|
||||||
| G | Weekly Institutional | Gold | Swing | 1:3 |
|
|
||||||
| H | Fibonacci Cluster | Gold | Swing | 1:4 |
|
|
||||||
| I | Opening Range Breakout | NAS100 | Scalp | 1:2 |
|
|
||||||
| J | EMA Ribbon Scalp | NAS100 | Scalp | 1:1.5 |
|
|
||||||
| K | ICT Power of 3 | NAS100 | Scalp | 1:3 |
|
|
||||||
| L | Gap Fill | NAS100 | Day | 1:1.5 |
|
|
||||||
| M | 20/50 EMA Pullback | NAS100 | Swing | 1:2.5 |
|
|
||||||
| N | VWAP Mean Reversion | US500 | Scalp | 1:1.75 |
|
|
||||||
| O | Multi-TF Trend | US500 | Day | 1:2 |
|
|
||||||
| P | RSI + Structure | US500 | Swing | 1:2.5 |
|
|
||||||
| Q | Round Number Bounce | US30 | Scalp | 1:2 |
|
|
||||||
| R | ICT Silver Bullet | US30 | Day | 1:3 |
|
|
||||||
| S | Breakout-Retest | US30 | Swing | 1:3 |
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
- **Windows** (required for MT5)
|
|
||||||
- **Python 3.10+**
|
|
||||||
- **MetaTrader 5** terminal installed, running, and **logged in** to your broker
|
|
||||||
- Symbols available: XAUUSD, USTEC/NAS100, US500, US30
|
|
||||||
|
|
||||||
## Quick Start
|
|
||||||
|
|
||||||
### Option 1: Run Script (Recommended)
|
|
||||||
```batch
|
|
||||||
run.bat
|
|
||||||
```
|
```
|
||||||
This creates a virtual environment, installs dependencies, and launches the system.
|
MT5 OHLCV (M1/M5/M15/H1/H4/D1/W1)
|
||||||
|
|
|
||||||
|
v
|
||||||
|
Indicators (Momentum, Trend, Volatility, Structure, Volume)
|
||||||
|
|
|
||||||
|
v
|
||||||
|
Strategy.analyze() --> Raw Signal (direction, entry, SL, TP)
|
||||||
|
|
|
||||||
|
v
|
||||||
|
ConfluenceEngine.score() --> Scored Signal (0-100, quality tier)
|
||||||
|
|
|
||||||
|
v
|
||||||
|
RiskManager.validate() --> Position sizing, daily limits
|
||||||
|
|
|
||||||
|
v
|
||||||
|
Dashboard display + Alert notifications + Journal logging
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## All 25 Strategies
|
||||||
|
|
||||||
|
### Gold (XAUUSD) -- 8 Strategies
|
||||||
|
|
||||||
|
| ID | Name | Style | Timeframes | Session |
|
||||||
|
|----|------|-------|-----------|---------|
|
||||||
|
| A | London Breakout Trap | Scalp | M5, M15 | London Open |
|
||||||
|
| B | VWAP+OB Sniper | Scalp | M1, M5 | NY Open |
|
||||||
|
| C | News Spike Fade | Scalp | M1, M5 | NY Open, London |
|
||||||
|
| D | DXY Divergence | Day | M15, H1 | London-NY Overlap |
|
||||||
|
| E | Session Transition | Day | M15, H1 | NY Open |
|
||||||
|
| F | Trendline Break+Retest | Day | M15, H1 | London, NY |
|
||||||
|
| G | Weekly Institutional | Swing | H4, D1, W1 | London, NY |
|
||||||
|
| H | Fibonacci Cluster | Swing | H4, D1 | London, NY |
|
||||||
|
|
||||||
|
### NAS100 (USTEC) -- 5 Strategies
|
||||||
|
|
||||||
|
| ID | Name | Style | Timeframes | Session |
|
||||||
|
|----|------|-------|-----------|---------|
|
||||||
|
| I | ORB (Opening Range) | Scalp | M5, M15 | NY Open |
|
||||||
|
| J | EMA Ribbon Scalp | Scalp | M1, M5 | NY Open, London |
|
||||||
|
| K | Power of 3 (ICT) | Scalp | M5, M15 | NY Open |
|
||||||
|
| L | Gap Fill | Day | M15, H1 | NY Open |
|
||||||
|
| M | 20/50 EMA Pullback | Swing | H4, D1 | NY |
|
||||||
|
|
||||||
|
### US500 (S&P 500) -- 3 Strategies
|
||||||
|
|
||||||
|
| ID | Name | Style | Timeframes | Session |
|
||||||
|
|----|------|-------|-----------|---------|
|
||||||
|
| N | VWAP Mean Reversion | Scalp | M1, M5 | NY Open |
|
||||||
|
| O | Multi-TF Trend | Day | M5, M15, H1 | London, NY |
|
||||||
|
| P | RSI + Structure | Swing | D1, W1 | NY |
|
||||||
|
|
||||||
|
### US30 (Dow Jones) -- 3 Strategies
|
||||||
|
|
||||||
|
| ID | Name | Style | Timeframes | Session |
|
||||||
|
|----|------|-------|-----------|---------|
|
||||||
|
| Q | Round Number Bounce | Scalp | M5, M15 | NY Open, London |
|
||||||
|
| R | ICT Silver Bullet | Day | M5, M15 | Silver Bullet windows |
|
||||||
|
| S | Breakout-Retest | Swing | H4, D1 | NY |
|
||||||
|
|
||||||
|
### Crypto (BTC/ETH) -- 6 Strategies
|
||||||
|
|
||||||
|
| ID | Name | Style | Timeframes | Notes |
|
||||||
|
|----|------|-------|-----------|-------|
|
||||||
|
| T | BTC Round Number Bounce | Scalp | M5 | 24/7 trading |
|
||||||
|
| U | ETH Trend Following | Day | H4 | 24/7 trading |
|
||||||
|
| V | BTC Momentum Breakout | Scalp | M15 | 24/7 trading |
|
||||||
|
| W | BTC RSI Divergence | Day | H1 | 24/7 trading |
|
||||||
|
| X | ETH Order Block Sniper | Scalp | M5 | 24/7 trading |
|
||||||
|
| Y | ETH Multi-TF Confluence | Swing | H4, D1 | 24/7 trading |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Confluence Scoring
|
||||||
|
|
||||||
|
Every signal passes through a `ConfluenceEngine` that scores it 0-100 based on multiple factors:
|
||||||
|
|
||||||
|
- Trend alignment (multi-TF EMA/SMA agreement)
|
||||||
|
- Momentum confirmation (RSI, MACD, Stochastic)
|
||||||
|
- Volatility context (ATR, Bollinger Band position)
|
||||||
|
- Structure levels (support/resistance, swing points)
|
||||||
|
- Volume confirmation
|
||||||
|
|
||||||
|
Quality tiers based on score:
|
||||||
|
- **Elite** (85+): Highest confidence, full position size
|
||||||
|
- **High** (70-84): Strong setup, standard size
|
||||||
|
- **Normal** (60-69): Acceptable, reduced size
|
||||||
|
- **Low** (<60): Filtered out
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Indicators
|
||||||
|
|
||||||
|
| Module | Indicators |
|
||||||
|
|--------|-----------|
|
||||||
|
| `trend.py` | EMA (10/21/50/200), SMA, ADX, Ichimoku Cloud |
|
||||||
|
| `momentum.py` | RSI, MACD, Stochastic, Williams %R, CCI |
|
||||||
|
| `volatility.py` | ATR, Bollinger Bands, Keltner Channels, Standard Deviation |
|
||||||
|
| `structure.py` | Swing highs/lows, support/resistance, BOS/CHoCH, Order Blocks, FVGs |
|
||||||
|
| `volume.py` | Volume SMA, OBV, Volume Rate of Change, VWAP |
|
||||||
|
| `confluence.py` | Multi-factor scoring engine combining all indicators |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Dashboard
|
||||||
|
|
||||||
|
Real-time Plotly Dash dashboard with:
|
||||||
|
|
||||||
|
- **Signal Table**: All active signals with direction, score, quality tier, entry/SL/TP
|
||||||
|
- **TradingView-style Charts**: Embedded interactive charts per instrument
|
||||||
|
- **Strategy Performance**: Win rates, P&L, signal history per strategy
|
||||||
|
- **Risk Monitor**: Daily P&L, open exposure, consecutive losses
|
||||||
|
- **Journal View**: Complete trade history with analytics
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Backtesting Engine
|
||||||
|
|
||||||
|
Built-in backtester for validating strategies on historical data:
|
||||||
|
|
||||||
|
- Walk-forward optimization with configurable in-sample/out-of-sample splits
|
||||||
|
- Per-strategy and multi-strategy backtesting
|
||||||
|
- Metrics: win rate, profit factor, Sharpe ratio, max drawdown, R-multiples
|
||||||
|
- Optimization job manager for parameter sweeps
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Risk Management
|
||||||
|
|
||||||
|
- **Max risk per trade**: 1.0% (configurable)
|
||||||
|
- **Max daily loss**: 3.0%
|
||||||
|
- **Max weekly loss**: 6.0%
|
||||||
|
- **Max monthly drawdown**: 10.0%
|
||||||
|
- **Max concurrent trades**: 3
|
||||||
|
- **Consecutive loss pause**: After 3 losses, pause 60 minutes
|
||||||
|
- **Next-day risk reduction**: 0.5x after a losing day
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
- Python 3.10+
|
||||||
|
- MetaTrader 5 terminal running on Windows
|
||||||
|
- MT5 broker account
|
||||||
|
|
||||||
|
### Setup
|
||||||
|
|
||||||
### Option 2: Manual Setup
|
|
||||||
```bash
|
```bash
|
||||||
# Create virtual environment
|
cd trading_system
|
||||||
python -m venv .venv
|
|
||||||
.venv\Scripts\activate
|
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
|
|
||||||
# Configure
|
|
||||||
copy .env.example .env
|
|
||||||
# Edit .env with your symbol names
|
|
||||||
|
|
||||||
# Launch
|
|
||||||
python main.py
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Configuration
|
### Configuration
|
||||||
|
|
||||||
Edit `.env` (copied from `.env.example`):
|
1. Copy `.env.example` to `.env` and fill in:
|
||||||
|
```
|
||||||
|
MT5_PATH=C:\Program Files\MetaTrader 5\terminal64.exe
|
||||||
|
MT5_LOGIN=12345678
|
||||||
|
MT5_PASSWORD=your_password
|
||||||
|
MT5_SERVER=YourBroker-Server
|
||||||
|
SYMBOL_GOLD=XAUUSD
|
||||||
|
SYMBOL_NAS100=USTEC
|
||||||
|
SYMBOL_US500=US500
|
||||||
|
SYMBOL_US30=US30
|
||||||
|
ENABLE_CRYPTO=false
|
||||||
|
MAX_RISK_PER_TRADE=1.0
|
||||||
|
MAX_DAILY_LOSS=3.0
|
||||||
|
```
|
||||||
|
|
||||||
```ini
|
2. Adjust symbol names to match your broker's naming convention.
|
||||||
# MT5 terminal path (optional — auto-detects if only one installed)
|
|
||||||
MT5_PATH=C:\Program Files\MetaTrader 5\terminal64.exe
|
|
||||||
|
|
||||||
# Symbol names (must match your broker's naming)
|
---
|
||||||
SYMBOL_GOLD=XAUUSD
|
|
||||||
SYMBOL_NAS100=USTEC
|
|
||||||
SYMBOL_US500=US500
|
|
||||||
SYMBOL_US30=US30
|
|
||||||
|
|
||||||
# Risk management
|
|
||||||
MAX_RISK_PER_TRADE=1.0
|
|
||||||
MAX_DAILY_LOSS=3.0
|
|
||||||
MAX_WEEKLY_LOSS=6.0
|
|
||||||
|
|
||||||
# Alerts
|
|
||||||
ENABLE_DESKTOP_ALERTS=true
|
|
||||||
ENABLE_SOUND_ALERTS=true
|
|
||||||
ENABLE_TELEGRAM=false
|
|
||||||
TELEGRAM_BOT_TOKEN=
|
|
||||||
TELEGRAM_CHAT_ID=
|
|
||||||
|
|
||||||
# Dashboard
|
|
||||||
DASH_HOST=127.0.0.1
|
|
||||||
DASH_PORT=8050
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Full system (scanner + dashboard)
|
# Launch full system with dashboard
|
||||||
python main.py
|
python main.py
|
||||||
|
|
||||||
# Headless mode (scanner + alerts only, no web UI)
|
# Headless scanner only (no dashboard UI)
|
||||||
python main.py --no-dashboard
|
python main.py --no-dashboard
|
||||||
|
|
||||||
# Specific strategies only
|
# Enable only specific strategies
|
||||||
python main.py --strategies A,B,D,I,Q
|
python main.py --strategies A,B,D,I
|
||||||
|
|
||||||
# Filter by instrument
|
# Enable crypto strategies
|
||||||
python main.py --strategies gold # Strategies A-H
|
ENABLE_CRYPTO=true python main.py
|
||||||
python main.py --strategies nas100 # Strategies I-M
|
|
||||||
python main.py --strategies us30 # Strategies Q-S
|
|
||||||
|
|
||||||
# Filter by style
|
|
||||||
python main.py --strategies scalp # All scalp strategies
|
|
||||||
python main.py --strategies swing # All swing strategies
|
|
||||||
|
|
||||||
# Custom host/port
|
|
||||||
python main.py --host 0.0.0.0 --port 9090
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Dashboard
|
### CLI Flags
|
||||||
|
|
||||||
Open `http://127.0.0.1:8050` after launch. The dashboard shows:
|
| Flag | Description |
|
||||||
|
|------|------------|
|
||||||
- **Live Chart** — Candlestick with EMA/VWAP/Bollinger overlays, RSI subplot, signal markers
|
| `--no-dashboard` | Run scanner without the Dash UI |
|
||||||
- **KPI Cards** — Balance, Equity, Daily P&L, Open Positions, Win Rate, Risk Status
|
| `--strategies A,B,D` | Enable only specified strategy IDs |
|
||||||
- **Signal Scanner** — Real-time signal feed from all active strategies
|
| `--scan-interval 300` | Scan interval in seconds (default: 300) |
|
||||||
- **Alert Feed** — All alerts with severity levels
|
|
||||||
- **Trade Journal** — Auto-synced closed trades from MT5
|
|
||||||
- **Performance Stats** — Win rate, profit factor, expectancy, drawdown
|
|
||||||
|
|
||||||
## Threading Model
|
|
||||||
|
|
||||||
| Thread | Purpose | Interval |
|
|
||||||
|--------|---------|----------|
|
|
||||||
| Main | Dash web server | — |
|
|
||||||
| DataFeed | MT5 candle polling | 2s |
|
|
||||||
| Scanner | Strategy evaluation | 2s |
|
|
||||||
| TradeSyncer | MT5 history → journal | 30s |
|
|
||||||
|
|
||||||
All MT5 calls are serialized through a thread-safe singleton with `threading.Lock`.
|
|
||||||
|
|
||||||
## Alert Channels
|
|
||||||
|
|
||||||
| Channel | Config Key | Notes |
|
|
||||||
|---------|-----------|-------|
|
|
||||||
| Desktop | `ENABLE_DESKTOP_ALERTS` | Windows toast via plyer |
|
|
||||||
| Sound | `ENABLE_SOUND_ALERTS` | Beep frequency by severity |
|
|
||||||
| Telegram | `ENABLE_TELEGRAM` | Requires bot token + chat ID |
|
|
||||||
|
|
||||||
Alerts are deduplicated via MD5 fingerprint with 5-minute cooldown.
|
|
||||||
|
|
||||||
## Risk Management
|
|
||||||
|
|
||||||
- Per-trade risk capped at configured % of balance
|
|
||||||
- Daily/weekly/monthly loss limits enforced
|
|
||||||
- Auto-pause after 3 consecutive losses (60 min)
|
|
||||||
- Correlation blocks prevent simultaneous trades on NAS100+US500 or US500+US30
|
|
||||||
- Position sizing: `Lots = (Balance × Risk%) / (SL_pips × Pip_value)`
|
|
||||||
|
|
||||||
## Data Storage
|
|
||||||
|
|
||||||
All data is stored in `data/trading.db` (SQLite):
|
|
||||||
|
|
||||||
- `trades` — Closed trade records (auto-synced from MT5)
|
|
||||||
- `signals_log` — Every signal generated
|
|
||||||
- `alerts` — Alert history
|
|
||||||
|
|
||||||
Logs are written to `data/logs/trading_YYYYMMDD.log` (rotating, 5MB × 5 backups).
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Note:** This system generates signals and alerts only — it does **not** auto-execute trades. You retain full manual control over trade entry and management.
|
## Results & Output
|
||||||
|
|
||||||
|
### Signal Example
|
||||||
|
|
||||||
|
```
|
||||||
|
[SIGNAL] Strategy A: London Breakout Trap
|
||||||
|
Instrument: XAUUSD | Direction: BUY | Strength: STRONG
|
||||||
|
Entry: 2345.50 | SL: 2340.00 | TP: 2356.50 | RR: 2.0
|
||||||
|
Score: 82/100 | Tier: HIGH
|
||||||
|
Confluence: [trend_aligned, rsi_oversold, at_support, volume_spike]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dashboard Output
|
||||||
|
|
||||||
|
The dashboard runs at `http://localhost:8050` and shows:
|
||||||
|
- Live signal table updated every scan interval
|
||||||
|
- Per-strategy win rate and P&L tracking
|
||||||
|
- Interactive charts with entry/exit markers
|
||||||
|
|
||||||
|
### Journal Database
|
||||||
|
|
||||||
|
All signals and trades logged to SQLite (`data/trading.db`) with full metadata for later analysis.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
trading_system/
|
||||||
|
main.py # Entry point
|
||||||
|
config.py # All configuration (symbols, risk, strategies)
|
||||||
|
requirements.txt
|
||||||
|
.env.example # Environment template
|
||||||
|
core/
|
||||||
|
mt5_connection.py # MT5 terminal wrapper
|
||||||
|
data_feed.py # Multi-TF OHLCV data fetcher
|
||||||
|
risk_manager.py # Position sizing, daily limits
|
||||||
|
backtest_engine.py # Walk-forward backtester
|
||||||
|
optimizer.py # Parameter optimization
|
||||||
|
strategies/
|
||||||
|
__init__.py # Strategy registry (A-Y)
|
||||||
|
base.py # BaseStrategy + Signal model
|
||||||
|
gold_strategies.py # Strategies A-H (Gold)
|
||||||
|
nas100_strategies.py # Strategies I-M (NAS100)
|
||||||
|
us500_strategies.py # Strategies N-P (US500)
|
||||||
|
us30_strategies.py # Strategies Q-S (US30)
|
||||||
|
crypto_strategies.py # Strategies T-Y (BTC/ETH)
|
||||||
|
indicators/
|
||||||
|
trend.py # EMA, SMA, ADX, Ichimoku
|
||||||
|
momentum.py # RSI, MACD, Stochastic
|
||||||
|
volatility.py # ATR, Bollinger, Keltner
|
||||||
|
structure.py # Swing points, BOS, OBs, FVGs
|
||||||
|
volume.py # OBV, VWAP, Volume SMA
|
||||||
|
confluence.py # Multi-factor scoring engine
|
||||||
|
dashboard/
|
||||||
|
app.py # Dash application
|
||||||
|
layout.py # UI layout
|
||||||
|
charts.py # Plotly chart builders
|
||||||
|
alerts/
|
||||||
|
alert_engine.py # Multi-level alert system
|
||||||
|
journal/
|
||||||
|
journal.py # SQLite journal + analytics + trade syncer
|
||||||
|
data/
|
||||||
|
logs/ # Rotating log files
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user