{- Filename: RSI-JSTAS -} { Auteur: www.JSTAS.com } Var Calc3,Calc5,Calc6,Calc12,C1,C2,C3,Calc16,Df :Real ; i,ia,iRSIa,iRSIb,Mp,Dff :Integer; SCalc1,SCalc2,SCalc3,SCalc7,SCalc8,SCalc9 :Tseries; SCalc10,SCalc11,SCalc12,SCalc13,SCalc15,SCalc16 :TSeries; begin With Indicator Do Begin Shortname:= 'RSI - JSTAS'; End; Scalc1 := Fillseries(CreateSeries(Barcount),1); Scalc2 := FillSeries(CreateSeries(Barcount),1); Scalc3 := FillSeries(CreateSeries(Barcount),6); Scalc7 := FillSeries(CreateSeries(Barcount),1); Scalc8 := FillSeries(CreateSeries(Barcount),1); Scalc9 := FillSeries(CreateSeries(Barcount),1); Scalc10:= FillSeries(CreateSeries(Barcount),1); Scalc11:= FillSeries(CreateSeries(Barcount),1); Scalc12:= FillSeries(CreateSeries(Barcount),10); Scalc13:= CreateSeries(Barcount); SCalc15:= CreateSeries(Barcount); C1 := 0.0962; C2 := 0.5769; Mp :=CreateParameterInteger('Te meten data / koersbars',100,30000,260,False); Dff:=CreateParameterInteger('Perc.Dominante golflengte %',30,70,50,True); Mp:= Barcount - Mp; If Mp<25 Then Mp :=25; For i:= Mp To Barcount-1 Do Begin C3 :=(Scalc3[i-1]*0.075+0.54); SCalc1[i] :=((H[i]+L[i])*2+(H[i-1]+L[i-1])*1.5+(H[i-2]+L[i-2])+((H[i-3]+L[i-3])/2))/10; SCalc2[i] :=(SCalc1[i]*C1+SCalc1[i-2]*C2-SCalc1[i-4]*C2-SCalc1[i-6]*C1)*C3; SCalc7[i] :=(SCalc2[i]*C1+SCalc2[i-2]*C2-SCalc2[i-4]*C2-SCalc2[i-6]*C1)*C3; Calc5 :=(Scalc2[i-3]*C1+SCalc2[i-5]*C2-SCalc2[i-7]*C2-SCalc2[i-9]*C1)*C3; Calc6 :=(SCalc7[i]*C1+SCalc7[i-2]*C2-SCalc7[i-4]*C2-SCalc7[i-6]*C1)*C3; SCalc8[i] :=(SCalc2[i-3]-Calc6)*0.2+SCalc8[i-1]*0.8; SCalc9[i] :=(SCalc7[i]+Calc5)*0.2+SCalc9[i-1]*0.8; SCalc10[i]:=(SCalc8[i]*SCalc8[i-1]+SCalc9[i]*SCalc9[i-1])*0.2+SCalc10[i-1]*0.8; SCalc11[i]:=(SCalc8[i]*SCalc9[i-1]-SCalc9[i]*SCalc8[i-1])*0.2+SCalc11[i-1]*0.8; If SCalc10[i] = 0 Then SCalc10[i] := 0.0001; If SCalc11[i] = 0 Then SCalc11[i] := 0.0001; SCalc3[i] :=(360/((arctan(SCalc11[i]/SCalc10[i]))*180/Pi)); If SCalc3[i] > (SCalc3[i-1]*1.5) Then SCalc3[i] := SCalc3[i-1]*1.5; If SCalc3[i] < (SCalc3[i-1]*0.67) Then SCalc3[i] := SCalc3[i-1]*0.67; If SCalc3[i] < 6 Then SCalc3[i]:=6; If SCalc3[i] > 50 Then SCalc3[i]:=50; Calc3:= 0.2*SCalc3[i]+ 0.8*SCalc3[i-1]; SCalc3[i]:= Calc3; SCalc12[i] := 0.33*SCalc3[i]+(SCalc12[i-1]*0.67); Calc12 :=SCalc12[i]; ia :=i; Df := Dff/100; iRSIa := i; iRSIb := i-25; for i := iRSIb to iRSIa Do Begin SCalc16 := RSI(Close,(Round((Calc12*Df)-1))); Calc16 := SCalc16[iRSIa]; End; i :=ia; SCalc15[i] :=Calc16; End; CreateLine(SCalc15).color:=ClAqua; {www.JSTAS.com} End.