[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EquisMetaStock Group] Re: HEIKIN-ASHI CANDLESTICK OSCILLATOR



PureBytes Links

Trading Reference Links

Ed, 

When the Heikin-Ashi work first came out I spent a lot of time going 
through the formula. Since we had not figured out how to master the 
display in Metastock by formula or DLL at that point, my only 
recourse was to use an altered excel file of the data. Crude but it 
worked. 

Taking a closer look at the work I came to the conclusion that a 
couple of short term moving averages worked just as well. Sadly, that 
is the case with most of the TA methods that I have come across. 
Somewhere we have been led to believe that all we need to make a buck 
is the holy grail of indicators and we too can make millions. Not the 
case at all...neither the indicator nor the million.

If you are planning on making money trading you will have to include 
fundametal analysis and opportunity. At a recent Senate hearing on 
the toxic funds debacle there was a testimony given by a well known 
hedge fund CEO. His statement was a real eye opener. He basically 
said that once his firm had found something that they planned to 
invest in that they would wait for months until the right opportunity 
came along before putting their money in. Their returns by the way 
were one of the best in the industry.

As far as a Kalman, here is one that I found:

{Kalman Filter}
{Advantage Systems: www.advantage.online.pl}
PRICEE:=C;
Smooth:=.13785*(2*PriceE - Ref(PriceE,-1)) +
.0007*(2*Ref(PriceE,-1) - Ref(PriceE,-2)) +
.13785*(2*Ref(PriceE,-2) -Ref(PriceE,-3)) + 
1.2103*PREV - .4867*Ref(PREV,-1);
SMOOTH;


I've never heard of Difussion Indicators so I really can't comment on 
them.

Your Modified Heikin-Ashi looks very much like a stochastic of the 
daily typical price with the open included.


Preston

  


 

--- In equismetastock@xxxxxxxxxxxxxxx, "Ed Hoopes" <reefbreak_sd@xxx> 
wrote:
>
> The original H-A algorithm has so little smoothing that it is often
> modified -  usually adding more smoothing.
> 
> Here is another modified H-A indicator from a TASC article a few 
years
> ago.  Note that while the framework is AB Formula Language, the 
actual
> calculations are done in JavaScript which can be invoked from 
within *.afl
> 
> (The JavaScript language is embedded in the Windows operating 
system.)
> 
> ********************************
> // Modified Heikin-Ashi  Translated from EasyLanguage code
> // Ed Hoopes
> // July 2005
> 
> 	EnableScript( "jscript");
> 
> 	haClose   = (Open+High+Low+Close)/4;
> 	haOpen[0] = Open[0];
> 	
> 	for (e = 1; e < BarCount; e++)
> 	{ 
> 		haOpen[e] = (Open[e - 1] + haClose[e - 1]) / 2;
> 	}
> 
> 	<%  // JavaScript now;
> 
> 	JShaClose = VBArray( AFL( "haClose" ) ).toArray();
> 	JShaOpen  = VBArray( AFL( "haOpen"  ) ).toArray();
> 	JSHigh    = VBArray( AFL( "High"    ) ).toArray();
> 	JSLow     = VBArray( AFL( "Low"     ) ).toArray();
> 
> 	haHigh    = new Array();
> 	haLow     = new Array();
> 	haColor   = new Array();
> 
> // Load the haHigh and haLow arrays and assign a color to each bar;
> 	for (f = 0; f < JShaClose.length; f++)
> 	{ 
> 		haHigh[f] = Math.max( JSHigh[f], JShaOpen[f], 
JShaClose[f] ); 
> 		haLow[f] = Math.min(  JSLow[f], JShaOpen[f], JShaClose
[f] ); 
> 		if(JShaClose[f] > JShaOpen[f]) haColor[f] = 1.00; 
else haColor[f] =
> 0.00;
> 	}
> 
> 	for (g = 7; g < JShaClose.length; g++)
> 	{
> 		for(k = -6; k < 0; k++ )
> 		{ 
> 	   if(		
> 		 ( JShaOpen[g] <= Math.max( JShaOpen[g + k], JShaClose
[g + k] )) && 
> 		 ( JShaOpen[g] >= Math.min( JShaOpen[g + k], JShaClose
[g + k] )) &&
> 		 (JShaClose[g] <= Math.max( JShaOpen[g + k], JShaClose
[g + k] )) && 
> 		 (JShaClose[g] >= Math.min( JShaOpen[g + k], JShaClose
[g + k] ))  )
> 			 haColor[g] = haColor[g + k];
>  		}
> 		
> 	}
> 
> 
> 	AFL( "haHigh"  ) = haHigh;
> 	AFL( "haLow"   ) = haLow;
> 	AFL( "haColor" ) = haColor;
> 
> 	%>  //End of JavaScript;
> 
> PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, "H-A Mod" + Name(),
> IIf(haColor == 0, colorRed, colorLime), styleCandle );
> 
> *********************************
> 
> 
> 
> 
> 
> 
> --- In equismetastock@xxxxxxxxxxxxxxx, "Ed Hoopes" <reefbreak_sd@>
> wrote:
> >
> > I'm glad to hear that MS users have access to the H-A indicators.
> > 
> > On the general topic of smoothing - here are two other smoothers 
that
> > I have found useful:
> > 
> > 1. Kalman filters - often used to smooth noisy data in electronics
> > work well.
> > 2. statistical smoothing which aggregate the data over many 
stocks to
> > produce an indicator - has produced my best results.  I have not 
seen
> > these covered in any TA book.  Sometimes they are 
called 'difussion
> > indicators' without any further discussion.
> > 
> > ReefBreak
> > 
> > 
> > --- In equismetastock@xxxxxxxxxxxxxxx, pumrysh <no_reply@> wrote:
> > >
> > > As a subscriber to Roy's newsletter you would have a solution 
to 
> > > this.
> > > 
> > > Preston
> > > 
> > > 
> > > 
> > > --- In equismetastock@xxxxxxxxxxxxxxx, "Ed Hoopes" 
> > > <reefbreak_sd@> wrote:
> > > >
> > > > As a former user of MetaStock software, I can comment on why 
the
> > > > indicator is not programmed for MS.  The MetaStock formula 
language
> > > > does not have nearly enough functions to implement the code.
> > > > 
> > > > Below, I show the indicator programmed in AmiBroker by Tomasz 
> > > Janeczko.
> > > > 
> > > > Here is an incomplete list of required functions that MS 
lacks:
> > > > IIF - an immediate IF function that works on data arrays
> > > > IF  - a conditional execution statement that allows blocks of
> > > > statements to be conditionally executed
> > > > Hold - holds a logic true/false in a certain state for a 
number of 
> > > bars
> > > > AMA - an adaptive moving average function
> > > > ParamToggle - switches the logic state of a variable
> > > > Flip - works like an electrical FlipFlop logic circuit
> > > > StyleArea & StyleOwnScale - allows proper plotting of Heikin 
bars.
> > > > 
> > > > If you wanted to implement this indicator in MS you would 
need to 
> > > buy
> > > > the software developers kit which has software hooks into the 
MS
> > > > package.  Plus buy some fully capable language compiler like 
C++.  
> > > > 
> > > > Or, for $199 you could buy AB and use the code below :)
> > > > 
> > > > ***********************
> > > > 
> > > > HA Candelstick Oscillator in AmiBroker;
> > > > 
> > > > 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 );
> > > > }--- In equismetastock@xxxxxxxxxxxxxxx, "maurizio_innamorati"
> > > > <maurizio.innamorati@> wrote:
> > > > >
> > > > > The above indicator is discussed in TASC December issue. 
> > > unfortunately, 
> > > > > the formula in MS code is not listed in Traders' Tips 
(given in 
> > > article 
> > > > > itself only available to subscribers). Could somebody share 
the 
> > > code 
> > > > > for the above indicator witg us? Thanks.
> > > > >
> > > >
> > >
> >
>



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/equismetastock/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/equismetastock/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:equismetastock-digest@xxxxxxxxxxxxxxx 
    mailto:equismetastock-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    equismetastock-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/