MESA Adaptive Moving Average (MAMA)
Created by John Ehlers, the MAMA indicator is a 5-period adaptive moving average of high/low price that uses classic electrical radio-frequency signal processing algorithms to reduce noise. [Discuss] 💬

// C# usage syntax
IEnumerable<MamaResult> results =
quotes.GetMama(fastLimit, slowLimit);
Parameters
fastLimit double - Fast limit threshold. Must be greater than slowLimit and less than 1. Default is 0.5.
slowLimit double - Slow limit threshold. Must be greater than 0. Default is 0.05.
Historical quotes requirements
You must have at least 50 periods of quotes to cover the warmup and convergence periods.
quotes is a collection of generic TQuote historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See the Guide for more information.
Response
IEnumerable<MamaResult>
- This method returns a time series of all available indicator values for the
quotesprovided. - It always returns the same number of elements as there are in the historical quotes.
- It does not return a single incremental indicator value.
- The first
5periods will havenullvalues forMamasince there’s not enough data to calculate.
âšž Convergence warning: The first
50periods will have decreasing magnitude, convergence-related precision errors that can be as high as ~5% deviation in indicator values for earlier periods.
MamaResult
Date DateTime - Date from evaluated TQuote
Mama decimal - MESA adaptive moving average (MAMA)
Fama decimal - Following adaptive moving average (FAMA)
Utilities
See Utilities and helpers for more information.
Chaining
This indicator may be generated from any chain-enabled indicator or method.
// example
var results = quotes
.Use(CandlePart.HL2)
.GetMama(..);
Results can be further processed on Mama with additional chain-enabled indicators.
// example
var results = quotes
.GetMama(..)
.GetRsi(..);