Download MetaTrader 5

Watch how to download trading robots for free

Interesting script?
So post a link to it -
let others appraise it

You liked the script? Try it in the MetaTrader 5 terminal

2010.02.03 14:01

Fractal Adaptive Moving Average (FrAMA) - indicator for MetaTrader 5

| English Русский 中文 Español Deutsch 日本語 Português

votes: 24
frama.mq5 (5.23 KB)view

Fractal Adaptive Moving Average technical Indicator (FRAMA) was developed by John Ehlers.

This indicator is constructed based on the algorithm of the Exponential Moving Average, in which the smoothing factor is calculated based on the current fractal dimension of the price series. The advantage of FRAMA is the possibility to follow strong trend movements and to sufficiently slow down at the moments of price consolidation.

All types of analysis used for Moving Averages can be applied to this indicator.

Fractal Adaptive Moving Average Indicator

Fractal Adaptive Moving Average Indicator


FRAMA(i) = A(i) * Price(i) + (1 - A(i)) * FRAMA(i-1)


  • FRAMA(i) - current value of FRAMA;
  • Price(i) - current price;
  • FRAMA(i-1) - previous value of FRAMA;
  • A(i) - current factor of exponential smoothing.

Exponential smoothing factor is calculated according to the below formula:

A(i) = EXP(-4.6 * (D(i) - 1))


  • D(i) - current fractal dimension;
  • EXP() - mathematical function of exponent.

Fractal dimension of a straight line is equal to one. It is seen from the formula that if D = 1, then A = EXP(-4.6 *(1-1)) = EXP(0) = 1. Thus if price changes in straight lines, exponential smoothing is not used, because in such a case the formula looks like this:

FRAMA(i) = 1 * Price(i) + (1 - i) * FRAMA(i-1) = Price(i)

I.e. the indicator exactly follows the price.

The fractal dimension of a plane is equal to two. From the formula we get that if D = 2, then the smoothing factor A = EXP(-4.6*(2-1)) = EXP(-4.6) = 0.01. Such a small value of the exponential smoothing factor is obtained at moments when price makes a strong saw-toothed movement. Such a strong slow-down corresponds to approximately 200-period simple moving average.

Formula of fractal dimension:

D = (LOG(N1 + N2) - LOG(N3))/LOG(2)

It is calculated based on the additional formula:

N(Length,i) = (HighestPrice(i) - LowestPrice(i))/Length


  • HighestPrice(i) - current maximal value for Length periods;
  • LowestPrice(i) - current minimal value for Length periods;

Values N1, N2 and N3 are respectively equal to:

N1(i) = N(Length,i)
N2(i) = N(Length,i + Length)
N3(i) = N(2 * Length,i)

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

The Acceleration/Deceleration Indicator (AC) measures acceleration and deceleration of the current driving force.

Average Directional Movement Index (ADX) Average Directional Movement Index (ADX)

The Average Directional Movement Index Indicator (ADX) helps to determine if there is a price trend.

Example of MACD Automated Example of MACD Automated

Code example of MACD automated with advanced money management function.

Pivot Star Pivot Star

Pivot indicator. Standard, Fibonacci, Camarilla, Woody's, Demark. Calculates pivot points from previous bar of chosen period (M5 - MN).