信号闪烁而且还开平仓了

//被引用 Range[1:1] { DIFF=EMA(CLOSE,12) - EMA(CLOSE,26);//短周期与长周期的收盘价的指数平滑移动平均值做差。 DEA =EMA(DIFF,9);//DIFF的M个周期指数平滑移动平均 MACD=2*(DIFF-DEA);//DIFF减DEA的2倍画柱状线 MACDX=MA(MACD,2); Bool KD1; Bool KK1; KD1=DIFF>REF(DIFF,1); KK1=DIFF<REF(DIFF,1); K1=EMA(C,3); K2=EMA(C,5); K3=EMA(C,8); K4=EMA(C,10); K5=EMA(C,12); K6=EMA(C,15);//定义短期均线组 K7=EMA(C,30); K8=EMA(C,35); K9=EMA(C,40); K10=EMA(C,45); K11=EMA(C,50); K12=EMA(C,60);//定义长期均线组 MINN=Min(K1,Min(K2,Min(K3,Min(K4,Min(K5,K6))))); MAXX=Max(K7,Max(K8,Max(K9,Max(K10,Max(K11,K12))))); MAXXD=Max(K1,Max(K2,Max(K3,Max(K4,Max(K5,K6))))); MINNC=Min(K7,Min(K8,Min(K9,Min(K10,Min(K11,K12))))); Bool KD2; Bool KK2; KD2=CrossOver(MINN,MAXX); KK2=CrossUnder(MAXXD,MINNC); If (Exact(Upper(Import),\"MACD\")) { KD=KD1; KK=KK1; } If (Exact(Upper(Import),\"MA\")) { KD=KD2; KK=KK2; } }TT=M1-M2<=100*X AND M1-M2>=1*X;//高低差 } OnBarClose(ArrayRef<Integer> indexs)//避免闪烁开仓 { Range[1:1] { /* KD:VAR.KD; KK:VAR.KK; */ Data0.KD=Data1.KD[1]; Data0.KK=Data1.KK[1]; Hide(); } //多头开仓1 If (MarketPosition<>1 And Vol>0 And KD And L>M1 And CQ>0 And TT AND (MACD-REF(MACD,1))<2) { myPrice=Close; Buy( 1,myPrice); Commentary(\"多头开仓\"); } //空头开仓1 If (MarketPosition<>-1 And Vol>0 And KK And H<M2 And CQ<0 And TT AND (REF(MACD,1)-MACD)<2) { myPrice=Close; SellShort( 1,myPrice); Commentary(\"空头开仓\"); }帮忙看下说明原因 我怀疑是不是引用MA上穿下穿的时候 刚好有点摩擦,要穿不穿的时候 被闪烁了,但是我取的上一根K线啊。

第一这不是tbquant语言第二如果发生信号闪烁消息中心是会通知的,逐一排查对应条件的bool表达式