Files

108 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

# 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 doesnt 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.