A1:=REF(C-O,2);
A2:=VALUEWHEN(DATE<>REF(DATE,1),REF(SETTLE,1));
A3:MA(A1/A2,5),NODRAW,NOTEXT;
A4:=REF(O,BARSBK+1);
A5:=REF(O,BARSSK+1);
A6:=(A4/L>=1.013);
A7:=(H/A5>=1.013);
A8:MA(CLOSE,26),NOTEXT;
A9:=STD(CLOSE,26);
AUTOFILTER;
[此贴子已经被作者于2021/3/30 14:30:39编辑过]
其他部分不是问题,但是这里 这个函数:SETTLE
无法转换的。我们没有当日结算价这个函数。 我们只有昨结算。 不同软件直接函数功能支持情况不一样。
其实除了结算价那个,其他部分都差不多。
结算价那个用其他方式处理下,需要跨周期进行调用:
首先新建一个单独的指标A,用作调用的指标。
指标A代码:
//以下代码在1分钟上计算有效,其他周期请跨周期调用
n1:=todaybar;
dm:=4-INTPART(LOG(C));
结算价:ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm),colorred;
当前交易模型:
SETTLE:=STKINDI('','A.结算价',0,1,0);//调用结算价
A1:=REF(C-O,2);
A2:=VALUEWHEN(DATE<>REF(DATE,1),REF(SETTLE,1));
A3:MA(A1/A2,5),NODRAW;
A4:=REF(O,TYPEBAR(1,1)+1);
A5:=REF(O,TYPEBAR(1,3)+1);
A6:=(A4/L>=1.013);
A7:=(H/A5>=1.013);
A8:MA(CLOSE,26);
A9:=STD(CLOSE,26);
注意你需要保证当前品种的1分钟周期数据充足。否则结算价那个计算就不准了,本来那个也只是近似计算结算价,如果数据不足就偏差更大了。
结算价那个只能1分钟上计算。但是你这个你不用管,跨周期调用函数里面已经指定好为1分钟了。