Stock Portfolio Organizer
The ultimate porfolio management solution.
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
HEIKIN ASHI CANDLESTICK OSCILLATOR for Amibroker (AFL)
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
Indicator / Formula
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