108 lines
3.3 KiB
Markdown
108 lines
3.3 KiB
Markdown
# Mad Turtle v2.0 — Improved ML EA for XAUUSD
|
||
|
||
Modern ML trading system: Python inference server + ONNX models + MQL5 EA with UI.
|
||
|
||
## Architecture
|
||
|
||
```
|
||
madturtle/
|
||
├── python/
|
||
│ ├── ml_pipeline/
|
||
│ │ └── build_onnx_raw.py # Build demo/train real ONNX models
|
||
│ ├── inference_server/
|
||
│ │ └── server.py # FastAPI REST server
|
||
│ ├── run_server.py # Server launcher
|
||
│ └── requirements.txt
|
||
├── models/
|
||
│ ├── xauusd_h1_ensemble.onnx # ONNX model (demo included)
|
||
│ └── metadata.json # Feature schema + model info
|
||
└── mql5/
|
||
├── scripts/
|
||
│ └── MadTurtle.mq5 # Main EA
|
||
└── include/
|
||
├── MadTurtle_API.mqh # HTTP bridge to Python server
|
||
├── MadTurtle_MTF.mqh # Multi-timeframe filters (H4/D1)
|
||
└── MadTurtle_UI.mqh # Status dashboard + oscillator + equity curve
|
||
```
|
||
|
||
## Quick Start
|
||
|
||
### 1. Python inference server (macOS/Linux)
|
||
|
||
```bash
|
||
# Create venv (Python 3.11 or 3.12 recommended for sklearn+skl2onnx)
|
||
python3 -m venv .venv
|
||
source .venv/bin/activate
|
||
|
||
# Install dependencies
|
||
pip install numpy onnx onnxruntime fastapi uvicorn pydantic
|
||
|
||
# Run server
|
||
python python/run_server.py
|
||
# Server starts on http://0.0.0.0:8000
|
||
```
|
||
|
||
Test:
|
||
```bash
|
||
curl http://127.0.0.1:8000/health
|
||
```
|
||
|
||
### 2. Train a real ONNX model (optional)
|
||
|
||
```bash
|
||
# Requires Python 3.11/3.12 + scikit-learn + skl2onnx
|
||
pip install scikit-learn skl2onnx pandas
|
||
|
||
# With real XAUUSD H1 OHLCV CSV:
|
||
python python/ml_pipeline/train_onnx.py
|
||
|
||
# Or build the current demo model:
|
||
python python/ml_pipeline/build_onnx_raw.py
|
||
```
|
||
|
||
CSV format: `datetime,open,high,low,close,volume`
|
||
|
||
### 3. MQL5 EA setup
|
||
|
||
1. Open MetaTrader 5
|
||
2. Press `F4` → Open MetaEditor
|
||
3. Create new Expert Advisor `MadTurtle`
|
||
4. Replace generated files with:
|
||
- `MadTurtle.mq5` → `mql5/scripts/`
|
||
- `MadTurtle_API.mqh`, `MadTurtle_MTF.mqh`, `MadTurtle_UI.mqh` → `mql5/include/`
|
||
5. Compile (`F7`)
|
||
|
||
### 4. Run
|
||
|
||
- Attach EA to **XAUUSD H1** chart
|
||
- Set server host/port in inputs (default `127.0.0.1:8000`)
|
||
- Ensure Python server is running before EA starts
|
||
- Configure risk inputs manually (lot size, max positions, confidence threshold)
|
||
|
||
## Features
|
||
|
||
- Real ML inference via ONNX Runtime (no external API calls at runtime)
|
||
- 14 engineered features: returns, SMAs, EMA/MACD, RSI, ATR, volume ratio, range, dist_sma20
|
||
- Multi-class output: BUY / HOLD / SELL with confidence probabilities
|
||
- Multi-timeframe confirmation (H4 + D1 SMA/RSI/MACD filters)
|
||
- Dark-themed UI: status dashboard, P&L metrics, equity curve, signal oscillator, chart arrows
|
||
- No grid, no martingale, no external dependencies at runtime
|
||
|
||
## Risk Management
|
||
|
||
You define all risk parameters in EA inputs:
|
||
- `InpLotSize` — fixed lot per trade
|
||
- `InpMaxPositions` — max simultaneous positions
|
||
- `InpMinConfidence` — minimum model confidence to trade
|
||
- `InpStopLossPts` / `InpTakeProfitPts` — fallback SL/TP if model doesn’t set them
|
||
|
||
## Model Replacement
|
||
|
||
1. Train a new model on real data
|
||
2. Export to `models/xauusd_h1_ensemble.onnx`
|
||
3. Restart Python server — EA picks it up automatically
|
||
|
||
## License
|
||
|
||
MIT — improved upon Mad Turtle concept. Not affiliated with original author.
|