PureBytes Links
Trading Reference Links
|
Al, I am putting a variable into the HHV function. Not in the v2: definition
but in the hh: definition lower, the "days" needs to vary as "currlen" or
current length of days over which to calculate the stochastic. --Dave Nadeau
Al Taglavore wrote:
> Are you not putting a variable into the data array portion of HHV?
>
> Al Taglavore
>
> ----------
> > From: Dave Nadeau <dave.nadeau@xxxxxxxx>
> > To: metastock@xxxxxxxxxxxxx
> > Subject: Re: adaptive stochastic oscillator
> > Date: Thursday, June 29, 2000 2:40 PM
> >
> Here's what I come up with. It doesn't work, and I've run into this issue
> when trying to solve some other problems.
> Does anyone have any ideas for circumventing the problem of putting a
> variable into the "periods" part of the HHV or LLV functions?
> This gives an error when you try to put the code below into Metastock (in
> blue):
> ----------------------------------------------------------------------------
> ----------------------
> {-- © 2K Tushar Chande; Adaptive Stochastic Oscillator --}
> vars: v1(0), v2(0), v3(0), v4(0) ;
> vars: lenmax(28), lenmin(7), currlen(0) ;
> vars: hh(0), ll(0), stoch(0), stochma(0) ;
> lenmax:= 28;
> lenmin:= 7;
> currlen:= 0;
> {-- Calculate 20-day std. Dev. And its 20-day range --}
> v1 = stddev(c,20) ;
> v2 = highest(v1, 20) ;
> v3 = lowest(v1, 20) ;
> v1:= Stdev(Close, 20);
> v2:= HHV(v1,20);
> v3:= LLV(v1,20);
>
> {-- Create v4: stochastic oscillator for 20-day std. dev. --}
> {-- if v1=v2 (highest level) => v4 = 1; if v1=v3 (lowest level) => v4=0 --}
>
> if (v2-v3) > 0 then v4 = ((v1 - v3)/(v2-v3)) Else v4 = 0 ;
> v4:=If((v2-v3)>0,((v1 - v3)/(v2-v3)),0);
> {-- Calculate current effective length; if v4 = 1, then length = mininum
> --}
>
> currlen = IntPortion(lenmin + (lenmax-lenmin)*(1-v4)) ;
> currlen:= If(v4=1,lenmin,(Int(lenmin + (lenmax-lenmin)*(1-v4))));
> {-- Calculate stochastic oscillator and its 3-day exponential average --}
> hh = highest(h, currlen) ;
> ll = lowest(l, currlen) ;
> if (hh-ll) > 0 then stoch = ((close - ll)/(hh - ll)) * 100 ;
> if currentbar = 1 then stochma = 0 else
> stochma = 0.5*stoch + 0.5*stochma[1] ;
> hh:= HHV(High, currlen);
> ll:= LLV(Low, currlen);
> stoch:=If(((hh-ll)>0,((close - ll)/(hh - ll)) * 100,50) {I set the error
> condition to a stochastic midpoint...I'm open to any other ideas???}
> stochma:= (.5*stoch)+(.5*Ref(stoch,-1))
>
> {-- Plot data --}
> plot1(stoch, "adapt_stoch") ;
> plot2(stochma, "stochma") ;
> plot3(80, "hi_ref") ;
> plot4(20, "lo_ref") ;
> stoch; stochma; 80; 20;
> { -- End of code --}
> ----------------------------------
> Dave Nadeau
>
|