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

Re: Fisher Transform and ROC



PureBytes Links

Trading Reference Links

> I haven't seen the article, nor do I know the exact definition of 
> the Metastock ROC function.  But I can tell you why you're 
> getting large spikes when you use ROC (RateOfChange on TS2001i).  
> 
> RateOfChange is defined as Price / Price[Length] - 1.  That 
> generally works fine when you're using actual price values.  But 
> the Fisher transform you're passing to it crosses through zero -- 
> sometimes very close.  When Price[Length] is very near zero, the 
> resulting ROC calculation is a huge number.
> 
> You could try using Momentum instead of RateOfChange.  Momentum 
> is Price - Price[Length].  No division-by-zero problems.  But it 
> doesn't look like a particularly good signal line to show turning 
> points.
> 
> This Fisher transform is kind of odd.  Looking at the code, 
> Value1 is just a smoothed Stochastic re-centered around zero.  
> Then he takes log((1+Value1)/(1-Value1)) and smooths that.  I'm 
> not sure what the log calculation is supposed to accomplish.  It 
> basically just amplifies the smoothed stochastic, exaggerating 
> the points where the stoch approaches +/- 1.  He pegs the extreme 
> values of value1 at +/- 0.99, which ends up limiting the Fisher 
> value to +/- 5.29.  Why?  Beats me.  Guess he wanted to make it 
> really obvious when the stoch value was approaching its max/min 
> values.

Thank you for your comments. I may post about this later.

Apparently the limits are imposed to prevent value1 exceeding its 10 (
len) day range and crashing due to having a zero in the denominator.

The exaggeration around the +/-1 points is to simulate the Probability 
Density Function of a sine wave. or something - don't ask, it's beyond 
me! (:-) If you sample a sine wave, you can see that most of the points 
are going to be at the top and bottom of the curve.

Ian

> > He also talks about another plot: "I multiplied the rate of change
> > of the Fisher Transform by 10 and plotted this amplified rate of
> > change over the Fisher transform." The crossings show turning
> > points. 
> > 
> > However, I have not been able to duplicate the ROC plot correctly.
> > In Trader's Tips, the MetaStock code is simply given as: 
> > 10*ROC(fish,1,$)
> > I've tried a few variations including:
> > Plot4(10*RateOfChange(fish, 1));
> > but they simply create spikes consisting of very large numbers.
>