# MAMA - Mesa Adaptive Moving Average

This automatically adapting moving average has a period length that is determined by means of various complex calculations. This complex indicator has its origins in publications by John Ehlers. Ehlers calculates cycles for the price movements to determine the length and intensity of single trend phases. Working with the length of the cycles, the weighting factor for the moving average can be established in several different ways.

**FAMA**This indicator is a second line – the name FAMA can be found in various publications. This line is similar to the underlying exponential moving average and can be used as a trigger line.

For more concise information, we recommend that you read Ehler’s paper.

MAMA(double fastLimit, double slowLimit)

MAMA(IDataSeries inSeries, double fastLimit, double slowLimit)

MAMA(double fastLimit, double slowLimit)[int barsAgo]

MAMA(IDataSeries inSeries, double fastLimit, double slowLimit)[int barsAgo]

//Value of the Following Adaptive Moving Average (FAMA)

MAMA(double fastLimit, double slowLimit).Fama[int barsAgo]

MAMA(IDataSeries inSeries, double fastLimit, double slowLimit).Fama[int barsAgo]

**double**

When using this method with an index (e.g.

**MAMA**(0.5,0.05)[**int**barsAgo] ), the value of the indicator will be issued for the referenced bar.inSeries Input data series for the indicator

fastLimit Upper limit for the alpha value

slowLimit Lower limit for the alpha value

MAMA - Mesa Adaptive Moving Average

//Output values for (MAMA)

Print("The current value for the MAMA is " + MAMA(0.5, 0.05)[0]);

//Output values for (FAMA)

Print("The current value for the FAMA is " + MAMA(0.5, 0.05).Fama[0]);

Last modified 1yr ago