ALMA MACD

Category: Indicators By: Nicolas Created: September 17, 2016, 1:22 PM
September 17, 2016, 1:22 PM
Indicators
7 Comments

This technical indicator is the classical MACD (Moving Average Convergence Divergence) made with ALMA (Arnaud Legoux Moving Average) which formula can be found here in the Library: http://www.prorealcode.com/prorealtime-indicators/alma-arnaud-legoux-moving-average/  , instead of the normal MA.

Since this type of moving average considerably reduce lags, I thought it could be useful to rewrite the MACD with it.

Results are great on chart, the indicator react quickly than the classic MACD. While it can be accurate to detect new turning point of the trend, the false signals are reduced because of its quick adaptation to the price movement.

//PRC_ALMA MACD | indicator
//17.09.2016
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge

//parameters
// Sigma = 4
// Offset = 0.85
// Fast = 12
// Slow = 26
// Signal = 9

Price = customclose

//---Fast MA
m = (Offset * (Fast - 1))
s = Fast/Sigma
WtdSum = 0
CumWt  = 0
for k = 0 to Fast - 1 do
 Wtd = Exp(-((k-m)*(k-m))/(2*s*s))
 WtdSum = WtdSum + Wtd * Price[Fast - 1 - k]
 CumWt = CumWt + Wtd
next
FastMA = WtdSum / CumWt

//---Slow MA
n = (Offset * (Slow - 1))
t = Slow/Sigma
SWtdSum = 0
SCumWt  = 0
for k = 0 to Slow - 1 do
 SWtd = Exp(-((k-n)*(k-n))/(2*t*t))
 SWtdSum = SWtdSum + SWtd * Price[Slow - 1 - k]
 SCumWt = SCumWt + SWtd
next
SlowMA = SWtdSum / SCumWt

//---MACD
ALMAMACD = FastMA-SlowMA

//---Signal MA
n = (Offset * (Signal - 1))
t = Signal/Sigma
SWtdSum = 0
SCumWt  = 0
for k = 0 to Signal - 1 do
 SWtd = Exp(-((k-n)*(k-n))/(2*t*t))
 SWtdSum = SWtdSum + SWtd * ALMAMACD[Signal - 1 - k]
 SCumWt = SCumWt + SWtd
next
SignalMACD = SWtdSum / SCumWt

RETURN ALMAMACD as "ALMA MACD", SignalMACD as "Signal line"

Download
Filename: PRC_ALMA-MACD.itf
Downloads: 529
Nicolas Master
I created ProRealCode because I believe in the power of shared knowledge. I spend my time coding new tools and helping members solve complex problems. If you are stuck on a code or need a fresh perspective on a strategy, I am always willing to help. Welcome to the community!
Author’s Profile

Comments

Logo Logo
Loading...