The fractal adaptive moving average indicator changes its own speed. John Ehlers built it to measure how jagged recent price is. A smooth stretch makes the line fast. A jagged one slows it right down.
This build ships as a compiled .ex4 for MT4 and .ex5 for MT5; the screenshots below come from EURUSD H1.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Main price chart |
| Plots | 3: FRAMA, Buy, Sell |
| Alerts | popup, push notification, email, sound |
| Inputs | 9 |
What the Fractal Adaptive Moving Average Indicator draws on the chart
A dodger blue `FRAMA` line sits directly on price.
`Buy` carries arrow 233 and `Sell` carries arrow 234.
Each mark keeps `ArrowOffsetPts` `8` points of clearance.
Nothing opens in a separate pane.
- FRAMA: line, dodger blue, width 2
- Buy: arrow, lime, width 2, arrow code 233
- Sell: arrow, red, width 2, arrow code 234

How the Fractal Adaptive Moving Average Indicator calculates its values
The window splits in half
`FramaPeriod` `16` splits into two halves of eight. Each half contributes its own high to low travel. The whole window contributes a third measure.
Comparing those gives a dimension
Do the two halves together travel much further than the whole window? Then price is jagged. That comparison gives a fractal dimension between one and two, which drives everything else.
Dimension sets the smoothing
A low dimension gives a fast line. A high one gives a slow line. `SlowSC` `200` clamps how slow it may become, which stops the line freezing through a long chop.
How to read the signals
The line hugs price in a clean trend and flattens in a range.
Speed changes without any input from you, which is the whole idea.
`FramaPeriod` `16` must stay an even number for the halves to split.
A flat stretch is information, not a fault.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
`EnableAlerts` controls every signal alert and starts true with `EnablePopup`. Turn on `EnablePushNotify` for a phone buzz, `EnableEmail` for mail, or `EnableSound` to play `SoundFile`. Those three arrive off. Signals report on closed bars.
Every Fractal Adaptive Moving Average Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
FramaPeriod |
FRAMA period (even number). Window length, which must be even, default `16`. | 16 |
SlowSC |
Slow EMA bound (alpha clamp lower). Slowest the line may become, default `200`. | 200 |
Display settings
| Setting | What it does | Default |
|---|---|---|
ArrowOffsetPts |
Arrow offset in points. Clearance between a mark and its wick, in points, default `8`. | 8 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
One control over every signal alert, default `true`. | on |
EnablePopup |
Dialog box on a fresh signal, default `true`. | on |
EnablePushNotify |
Phone buzz on a fresh signal, default `false`. | off |
EnableEmail |
Email on a fresh signal, default `false`. | off |
EnableSound |
Audio cue on a fresh signal, default `false`. | off |
SoundFile |
Audio file the cue uses, default `”alert.wav”`. | alert.wav |

Settings that fit your chart
An adaptive average earns its keep where conditions change. EURUSD H1 is the reference chart, where the line alternates between fast and flat. On M5 the dimension reading gets noisy. Daily bars suit it very well.
When the Fractal Adaptive Moving Average Indicator fails
The fractal dimension is a rough measure, not a precise one.
A flat line during chop still gives back the start of the next move.
`SlowSC` `200` is a clamp, so a very choppy stretch pins the line at its slowest.
Copy the compiled Fractal Adaptive Moving Average Indicator file into your MQL4/Indicators folder, and the MT5 build into MQL5/Indicators, then restart the terminal and drag it onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.
Related on forexmt4systems.com: Moving Average Crossover Strategy.
Download the Fractal Adaptive Moving Average Indicator for MT4 and MT5
The zip holds the compiled Fractal Adaptive Moving Average Indicator build for MT4 and MT5, plus a short README. Compiled files only, no source. Enter your email below and the download link arrives in your inbox.
Download this indicator free
Enter your email and the file is yours. You also get the full MT4 and MT5 library.
FAQ
Why must FramaPeriod 16 be even?
The calculation splits the window into two equal halves. It then compares their travel against the whole. An odd number cannot divide cleanly, so the comparison behind the dimension breaks.
What does the fractal dimension measure?
How jagged recent price is, on a scale between one and two. A straight line approaches one and a completely erratic one approaches two. That single number sets how fast the average moves.
What does SlowSC 200 clamp?
How slow the line may get during a very jagged stretch. Without the clamp the average could effectively stop moving, which would leave it behind when a trend finally starts.
Is FRAMA better than a plain EMA?
It adapts, which a fixed average cannot. That helps in markets that alternate between trending and chopping. It still lags, and in a steady trend a good fixed average can match it.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Fractal Adaptive Moving Average Indicator as one input. Always backtest before trading live.
Category: this is part of our Trend collection. Also, truly, browse more Trend for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- Learn more about the underlying method in Kaufmans Adaptive Moving Average Kama at StockCharts ChartSchool.
- For wider market background, see Moving average on Wikipedia.
