图标显示开了一手空单,也成交了,但后台没有统计的问题

z20211028 14:55, 图标显示开空1手,然后成交了,但信号闪了几下后消失了;晚上21:00看后又显示了出来, 但后台没有统计该手,我关闭TBQ程序后,再重新打开策略页面才正常显示有1手空单。请问这个是什么问题??策略代码在下面,应该不会有信号闪烁的呀。 //------------------------------------------------------------------------ // 简称:Aberration系统空头 // 名称: // 类别: 公式应用 // 类: 用户应用 // 输出: //------------------------------------------------------------------------ Params Numeric NATRstop(5); // N倍ATR硬止损和追踪止损 Numeric money(20000); // 单品种资金配置 Vars Numeric Scale_in_switch(0); // 是否允许加仓,1允许,0关闭 Numeric Length(80); Numeric StdDev(1); Series<Numeric> STD_20 ; // 标准差 Numeric LengthStd; Series<Numeric> UpperBand; Series<Numeric> LowerBand; Series<Numeric> AveMa; Numeric StdValue; Numeric MinPoint; Series<Numeric> ATR; // 本周期ATR Series<Numeric> ts; // 加仓后,止损调节系数 Numeric MyExitPrice; // 硬止损出场均价,平仓价格 Series<Numeric> yclose(0); // 获得昨日收盘价 Series<Numeric> topen(0); // 获得今日开盘价 Series<Numeric> LowestAfterEntry; // 开仓后出现的最低价 Bool CrossUnderFlag ; Series<Numeric> lowest_low_2_20; // 20周期高点2 Series<Bool> Scale_in_bo; // 是否有过突破加仓 Series<Bool> stoploss_hard_short ; Series<Bool> BIAS_R_short ; Series<Bool> Normal_Trailing_short ; Series<Bool> TS_Reentry_short ; Numeric Lots_temp; // 开仓手数 Numeric Lots; Numeric Margin; // 保证金比例 Events OnInit() { Range[0:DataCount-1] { AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权 AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格 AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓 AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算 } } onBar(ArrayRef<Integer> indexs) { //If(!CallAuctionFilter()) Return; // 过滤集合竞价 If(date!=date[1] and high==low) Return; // 本bar价格异常 If(close==Q_lowerlimit||close==Q_upperlimit) Return; // 当前公式应用商品的当日跌停板和涨停板价 Margin = MarginRatio(); Lots = Floor(money/(Margin*open*ContractUnit()*BigPointValue()),1); // 早晨9点,第一根bar,记录一些重要数据 if(Time == 0.090000) { yclose = close[1]; // 昨日收盘价格 = 昨日最后一个bar收盘价 topen = open; // 今日开盘价 } // ===================== 计算指标值 ========================== MinPoint = MinMove*PriceScale; ATR = Average(TrueRange,14); AveMa = Average(Close[1],Length); StdValue = StandardDev(Close[1],Length); UpperBand = Avema + StdDev * StdValue; LowerBand = Avema - StdDev * StdValue; PlotNumeric("UpperBand",UpperBand); PlotNumeric("LowerBand",LowerBand); PlotNumeric("AveMa",AveMa); lowest_low_2_20 = lowest(low[2],20); // TS止损后,不允许入场条件(空) TS_Reentry_short = Normal_Trailing_short == True && close[1] > Lowest_low_2_20 && BarsSinceExit < 20 ; // ===================== 以下是开仓 ========================= // 开空仓 CrossUnderFlag = Crossunder(Close[1],LowerBand ) ; If(MarketPosition == 0 && !TS_Reentry_short && CrossUnderFlag ) { SellShort(Lots,Open); Scale_in_bo = False; Normal_Trailing_short = false; stoploss_hard_short = false; } // // 正常平仓 If(MarketPosition == -1 && Close[1] > AveMa ) { BuyToCover(0,Open); } // 完全击穿 If(MarketPosition == -1 && CrossOver( Close[1],UpperBand ) ) { BuyToCover(0,Open); } Commentary(" stoploss_hard_short ="+IIFString(stoploss_hard_short,"True","False")) ; Commentary(" Normal_Trailing_short ="+IIFString(Normal_Trailing_short,"True","False")) ; // ============================= 【追踪止损】 ============================= if ( Scale_in_bo == False ) { ts = 1 ; // 如果没有任何加仓,原始仓位下,止损位系数=1 } if ( Scale_in_bo == True ) { ts = 2 ; // 如果有过1种加仓,止损位系数=2 } if ( BarsSinceEntry == 0 ) // 开仓后第一个bar,直接等于开仓价 { LowestAfterEntry = AvgEntryPrice; } Else If( BarsSinceEntry > 0 ) // 之后的bar,不断用最高和最低价做比对,赋值给开仓后最高最低价 { LowestAfterEntry = Min(LowestAfterEntry[1],low[1]); } Else // 没有仓位时,保持上次价格信息,没有其他用途 { LowestAfterEntry = LowestAfterEntry[1]; } If( MarketPosition == -1 && BarsSinceEntry > 0 && AvgEntryPrice - LowestAfterEntry > NATRstop*atr[1]/ts ) // 有多仓 { If( high >= LowestAfterEntry + NATRstop*atr[1]/ts ) { BuyToCover(0,Max(Open, LowestAfterEntry + NATRstop*atr[1]/ts ) ); Normal_Trailing_short = True ; PlotString ("TrailingStop","TrailingStop",high*1.01,White); } } // ======================= 【硬止损平仓】======================= /* If( MarketPosition == -1 && BarsSinceEntry > 0 && high >= AvgEntryPrice + NATRstop*atr[1]/ts ) // 空仓情况 { MyExitPrice = Max (Open,AvgEntryPrice + NATRstop*atr[1]/ts ); BuyToCover(0,MyExitPrice); //空头止损平仓 PlotString ("HardStop","HardStop",high*1.01,White); stoploss_hard_short = True ; } }

是不是这里 If(date!=date[1] and high==low) Return; // 本bar价格异常 因为跌停了,这根Bar的high==low了