- MQL5 57.7%
- Python 41.8%
- Jupyter Notebook 0.5%
| Article-22220-Real-Time-Entropy-Trading-System.mqproj | ||
| Entropy.ipynb | ||
| Features.py | ||
| GettingHistData.py | ||
| Model.py | ||
| README.md | ||
| Real-Time Entropy.mq5 | ||
| Server.py | ||
| Train.py | ||
Article-22220-Real-Time-Entropy-Trading-System
This repository is an article-derived reference project based on the original MQL5 article. It does not claim to reproduce the full original source code unless files are explicitly attached.
Overview
This project documents a hybrid MQL5 + Python trading system centered on real-time market entropy analysis. The architecture combines:
- an MQL5 Expert Advisor for tick collection, HTTP communication, and trade execution
- a Python feature-engineering and model-training pipeline
- a Flask inference server for live signal generation
The article describes how Shannon entropy, volatility metrics, RSI, and trend features are transformed into an 8-feature input vector for a neural network that outputs directional probability. A volatility regime detector then adjusts confidence thresholds and trading risk parameters.
Original Article
- Article ID: 22220
- Author: Hlomohang John Borotho
- Publication date: 2026.05.19
- Category: Experts
- URL: https://www.mql5.com/en/articles/22220
Repository Purpose
This repository should be treated as a reference or reconstruction project derived from the article content. Its purpose is to preserve the article’s technical structure and described file layout for:
- studying entropy-based tick-level trading workflows
- understanding MQL5-to-Python inference integration via HTTP
- reconstructing the Python training/inference stack and the MQL5 EA
- serving as a base for further experimentation with adaptive risk logic
Key Concepts
- Shannon entropy on rolling return windows
- volatility entropy from squared returns
- adaptive volatility regime detection
- neural-network directional classification
- feature scaling with
StandardScaler - Flask-based local inference API
- MQL5
WebRequestcommunication - adaptive lot sizing, SL, and TP management
- tick-level execution rather than candle-close logic
Algorithm / Architecture Summary
- Historical data collection
- Python connects to MetaTrader 5 and downloads historical XAUUSD H1 data.
- Data is saved to CSV for offline training.
- Feature engineering
- Compute log returns from recent prices.
- Derive normalized entropy and volatility entropy using percentile-based bins.
- Compute volatility statistics such as standard deviation, MAD, range, skewness, and kurtosis.
- Estimate trend slope and regression
R². - Build an 8-element feature vector including entropy, return statistics, trend metrics, skewness, and normalized RSI.
- Regime detection
- Maintain entropy history in rolling buffers.
- Classify market state as
LOW_VOLATILITY,NORMAL,HIGH_VOLATILITY, orEXTREME_VOLATILITY. - Produce risk multipliers for stop-loss, take-profit, and position sizing.
- Model training
- Use a PyTorch feed-forward network with batch normalization, ReLU, dropout, and sigmoid output.
- Train on rolling-window samples labeled by future return direction over a fixed horizon.
- Save the fitted scaler and best model weights.
- Live inference
- MQL5 EA collects recent tick bid prices and computes RSI.
- EA sends JSON to a local Flask
/predictendpoint. - Flask rebuilds features, detects regime, runs model inference, and returns:
- probability
- entropy metrics
- signal
- regime
- volatility multiplier
- confidence
- Execution
- EA validates confidence, cooldown, current exposure, and reversal rules.
- Orders are placed through
CTrade. - Open positions may have SL/TP adjusted when the regime changes.
Mentioned or Attached Files
Explicitly attached files
The article states that the following files are contained in the archive:
GettingHistData.py— downloads historical XAUUSD H1 data from MetaTrader 5Features.py— feature engineering and volatility regime detectionModel.py— PyTorch neural network definitionTrain.py— training pipeline and scaler/model persistenceServer.py— Flask inference serverEntropy.ipynb— notebook for step-by-step executionReal-Time Entropy.mq5— MQL5 Expert Advisor
Files mentioned in the text
XAUUSD_H1.csv— generated dataset used by the training scriptentropy_model.pth— saved PyTorch model weightsscaler.pkl— saved feature scaler
Statistics
- Article sections described: 6 main sections
- Python components described: 5
- MQL5 components described: 1 EA
- Model input features: 8
- Primary rolling window size: 50
- Training horizon: 5
- Flask endpoint:
/predict - Health endpoint:
/health
Tags
MQL5, MetaTrader5, Python, Flask, PyTorch, Machine-Learning, Entropy, Volatility-Regime, Algorithmic-Trading, Expert-Advisor
Difficulty
Advanced
Requires familiarity with:
- MQL5 EA development
- Python data processing
- PyTorch model training
- REST communication between MetaTrader and local services
- trading/risk-management logic
Limitations
- The repository is derived from article content and should be treated as a reference reconstruction unless the archive files are actually present.
- Publication date and article category were not available in the processed input.
- No performance claims beyond the article description should be assumed.
- The system depends on a local Flask server and MetaTrader 5 environment; deployment details may vary.
- The article describes code and file roles, but full verification of attached source completeness is not possible from the processed input alone.
Reference
Original MQL5 article: https://www.mql5.com/en/articles/22220