3.7 KiB
3.7 KiB
MetaTrader 5 ONNX EA Setup Guide
Quick Start
-
Copy Model Files to MT5
- Copy
models/XAUUSD_H1_model.onnxto:MT5_Data_Folder/MQL5/Files/models/ - The EA will look for the model at:
models\XAUUSD_H1_model.onnx
- Copy
-
Compile the EA
- Open
ai/ONNX_EA.mq5in MetaEditor - Press F7 to compile
- Check for any errors
- Open
-
Attach to Chart
- Open XAUUSD H1 chart in MT5
- Drag
ONNX_EA.ex5from Navigator to chart - Configure parameters (see below)
Model Information
- Model Type: LSTM Neural Network
- Input: 60 bars × 13 features
- Output: Price change percentage (e.g., -0.003 = -0.3% decrease)
- Features: OHLC, volume, RSI, EMA20, EMA50, ATR, price_change, high_low_ratio, volume_ma, volume_ratio
EA Parameters
ONNX Model Settings
- InpModelPath:
models\\XAUUSD_H1_model.onnx(path relative to MQL5/Files/) - InpLookback:
60(must match training) - InpUsePrediction:
true(enable/disable predictions)
Trading Settings
- InpLotSize:
0.01(start small for testing) - InpMagicNumber:
123456(unique identifier) - InpSlippage:
3(points) - InpStopLoss:
50(pips) - InpTakeProfit:
100(pips)
Prediction Settings
- InpPredictionThreshold:
0.00005(0.005% as decimal, minimum change to trade) - InpUseConfidence:
true(enable confidence filter) - InpMinConfidence:
0.1(10% minimum confidence)
Important Notes
Feature Normalization
⚠️ The EA uses simplified normalization that may not exactly match training.
For best results:
- The training script saves a scaler (
XAUUSD_H1_scaler.pkl) - You should implement the same MinMaxScaler logic in MQL5
- Or export scaler parameters (min/max) from Python and use in MQL5
Current implementation uses:
- OHLC: Raw values (should be normalized by scaler)
- Volume: Divided by 1,000,000
- RSI: Divided by 100
- EMAs/ATR: Normalized differences
- Price change: Percentage
- Volume MA: Divided by 1,000,000
Prediction Format
The new model predicts price change percentage directly:
- Example:
-0.003= price will decrease by 0.3% - Old format (absolute price) is also supported for backward compatibility
Testing Recommendations
-
Start with Strategy Tester
- Use Visual Mode to see predictions
- Check Expert tab for prediction logs
- Verify predictions make sense
-
Monitor Logs
- Check "Experts" tab for prediction values
- Verify confidence calculations
- Watch for any errors
-
Adjust Parameters
- If too many trades: Increase
InpPredictionThresholdorInpMinConfidence - If no trades: Decrease thresholds
- Adjust stop loss/take profit based on volatility
- If too many trades: Increase
Troubleshooting
"Failed to load ONNX model"
- Check model path is correct
- Ensure model file exists in
MQL5/Files/models/ - Check file permissions
"Failed to prepare input data"
- Ensure enough historical data (need 60+ bars)
- Check indicator calculations
- Verify symbol is XAUUSD
"Empty output from ONNX model"
- Check model input shape matches (1, 60, 13)
- Verify feature preparation matches training
- Check ONNX runtime version compatibility
Predictions seem wrong
- Feature normalization may not match training
- Implement proper MinMaxScaler from training
- Check feature order matches training (13 features in correct order)
Model Training Info
- Training Date: 2026-01-06
- Training MAE: 0.0013 (0.13%)
- Validation MAE: 0.0018 (0.18%)
- Data Period: Last 2 years
- Timeframe: H1
Next Steps
- Test in Strategy Tester first
- Compare predictions with Python backtest
- Adjust parameters based on results
- Consider implementing proper scaler normalization
- Test on demo account before live trading