const N1=550; const T_s='2,4,5,7,10,12,13,15,17,20,22,24,25,27,30,32,33,34,35,36'; const X_s='4,4,6,6,6,6,3,2,4,3,3,3,2,2,4,5,5,5,4,3'; var i,v,p,k,k1,n,d,m1,m2,m: integer; var Tk,T,P_ar,TM2:array[1..N1] of integer; var TM1:array[1..N1,1..2] of integer; var t_2,Xt,X: array[1..N1] of float; var e: float; n:=n1; e:=50; for i := 1 to n do begin Tk[i]:=i; //StrToInt(GetToken(T_s,i-1,',')); Xt[i]:=PriceHigh(BarCount-n+i-1); //StrToInt(GetToken(X_s,i-1,',')); end; // module 1 v:=1; k1:=2; repeat p:=1; k:=1; while (abs(Xt[k]-Xt[k1])<=e) and (k1n; // Module 2 m1:=0; m2:=0; d:=0; for i:=2 to v-1 do if (X[i]>X[i-1]) and (X[i]>X[i+1]) then begin m1:=m1+1; if d=0 then d:=i-1; TM1[m1,1]:=T[i]; TM1[m1,2]:=i; end; for i:=TM1[1,2] to TM1[m1,2] do begin TM2[i-TM1[1,2]+1]:=T[i]; m2:=m2+1; end; // Module 3 m:=1; for i:=1 to m2 do begin t_2[i]:=(TM2[i]-TM1[m,1])/(TM1[m+1,1]-TM1[m,1])+m-1; if TM1[m+1,1]=TM2[i] then m:=m+1; end; //for i:=1 to v do // print(FormatFloat('0.##',X[i])+','+IntToStr(T[i])+','+IntToStr(P_ar[i])); for i:=1 to m2 do print(FormatFloat('0.##',t_2[i])+','+FormatFloat('0.##',X[i+d]));