RMA/README.md
2026-08-14 00:09:50 +00:00

1.6 KiB

RMA

Daniel Bloch's Relative Moving Average framework, ported into a complete MetaTrader 5 system.

Companion code for the MQL5 article: https://www.mql5.com/en/articles/23693

What it does

RMA measures a moving average against price relative to its own recent range, rather than reading a raw crossover. That normalisation is what lets the same thresholds mean the same thing across symbols and across volatility levels.

The port is a full system rather than a single indicator. The engine computes the curves, a regime detector reads them, a signal engine turns regimes into four distinct strategies, and a trade manager and adverse-move monitor sit between the signals and the account.

RMA_Engine.mq5 and RMA_Panel.mq5 are the chart side. RMA.mq5 is the Expert Advisor. The article reports Strategy Tester results for the four strategies.

Layout

Include/RMA/RmaTypes.mqh        shared types and the buffer contract
Include/RMA/RmaCore.mqh         curve computation
Include/RMA/RegimeDetector.mqh  regime classification
Include/RMA/SignalEngine.mqh    the four strategies
Include/RMA/TradeManager.mqh    order and position handling
Include/RMA/AdverseMonitor.mqh  adverse-move monitoring
Include/RMA/RmaDisplay.mqh      drawing helpers
Indicators/RMA/RMA_Engine.mq5   the engine indicator
Indicators/RMA/RMA_Panel.mq5    the panel
Experts/RMA/RMA.mq5             the Expert Advisor

Attach RMA_Engine.mq5 before the panel, since the panel reads its buffers.

Disclaimer

Educational code. Past behaviour of any model or dataset says nothing about future results. Test on your own data and broker conditions before drawing conclusions.