DasanC

MESA Adaptive Moving Average

DasanC Updated   
Intro
One of Ehlers most well-known indicators! I've seen many variations of this on TradingView, however, none seem to be true to the original released by Ehlers himself.
I've taken it upon myself to simply translate the MAMA into Pinescript, instead of re-writing like some others have done.

You can use it as a very effective & adaptive moving average with other signals or
as a standalone signal.

In the case that you're going to use it for signals and not simple technical trading (non-quantitative),
I've also added a threshold parameter to filter out weak signals.

My MAMA indicator is different from others in very simple ways - I don't use the nz() command, which sets all "Not a Number" values to 0. In others' scripts, you immediately load the indicator with several 0 values,
causing a slight lag in future calculations since this code is recursive (refers to previous values it generated).

In my version, I simply wait until the script has access to all the bar data it needs, instead of instantly performing calculations and
setting erroneous values to 0. In this case, we start with the correct values (or closer to correct).

If you want to compare this indicator the current most popular MAMA by LazyBear, you'll notice it often gives buy and sell crosses one bar earlier than theirs.

Setting Parameters
  • Source - the data series to perform calculations on. (Initially, Ehlers himself favored hl/2, but conceded that there isn't empirical benefit over close.)
  • Fast Limit - controls how quickly the MAMA will "ratchet up" fast price action. (Higher values are faster)
  • Slow Limit - controls how closely the FAMA will follow the MAMA. (Again, higher is faster. You typically want the FAMA to be slower though.)
  • Crossover Threshold - simple error thresholding to limit the number of weak trade signals. (Lower means lower tolerance)
  • Show Crosses? - show/hide the arrows at moving average crosses
Release Notes:
Forgot to convert one Trig operation to Radians
Release Notes:
Update as requested by user @ant187:
- You now have the option to fill the area between the moving averages (disabled by default)
Release Notes:
An additional quick update to change the fill color based on the crossover status.
-Default is red and blue, with a transparency of 90%
Release Notes:
LOTs of changes here!
  • Updated to Pinescript version 4.0
  • Removed confusing settings
  • Added Multi-timeframe plotting support (defaults to current chart timeframe)
  • Bug fixes with logic

Need Indicators/Strategies for TradingView? -> t.me/pinescripters_jobs
General questions about Pinescript? -> t.me/pinescripters
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?