Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {- 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.
Add Comment
Please, Sign In to add comment