Stock Portfolio Organizer

The ultimate porfolio management solution.

Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

HEIKIN ASHI CANDLESTICK OSCILLATOR for Amibroker (AFL)

Rating:
2 / 5 (Votes 3)
Tags:
oscillator, amibroker

In the article “Trading With The Heikin-Ashi Candlestick Oscillator”, author Sylvain Vervoort presents an oscillator derived from a transformation of a Heikin-Ashi charting technique originally introduced by Dan Valcu in a Stocks & Commodities article in 2004.

The formula is presented in Listing 1. To use it, simply enter the code in the AmiBroker Formula Editor, then choose Tools→Apply Indicator menu from the editor. You can use the Parameters window (available from the right-click menu) to set the period for the Tema filter and to switch the chart type.

Below is a daily chart of General Electric (GE) with a red background indicating short positions and green indicating long positions. The upper pane shows the HACO binary wave.

Screenshots

Similar Indicators / Formulas

3 Days Track
Submitted by janet0211 almost 14 years ago
Trading Volume Statistic
Submitted by tuanstock1 almost 10 years ago
Ergodic Oscillator
Submitted by dljtrader over 13 years ago
BoH Risk Aversion Indicator
Submitted by genkumag over 12 years ago
Chande Momentum Oscillator
Submitted by klimpek over 13 years ago
%R ++
Submitted by reb almost 14 years ago

Indicator / Formula

Copy & Paste Friendly
function ZeroLagTEMA( array, period ) 
{ 
 TMA1 = TEMA( array, period ); 
 TMA2 = TEMA( TMA1, period ); 
 Diff = TMA1 - TMA2; 
 return TMA1 + Diff ; 
} 

///////////////////// 
// Heikin-Ashi code 
HaClose = (O+H+L+C)/4; 
HaOpen = AMA( Ref( HaClose, -1 ), 0.5 ); 

avp = Param("Up TEMA avg", 34, 1, 100 ); 
avpdn = Param("Dn TEMA avg", 34, 1, 100 ); 

// Velvoort is using not original, but modified Heikin-Ashi close 
HaClose = ( HaClose + HaOpen + Max( H, HaOpen ) + Min( L, HaOpen ) )/4; 

// up average 
ZlHa = ZeroLagTEMA( HaClose, avp ); 
ZlCl = ZeroLagTEMA( ( H + L ) / 2, avp ); 
ZlDif = ZlCl - ZlHa; 

keep1 = Hold( HaClose >= HaOpen, 2 ); 
keep2 = ZlDif >= 0; 
keeping = keep1 OR keep2; 
keepall = keeping OR ( Ref( keeping, -1 ) AND ( C > O ) OR C >= Ref( C, -1 ) ); 
keep3 = abs( C - O ) < ( H - L ) * 0.35 AND H >= Ref( L, -1 ); 
utr = keepall OR ( Ref( keepall, -1 ) AND keep3 ); 

// dn average 
ZlHa = ZeroLagTEMA( HaClose, avpdn ); 
ZlCl = ZeroLagTEMA( ( H + L ) / 2, avpdn ); 
ZlDif = ZlCl - ZlHa; 

keep1 = Hold( HaClose < HaOpen, 2 ); 
keep2 = ZlDif < 0; 
keeping = keep1 OR keep2; 
keepall = keeping OR ( Ref( keeping, -1 ) AND ( C < O ) OR C < Ref( C, -1 ) ); 
keep3 = abs( C - O ) < ( H - L ) * 0.35 AND L <= Ref( H, -1 ); 
dtr = keepall OR ( Ref( keepall, -1 ) AND keep3 ); 

upw = dtr == 0 AND Ref( dtr, -1 ) AND utr; 
dnw = utr == 0 AND Ref( utr, -1 ) AND dtr; 

Haco = Flip( upw, dnw ); 


if( ParamToggle("Chart Type", "Price with color back|HACO wave" ) ) 
{ 
 Plot( Haco, "Haco", colorRed ); 
} 
else 
{ 
 Plot( C, "Close", colorBlack, 
       ParamStyle( "Style", styleCandle, maskPrice ) ); 
 Plot( 1, "", IIf( Haco , colorPaleGreen, colorRose ), 
       styleArea | styleOwnScale, 0, 1 ); 
}

0 comments

Leave Comment

Please login here to leave a comment.

Back