# EURUSD 15-Minute ONNX Model Training This directory contains the training script for a EURUSD price prediction model using 15-minute timeframe data from 1990 to 2026 using MetaTrader 5 as the data source. ## Requirements ```bash pip install MetaTrader5 tensorflow scikit-learn pandas numpy tf2onnx onnx tqdm ``` ## Usage 1. **Make sure MetaTrader 5 is running and logged in** 2. **Ensure EURUSD symbol is available in your broker** 3. **Make sure you have historical data downloaded in MT5** (Tools → History Center → Download) 4. **Run the training script:** ```bash cd ai/eurusd1min python main.py ``` ## Configuration The script is configured with: - **Symbol**: EURUSD - **Timeframe**: M15 (15 minutes) - **Lookback**: 60 bars (15 hours of history) - **Date Range**: 1990-01-01 to 2026-01-01 - **Model Architecture**: LSTM with 3 layers (128, 64, 32 units) - **Epochs**: 50 (with early stopping) - **Batch Size**: 64 ## Data Fetching - The script fetches data in **1-month chunks** to manage memory - 15-minute data is more likely to be available for longer historical periods than 1-minute data - The script automatically skips chunks with only 1 bar (invalid/placeholder data) - Progress is shown for each chunk - Make sure you have sufficient historical data in MT5 ## Output The script will create: - `models/EURUSD_M15_model.onnx` - The trained ONNX model - `models/EURUSD_M15_model_scaler.pkl` - The MinMaxScaler used for normalization ## Model Features The model uses 13 features: 1. Open 2. High 3. Low 4. Close 5. Tick Volume 6. RSI (14 period) 7. EMA 20 8. EMA 50 9. ATR (14 period) 10. Price Change (percentage) 11. High/Low Ratio 12. Volume MA (20 period) 13. Volume Ratio ## Model Output The model predicts the **price change percentage** for the next bar (15 minutes ahead). ## Notes - Training on 36 years of 15-minute data will take significant time and memory - The script fetches data in 1-month chunks to manage memory - Chunks with only 1 bar are automatically skipped (invalid/placeholder data) - Early stopping and learning rate reduction are enabled to prevent overfitting - The model uses dropout (0.3) for regularization - 15-minute data is more manageable than 1-minute data for long historical periods ## Using the Model in MQL5 ### Expert Advisor An Expert Advisor (`EURUSD_M15_EA.mq5`) is provided in this directory. It uses the trained ONNX model for automated trading. **Setup:** 1. Copy `EURUSD_M15_model.onnx` to `MQL5/Files/` directory 2. Compile `EURUSD_M15_EA.mq5` in MetaEditor 3. The model will be embedded as a resource during compilation 4. Attach the EA to a EURUSD chart with M15 timeframe **Features:** - Embedded ONNX model (no file path issues) - Dynamic SL/TP based on prediction, confidence, and ATR - Configurable prediction threshold and confidence filter - Automatic position management **Input Parameters:** - `InpLookback`: 60 bars (15 hours of history) - `InpUsePredictedSLTP`: Use dynamic SL/TP based on prediction - `InpPredictionThreshold`: Minimum prediction change to trade (default: 0.00005 = 0.005%) - `InpMinConfidence`: Minimum confidence to trade (default: 0.1 = 10%)