HH:=H;
LL:=L;
FOR I=2 TO DATACOUNT DO BEGIN
N1:=HH[I]>HH[I-1] AND LL[I]>LL[I-1];
N2:=HH[I]<HH[I-1] AND LL[I]<LL[I-1];
N3:=(HH[I]>=HH[I-1] AND LL[I]<=LL[I-1]) OR (HH[I]<=HH[I-1] AND LL[I]>=LL[I-1]);
IF N1 THEN BEGIN A[I]:=1;AA[I]:=1;END;
IF N2 THEN BEGIN A[I]:=2;AA[I]:=2;END;
IF N3 THEN BEGIN A[I]:=3;AA[I]:AA[I-1];END;
IF N3 THEN BEGIN
IF AA[I-1]=1 THEN BEGIN
HH[I]:=MAX(HH[I],HH[I-1]);
LL[I]:=MAX(LL[I],LL[I-1]);
END;
IF AA[I-1]=2 THEN BEGIN
HH[I]:=MIN(HH[I],HH[I-1]);
LL[I]:=MIN(LL[I],LL[I-1]);
END;
END;
END;
请放大K线或者缩小K线,就有问题了,就是多读取些历史数据,就会有这个问题
以下是引用FexTel在2014/7/22 16:00:12的发言:
AA[I-1]; 当I为2时,aa[1]没有定义
对AA[1]定义下,或者直接自行赋值
我知道,自动赋值就不会有这个问题,但是我要表达的就是条件满足N3时,AA[I]自动返回前一个K线
IF N1 THEN BEGIN A[I]:=1;AA[I]:=1;END;
IF N2 THEN BEGIN A[I]:=2;AA[I]:=2;END;
IF N3 THEN BEGIN A[I]:=3;AA[I]:AA[I-1];END;
您这个赋值根本无法定义AA[1]这一项,让你对AA[1]定义。aa数组中的第一个元素
[此贴子已经被作者于2014/7/22 16:16:15编辑过]