Formula13
VARIABLE: X[5]:=0;
X[1]:=STKINDI('CU00','KDJ.K',0,6,0);
X[2]:=STKINDI('RU00','KDJ.K',0,6,0);
X[3]:=STKINDI('M00','KDJ.K',0,6,0);
X[4]:=STKINDI('CF00','KDJ.K',0,6,0);
X[5]:=STKINDI('IF00','KDJ.K',0,6,0);
CU排名:HOD2(X,5,X[1]),LINETHICK0;
RU排名:HOD2(X,5,X[2]),LINETHICK0;
M排名:HOD2(X,5,X[3]),LINETHICK0;
CF排名:HOD2(X,5,X[4]),LINETHICK0;
IF排名:HOD2(X,5,X[5]),LINETHICK0;
if CU排名=1 then YY[1]:= X[1];
if RU排名=1 then YY[2]:= X[2];
if M排名=1 then YY[3]:= X[3];
if CF排名=1 then YY[4]:= X[4];
if IF排名=1 then YY[5]:= X[5];
if CU排名=5 then Y[1]:= X[1];
if RU排名=5 then Y[2]:= X[2];
if M排名=5 then Y[3]:= X[3];
if CF排名=5 then Y[4]:= X[4];
if IF排名=5 then Y[5]:= X[5];
IF CU排名=1 then
ZFC1:=X[1]-Y[2]>0.01;
ZFC2:=X[1]-Y[3]>0.01;
ZFC3:=X[1]-Y[4]>0.01;
ZFC4:=X[1]-Y[5]>0.01;
ZFC5:ZFC1 OR ZFC2 OR ZFC3 OR ZFC4;
<!--StartFragment -->
这个公式Formula13,在逐K线模式仅刷最后一根,应用于图,提示未来函数!为什么?如何解决未来函数?
就是不符合编译机制规则。这种不符合规则的写法除了改你的代码,没别的方式。你可以考虑使用序列计算
另外,你下面的代码逻辑貌似写的有问题。如果你是想CU排名=1时,处理ZFC1、ZFC2、ZFC3....应要加begin。
而你的写法,只是代表IF CU排名=1 then ZFC1:=X[1]-Y[2]>0.01;
如果是下面的思想逻辑,就不会报你所说的二次重复计算的机制问题。
IF CU排名=1 then begin
ZFC1:=X[1]-Y[2]>0.01;
ZFC2:=X[1]-Y[3]>0.01;
ZFC3:=X[1]-Y[4]>0.01;
ZFC4:=X[1]-Y[5]>0.01;
ZFC5:ZFC1 OR ZFC2 OR ZFC3 OR ZFC4;
end
[此贴子已经被作者于2018/4/22 12:57:54编辑过]
以下是引用wenarm在2018/4/22 12:51:10的发言:
就是不符合编译机制规则。这种不符合规则的写法除了改你的代码,没别的方式。你可以考虑使用序列计算
另外,你下面的代码逻辑貌似写的有问题。如果你是想CU排名=1时,处理ZFC1、ZFC2、ZFC3....应要加begin。
而你的写法,只是代表IF CU排名=1 then ZFC1:=X[1]-Y[2]>0.01;
如果是下面的思想逻辑,就不会报你所说的二次重复计算的机制问题。
IF CU排名=1 then begin
ZFC1:=X[1]-Y[2]>0.01;
ZFC2:=X[1]-Y[3]>0.01;
ZFC3:=X[1]-Y[4]>0.01;
ZFC4:=X[1]-Y[5]>0.01;
ZFC5:ZFC1 OR ZFC2 OR ZFC3 OR ZFC4;
end
[此贴子已经被作者于2018/4/22 12:57:54编辑过]
要是后面再接上去呢,如
IF CU排名=5 then begin
ZFC1:=YY2]-X[1]>0.01;
ZFC2:=YY[3]-X[1]>0.01;
ZFC3:=YY[4]-X[1]>0.01;
ZFC4:=YY[5]-X1]>0.01;
ZFC5:ZFC1 OR ZFC2 OR ZFC3 OR ZFC4;
end
等等,仍然会提示二次重复计算,有未来函数。真不知道怎么改
勾选序列模式,写好后加载到K线又自动跳转到逐K模式仅刷最好后一根!怎么办?
这个公式里,上部赋值了,一根K里运行(固定1秒轮扫),就一次赋值并计算吧,怎么会二次重复计算?二次重复计算发生在哪些个句子?这些都搞不懂,代码也没法改写呀