以下是我通过文化版自己改进的编码,,在指标里是可以显示红绿已经转向的,,但是转向不是很到位有偏差,所以我现在想参照MT5里的多循环模糊逻辑进去,可出来的编码指标就实现不了红绿和转向
INPUT:M0(1.5,1,10,1),N2(10,1,50,1);
variable:trs:=0,ups:=0,dns:=0;
R001:KLINE(H,O,L,C,1);
TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR1,NN);
med:=(H+L)/2;
ups:=med+atr*M0;
dns:=med-atr*M0;
trs:=if(c>ref(ups,1),1,if(c<ref(dns,1),-1,trs));
flag:=trs<0 and ref(trs,1)>0;
flagh:=trs>0 and ref(trs,1)<0;
dns:=if(trs>0 and dns<ref(dns,1),ref(dns,1),dns);
ups:=if(trs<0 and ups>ref(ups,1),ref(ups,1),ups);
ups:=if(flag,med+atr*M0,ups);
dns:=if(flagh,med-atr*M0,dns);
outtrs:=trs;
outups:=ups;
outdns:=dns;
SUPERTREND:=if(outtrs=1,outdns,outups);
L1:=REF(UPS,BARSLAST(UPS<=REF(UPS,1)));
L2:=LLV(UPS,NN*1.5);
LL:=IF(L2!=REF(L2,1) AND L1<REF(L1,1),L1,IF(L1=L2,L1,L2));
S1:=BARSLAST(CROSS(0.5,UPS=LL))+1;
S2:=CROSS(COUNT((CROSS(C,LL) OR CROSS(C,REF(LL,2))) AND UPS>LL,S1),0.5);
A6:=BARSLAST(S2);
B6:=BARSLAST(CROSS(HHV(DNS,A6+1),C));
SUPERTREND上拐:=CROSS(B6,A6);
SUPERTREND下拐:=CROSS(A6,B6);
SUPERTREND01:IF(B6>A6,HHV(DNS,BARSLAST(SUPERTREND上拐)+1),LLV(UPS,BARSLAST(SUPERTREND下拐)+1)),COLOR996611,LINETHICK2;
SUPERTREND02:IF(B6>A6,SUPERTREND01,DRAWNULL),COLORF00099,LINETHICK2;
SUPERTREND下标记:DRAWICON(SUPERTREND下拐,SUPERTREND01*1.001,5);
SUPERTREND上标记:DRAWICON(SUPERTREND上拐,SUPERTREND02*0.999,4);