/*[[ Name := Fisher_v2 Separate Window := Yes First Color := Lime First Draw Type := Histogram Use Second Data := Yes Second Color := Red Second Draw Type := Histogram ]]*/ Input : nBars(10),Mark(1), Threshold(1), LastBar(0), CountBars (200) ; Variables : bar(0), prevbars(0), start(0), cs(0), prevcs(0); Variables : P(0), Value(0), Fish(0), MaxH(0), MinL(0); Variables : Value1(0), Fish1(0), Fish2(0), i(0), dir(0); setloopcount(0); cs=nBars+Mark+Threshold+LastBar; if cs=prevcs then start=500-prevbars else start=-1; prevbars = CountBars ; prevcs = cs; if start=1 | start=0 then bar+=start else { bar = CountBars; For i=1 to nBars { bar-=1; SetIndexValue(bar,0); }; Value1=0; Fish1=0; Fish2=0; SetIndexValue(0,0); SetIndexValue2(0,0); }; While bar>LastBar { bar -=1; MaxH=H[Highest(MODE_HIGH,bar+nBars-1,nBars)]; MinL=L[Lowest(MODE_LOW,bar+nBars-1,nBars)]; P=(H[bar]+L[bar])/2; Value = 0.33*2*((P-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1; Value=Min(Max(Value,-0.999),0.999); Fish = 0.5*Log((1+Value)/(1-Value))+0.5*Fish1; If Fish>Fish1 then dir=1; If FishFish1 & Fish1<=Fish2 Then SetArrow(Time[bar],L[bar]-5*Point,159,LIME) Else DelArrow(Time[bar],L[bar]-5*Point); If Mark=1 & Fish>Threshold & Fish=Fish2 Then SetArrow(Time[bar],H[bar]+20*Point,159,RED) Else DelArrow(Time[bar],H[bar]+20*Point); if bar>0 then{ Value1 = Value; Fish2 = Fish1; Fish1 = Fish; }; }; if bar<=0 then bar=1; //www.linnsoft.com/tour/techind/fish.htm) - Investor/RT