Holt EMA

Category: Indicators By: Nicolas Created: December 29, 2016, 1:22 PM
December 29, 2016, 1:22 PM
Indicators
1 Comment

The Holt EMA indicator return the Holt method of smoothing an exponential average.

You’ll find in this post 2 different indicators: the first one is the Holt EMA displayed in only one color and compatible with prorealtime 10.2. The second one is the same moving average but displayd with different colors accordingly to its slope in degrees, I explain it below the first indicator code.

Coded by request on French forums.

//PRC_Holt EMA | indicator
//28.12.2016
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
//Converted from EasyLanguage version

// --- parameters
// gmma = 40
// alpha = 20
// ---

price = customclose

if alpha > 1 then
 myalpha = 2.0/(alpha+1.0)
else
 myalpha = alpha
endif
if gmma > 1 then
 mygamma = 2.0/(gmma+1)
else
 mygamma = gmma
endif

If barindex = 1 then
 value1 = price
 b = 0.0
else
 value1 = (1-myalpha)*(value1[1] + b[1]) + myalpha*price
 b = (1-mygamma)*b[1] + mygamma*(value1 - value1[1])
endif

HoltEMA = value1

return HoltEMA

 

The code uses the Holt EMA as a function, measures its slope in degrees and returns the moving average of different colors according to its degree of inclination. The ITF file of the indicator and an example of how it looks o chart is attached.

The formula of measuring the slope in degrees is rather nice I must admit. I can use it to make it rather a dynamic variation of the color in RGB type “rainbow”, because here we use only 5 different colors according to inclination of the slope and conditions tested on “angle1 ” and “angle2 “which are 2 parameterizable variables however. In short, a good exercise and a new addition to the library of codes for the happiness of all. I leave everyone to look at what it returns, I have not well understood if the Holt EMA has some interest on my side.
Attention this indicator with variation of color is compatible only version 10.3.

//PRC_Holt EMA Slope color | indicator
//28.12.2016
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
//Converted from EasyLanguage version

// --- parameters
//gmma = 40
//alpha = 20
//angle1 = 30
//angle2 = 60
// ---

price = customclose

if alpha > 1 then
 myalpha = 2.0/(alpha+1.0)
else
 myalpha = alpha
endif
if gmma > 1 then
 mygamma = 2.0/(gmma+1)
else
 mygamma = gmma
endif

If barindex = 1 then
 value1 = price
 K = 0.0
else
 value1 = (1-myalpha)*(value1[1] + K[1]) + myalpha*price
 K = (1-mygamma)*K[1] + mygamma*(value1 - value1[1])
endif

HoltEMA = value1

slope = atan((value1-(value1[1]+value1[2])/2)/1.5/ticksize)

condition2 = slope >= angle2
condition3 = slope >= angle1
condition4 = slope <= -1*angle2
condition5 = slope <= -1*angle1

//base color =
r=255
g=255
b=0

//conditionnal colors =
if condition2 then
 r=0
 g=102
 b=0
elsif condition3 then
 r=153
 g=255
 b=153
elsif condition4 then
 r=153
 g=0
 b=0
elsif condition5 then
 r=255
 g=153
 b=153
endif

return HoltEMA coloured(r,g,b) as "Holt EMA"

 

Download
Filename: PRC_Holt-EMA.itf
Downloads: 169
Download
Filename: PRC_Holt-EMA-Slope-color.itf
Downloads: 208
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...