John Ehlers Adaptive Stochastic

Category: Indicators By: Horance Created: September 7, 2018, 7:29 AM
September 7, 2018, 7:29 AM
Indicators
0 Comments

This is an implementation of John Ehlers’ Adaptive Stochastic, as described in his book Rocket Science for Traders: Digital Signal Processing Applications (2001-07-20).

// Adaptive Stochastic
// Rocket Science for Traders: Digital Signal Processing Applications
// 2001-07-20 John F. Ehlers

Price = (high+low)/2
CycPart = .5

If BarIndex > 5 then
	Smooth = (4*Price + 3*Price[1] + 2*Price[2] + Price[3]) / 10
	Detrender = (.0962*Smooth + .5769*Smooth[2] - .5769*Smooth[4] - .0962*Smooth[6])*(.075*Period[1] + .54)

	// Compute InPhase and Quadrature components
	Q1 = (.0962*Detrender + .5769*Detrender[2] - .5769*Detrender[4] - .0962*Detrender[6])*(.075*Period[1] + .54)
	I1 = Detrender[3]

	// Advance the phase of I1 and Q1 by 90 degrees
	j1 = (.0962*I1 + .5769*I1[2] - .5769*I1[4] - .0962*I1[6])*(.075*Period[1] + .54)
	jQ = (.0962*Q1 + .5769*Q1[2] - .5769*Q1[4] - .0962*Q1[6])*(.075*Period[1] + .54)

	// Phasor addition for 3 bar averaging
	I2 = I1 - jQ
	Q2 = Q1 + j1

	// Smooth the I and Q components before applying the discriminator
	I2 = .2*I2 + .8*I2[1]
	Q2 = .2*Q2 + .8*Q2[1]

	// Homodyne Discriminator
	Re = I2*I2[1] + Q2*Q2[1]
	Im = I2*Q2[1] - Q2*I2[1]
	Re = .2*Re + .8*Re[1]
	Im = .2*Im + .8*Im[1]
	If Im <> 0 and Re <> 0 then
		Period = 360/ATAN(Im/Re)
	Endif
	If Period > 1.5*Period[1] then
		Period = 1.5*Period[1]
	Endif
	If Period < .67*Period[1] then
		Period = .67*Period[1]
	Endif
	If Period < 6 then
		Period = 6
	Endif
	If Period > 50 then
		Period = 50
	Endif
	Period = .2*Period + .8*Period[1]
	SmoothPeriod = .33*Period + .67*SmoothPeriod[1]

	HH = High
	LL = Low
	For count = 0 to ROUND(CycPart*SmoothPeriod) - 1 do
		If High[count] > HH then
			HH = High[count]
		Endif
		If Low[count] < LL then
			LL = Low[count]
		Endif
	Next
	If HH - LL <> 0 then
		Stoc = (Close - LL) / (HH - LL)
	Endif
Endif

Return Stoc as "Stochastic"

The attached screenshot shows George Lane’s Stochastic (black) and John Ehlers’ Adaptive Stochastic (red).

Download
Filename: John-Ehlers-AdaptiveStochastic.itf
Downloads: 193
Horance Senior
This author is like an anonymous function, present but not directly identifiable. More details on this code architect as soon as they exit 'incognito' mode.
Author’s Profile

Comments

Logo Logo
Loading...