Examples from the book Neural networks for algorithmic trading with MQL5
Find a file
2026-02-23 10:05:09 +02:00
Experts convert 2025-05-30 16:12:30 +02:00
Include convert 2025-05-30 16:12:30 +02:00
KIYA convert 2025-05-30 16:12:30 +02:00
Scripts convert 2025-05-30 16:12:30 +02:00
Book_Algo-MQL5-clear.png new files added 2026-02-18 15:14:17 +02:00
NeuroBook.mqproj convert 2025-05-30 16:12:30 +02:00
README.md links 2026-02-23 10:05:09 +02:00

Neural Networks for Algorithmic Trading with MQL5

Examples and source code from the book Neural Networks for Algorithmic Trading with MQL5 - author Dmitriy Gizlyk

This repository serves as a practical addition to the book. It contains ready-to-use scripts for data preparation and model training, a neural network library for MQL5, examples of CNN / LSTM / Attention / GPT-like architectures, and a trading advisor template for testing models in real market conditions via MetaTrader 5.

MQL5 Programming for Traders

Contents

  • MQL5 Neural Network Library (Core): Include/realization/
    Implementation of networks, layers, and auxiliary components (including OpenCL support and positional encoding).
  • Activation Functions: Include/about_ai/activation/ (activations.mqh, activations.py)
  • Dataset Preparation for Training and Testing: Scripts/initial_data/
    Script create_initial_data.mq5 generates file study_data.csv and test_data.csv in MQL5/Files.
  • Models and Tests (MQL5 + Python):
    • Perceptron and gradient check: Scripts/perceptron/
    • Convolutional Neural Networks (CNN): Scripts/convolution/
    • Recurrent Networks (LSTM): Scripts/rnn/
    • Self-Attention / Multi-Head (examples): Scripts/attention/
    • Batch Normalization: Scripts/batch_norm/
    • Dropout: Scripts/dropout/
    • GPT-like architecture (example): Scripts/gpt/
  • OpenCL Acceleration / Performance Testing:
    Scripts/opencl_test.mq5, Include/algotrading/mult_vect_ocl.*
  • Trading Expert Advisor Template for applying .net models: Experts/ea_template.mq5
  • Python Template for Experiments: Scripts/template.py (TensorFlow/Keras + MetaTrader5)

Repository Structure

NeuroBook/
├─ Experts/
│  └─ ea_template.mq5
├─ Include/
│  ├─ about_ai/activation/          # activation functions (MQL5 + Python)
│  ├─ algotrading/                  # OpenCL utilities (multiplication example)
│  └─ realization/                  # neural network and layer implementations in MQL5
├─ Scripts/
│  ├─ initial_data/                 # data preparation (CSV in MQL5/Files)
│  ├─ perceptron/                   # Perceptron + gradient check
│  ├─ convolution/                  # CNN examples + gradient check
│  ├─ rnn/                          # LSTM examples + gradient check
│  ├─ attention/                    # attention / multi-head attention
│  ├─ batch_norm/                   # batch norm
│  ├─ dropout/                      # dropout
│  ├─ gpt/                          # GPT-like example
│  ├─ opencl_test.mq5               # CPU vs OpenCL speed comparison
│  └─ template.py                   # Python training/testing template
├─ KIYA/                            # standalone mini-project/scaffold (mqproj)
└─ NeuroBook.mqproj                 # MetaEditor project

Table of Contents by Book Chapters

Below is a “map” of the chapters and where to find the corresponding examples in this repository.

Chapter 1 — Neural Network Building Blocks

  • Activation functions, core AI concepts, and laying the foundation.
    📁 Include/about_ai/activation/

Chapter 2 — MetaTrader 5 Capabilities for Algorithmic Trading

  • Practical use of MT5 tools, computation acceleration, and more.
    📁 Scripts/opencl_test.mq5, Include/algotrading/, Include/realization/opencl.*

Chapter 3 — Your First MQL5 Model: Data → Model → Test

  • Dataset preparation, training, and saving the model.
    📁 Scripts/initial_data/, Scripts/perceptron/

Chapter 4 — Core Layer Types: Convolutions and Recurrent Networks

  • CNN and LSTM: implementation and testing.
    📁 Scripts/convolution/, Scripts/rnn/

Chapter 5 — Attention Mechanisms

  • Self‑Attention and Multi‑Head Self‑Attention, advanced data analysis techniques.
    📁 Scripts/attention/, Include/realization/neuronattention.mqh, neuronmhattention.mqh
    Additionally: a GPT‑like architecture example: 📁 Scripts/gpt/, Include/realization/neurongpt.mqh

Chapter 6 — Improving Convergence: BatchNorm and Dropout

  • Practical stabilization and regularization techniques.
    📁 Scripts/batch_norm/, Scripts/dropout/

Chapter 7 — Testing Trading Strategies with Trained Models

  • Using models inside an Expert Advisor and validating them under live-like conditions.
    📁 Experts/ea_template.mq5
    Recommended to test in the Strategy Tester

Quick Start

1) Install into MetaTrader 5

  1. Open MetaTrader 5 → File → Open Data Folder
  2. Go to the MQL5 directory
  3. Copy the repository contents (Experts / Include / Scripts / …) into your MQL5/ folder
  4. Open MetaEditor (F4) and compile the required files (F7)

Tip: it’s more convenient to work via NeuroBook.mqproj — open the project in MetaEditor and compile directly from the project tree.

2) End-to-end example: data → training → Expert Advisor

Step A. Generate datasets (CSV) Run the script:

  • Scripts/initial_data/create_initial_data.mq5

By default, it will create:

  • MQL5/Files/study_data.csv — training dataset
  • MQL5/Files/test_data.csv — test dataset

⚠️ Important:

  • before running, make sure the terminal has historical quotes downloaded for the selected period;
  • the script uses standard indicators (RSI/MACD) and a ZigZag example.

Step B. Train the model in MQL5 and save .net For example, run:

  • Scripts/perceptron/perceptron_test.mq5

After completion it saves (example):

  • MQL5/Files/Study.net — the model file and an error/loss log (example):
  • MQL5/Files/loss_study.csv

Step C. Use the model in an Expert Advisor Compile and run:

  • Experts/ea_template.mq5

Key input parameters in ea_template:

  • Model — model file name (e.g., Study.net)

  • Commonwhere to look for the model file

    • false: MQL5/Files of the current terminal (training scripts typically save models here)
    • true: the terminal’s common folder (FILE_COMMON) if you store models there
  • UseOpenCL — enable OpenCL (if supported)

  • TimeFrame, BarsToPattern, and trading parameters — adjust to your testing idea

Then test in the Strategy Tester: https://www.metatrader5.com/en/automated-trading/strategy-tester

Python Part (Optional)

This repository includes Python scripts for experimentation and cross-checking approaches, including a template:

  • Scripts/template.py

It:

  • connects to the installed terminal via the MetaTrader5 module,
  • reads study_data.csv and test_data.csv from MQL5/Files,
  • trains a model in TensorFlow/Keras,
  • saves model.h5 back into MQL5/Files.

Typical dependencies (example):

pip install MetaTrader5 pandas numpy matplotlib tensorflow

More details on terminal and environment settings

OpenCL

Many examples can be accelerated with OpenCL (the UseOpenCL parameter). To benchmark performance, use Scripts/opencl_test.mq5 (CPU vs OpenCL comparison).

If OpenCL fails to initialize, check your GPU/CPU drivers and OpenCL support on your system.

Notes

  • All examples are intended for learning and experimentation.
    Always test thoroughly in the Strategy Tester or on a demo account before using real funds.

  • The Scripts/Python folder contains examples for integrating MetaTrader 5 with Python.
    Make sure to enable the appropriate terminal settings:

License and Usage

All materials are part of the book "MQL5 Programming for Traders" and the MQL5/MetaTrader 5 ecosystem. Please respect copyright and the MQL5.com/MetaQuotes terms when distributing or reusing code.

Contributing

  • Bugs/improvements: use Issues.
  • Pull Requests: welcome. Submit changes by part for easier review and alignment with the book.