老师,这个代码当前红线区间的当前值是K3<K4 区间取最高价,定义(前高)是前一段K3<K4 区间的最高价。 现在遇到问题是,在当前最后一k之前,定义(前高)显示都是前一段的最高价格数值,但是在当前运行k红线支撑还在延续没有变成白线的时候,只要是最后一k,价格却显示成了当前区间的最高价,其实应该还要显示前段区间最高价才是。顺序前推前一段红色支撑线的最后一k也是这样的问题,反之前低也是这样子的问题,我要的是完整红色或白色线段区间他们的价格极致不要前后移动。麻烦老师帮忙调制下,谢谢!
G:=IF(HIGH=HHV(HIGH,3),1,0); D:=IF(LOW=LLV(LOW,3),1,0); S:=IF(REF(G,2)=1 AND REF(G,1)=0 AND G=0,REF(HIGH,2),REF(HIGH,2+(BARSLAST(REF(G,2)=1 AND REF(G,1)=0 AND G=0)))); X:=IF(REF(D,2)=1 AND REF(D,1)=0 AND D=0,REF(LOW,2),REF(LOW,2+(BARSLAST(REF(D,2)=1 AND REF(D,1)=0 AND D=0)))); K1:=IF(HIGH>=MA(CLOSE,1),S,REF(S,BARSLAST(HIGH>MA(CLOSE,1)))); K2:=IF(LOW<=MA(CLOSE,5),X,REF(X,BARSLAST(LOW<=MA(CLOSE,5)))); C1:=REF(CLOSE,1)<=K1 AND CLOSE>K1; C2:=REF(CLOSE,1)>=K2 AND CLOSE<K2; K3:=BARSLAST(C1); K4:=BARSLAST(C2); 多头线:IF(K3<K4,K2,DRAWNULL),COLORred,LINETHICK2; 空头线:IF(K3>K4,K1,DRAWNULL) ,COLOrwhite,LINETHICK2; 当前值:IF(K3<K4,HHV(H, BARSLAST(not(K3<K4))),LLV(L, BARSLAST(not(K3>K4)))),NODRAW; 前高: VALUEWHEN( (K3<K4 AND ISLASTBAR) OR REFX(CROSS(0.5,K3<K4),1),HHV(H,BARSLAST(not(K3<K4)))),NODRAW; 再前高: VALUEWHEN( (K3<K4 AND ISLASTBAR) OR REFX(CROSS(0.5,K3<K4),1),REF(前高,1)),NODRAW; 前低: VALUEWHEN((K3>K4 AND ISLASTBAR) or REFX(CROSS(0.5,K3>K4),1),LLV(L,BARSLAST(not(K3>K4)))),colorwhite,NODRAW; 再前低: VALUEWHEN((K3>K4 AND ISLASTBAR) or REFX(CROSS(0.5,K3>K4),1),REF(前低,1)),NODRAW;
|