# MAMA - Mesa Adaptive Moving Average

#### Description

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.

#### Interpretation

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

General information about moving averages can be found here: Moving Averages.

#### Usage

``````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]``````

#### Return value

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.

#### Parameters

inSeries Input data series for the indicator

fastLimit Upper limit for the alpha value

slowLimit Lower limit for the alpha value

#### Example

``````//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 updated