JustUncleL

EhlersRSI.TAS

Jul 1st, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. {- Filename: RSI-JSTAS -}
  2. { Auteur: www.JSTAS.com }
  3. Var
  4. Calc3,Calc5,Calc6,Calc12,C1,C2,C3,Calc16,Df :Real ;
  5. i,ia,iRSIa,iRSIb,Mp,Dff :Integer;
  6. SCalc1,SCalc2,SCalc3,SCalc7,SCalc8,SCalc9 :Tseries;
  7. SCalc10,SCalc11,SCalc12,SCalc13,SCalc15,SCalc16 :TSeries;
  8. begin
  9. With Indicator Do Begin Shortname:= 'RSI - JSTAS'; End;
  10. Scalc1 := Fillseries(CreateSeries(Barcount),1);
  11. Scalc2 := FillSeries(CreateSeries(Barcount),1);
  12. Scalc3 := FillSeries(CreateSeries(Barcount),6);
  13. Scalc7 := FillSeries(CreateSeries(Barcount),1);
  14. Scalc8 := FillSeries(CreateSeries(Barcount),1);
  15. Scalc9 := FillSeries(CreateSeries(Barcount),1);
  16. Scalc10:= FillSeries(CreateSeries(Barcount),1);
  17. Scalc11:= FillSeries(CreateSeries(Barcount),1);
  18. Scalc12:= FillSeries(CreateSeries(Barcount),10);
  19. Scalc13:= CreateSeries(Barcount);
  20. SCalc15:= CreateSeries(Barcount);
  21. C1 := 0.0962; C2 := 0.5769;
  22. Mp :=CreateParameterInteger('Te meten data / koersbars',100,30000,260,False);
  23. Dff:=CreateParameterInteger('Perc.Dominante golflengte %',30,70,50,True);
  24. Mp:= Barcount - Mp;
  25. If Mp<25 Then Mp :=25;
  26. For i:= Mp To Barcount-1 Do Begin
  27. C3 :=(Scalc3[i-1]*0.075+0.54);
  28. 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;
  29. SCalc2[i] :=(SCalc1[i]*C1+SCalc1[i-2]*C2-SCalc1[i-4]*C2-SCalc1[i-6]*C1)*C3;
  30. SCalc7[i] :=(SCalc2[i]*C1+SCalc2[i-2]*C2-SCalc2[i-4]*C2-SCalc2[i-6]*C1)*C3;
  31. Calc5 :=(Scalc2[i-3]*C1+SCalc2[i-5]*C2-SCalc2[i-7]*C2-SCalc2[i-9]*C1)*C3;
  32. Calc6 :=(SCalc7[i]*C1+SCalc7[i-2]*C2-SCalc7[i-4]*C2-SCalc7[i-6]*C1)*C3;
  33. SCalc8[i] :=(SCalc2[i-3]-Calc6)*0.2+SCalc8[i-1]*0.8;
  34. SCalc9[i] :=(SCalc7[i]+Calc5)*0.2+SCalc9[i-1]*0.8;
  35. SCalc10[i]:=(SCalc8[i]*SCalc8[i-1]+SCalc9[i]*SCalc9[i-1])*0.2+SCalc10[i-1]*0.8;
  36. SCalc11[i]:=(SCalc8[i]*SCalc9[i-1]-SCalc9[i]*SCalc8[i-1])*0.2+SCalc11[i-1]*0.8;
  37. If SCalc10[i] = 0 Then SCalc10[i] := 0.0001;
  38. If SCalc11[i] = 0 Then SCalc11[i] := 0.0001;
  39. SCalc3[i] :=(360/((arctan(SCalc11[i]/SCalc10[i]))*180/Pi));
  40. If SCalc3[i] > (SCalc3[i-1]*1.5) Then SCalc3[i] := SCalc3[i-1]*1.5;
  41. If SCalc3[i] < (SCalc3[i-1]*0.67) Then SCalc3[i] := SCalc3[i-1]*0.67;
  42. If SCalc3[i] < 6 Then SCalc3[i]:=6;
  43. If SCalc3[i] > 50 Then SCalc3[i]:=50;
  44. Calc3:= 0.2*SCalc3[i]+ 0.8*SCalc3[i-1];
  45. SCalc3[i]:= Calc3;
  46. SCalc12[i] := 0.33*SCalc3[i]+(SCalc12[i-1]*0.67);
  47. Calc12 :=SCalc12[i];
  48. ia :=i;
  49. Df := Dff/100;
  50. iRSIa := i;
  51. iRSIb := i-25;
  52. for i := iRSIb to iRSIa Do Begin
  53. SCalc16 := RSI(Close,(Round((Calc12*Df)-1)));
  54. Calc16 := SCalc16[iRSIa];
  55. End;
  56. i :=ia;
  57. SCalc15[i] :=Calc16;
  58. End;
  59. CreateLine(SCalc15).color:=ClAqua;
  60. {www.JSTAS.com}
  61. End.
Add Comment
Please, Sign In to add comment