老师帮忙看看这段代码为什么会有信号闪烁

Params //此处添加参数 Numeric Length(14) ; //周期 Numeric OverSold(30) ; //超卖开仓 Numeric OverBought(70) ; //超买开仓 Numeric OverSold1(28) ; //超卖平仓 Numeric OverBought1(74) ; //超买平仓 Numeric TakeProfitSet(30); //固定止盈点数 Numeric StopLossSet(20); //固定止损点数 Numeric N(20); //移动止盈止损 Numeric N2(10); //保本1 Numeric N3(20); //保本2 Numeric Lost(1); //每次开仓手数 Numeric W(10); //最多建仓手数Vars //此处添加变量 Series<Numeric> A; Series<Numeric> B; Series<Numeric> MAUP; Series<Numeric> MAUP2; Series<Numeric> MAUP3; Series<Numeric> MAUP4; Series<Bool> MAUP5; Series<Bool> MAUP6; Series<Bool> MAUP7; Series<Bool> MAUP8; Series<Numeric> NetChgAvg( 0 ); Series<Numeric> TotChgAvg( 0 ); Series<Numeric> SF( 0 ); Series<Numeric> Change( 0 ); Series<Numeric> ChgRatio( 0 ) ; Series<Numeric> RSIValue; Series<Numeric> MinPoint; Series<Numeric> MyEntryPrice; Series<Numeric> MyExitPrice; Series<Numeric> Highafterprice; Series<Numeric> Lowafterprice; Series<Numeric> E; Series<Numeric> F; Events //此处实现事件函数 //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { If(Time == 0.210000) { A = 0; B = 0; E = 0; F = 0; } Commentary("A = " + Text(A)); Commentary("B = " + Text(B)); MinPoint = MinMove*PriceScale; MyEntryPrice = AvgEntryPrice; MAUP = HighD(1); MAUP2 = CloseD(1); MAUP3 = OpenD(1); MAUP4 = LowD(1); MAUP5 = CrossOver(RSIValue,OverBought); MAUP6 = CrossUnder(RSIValue,OverSold); MAUP7 = CrossOver(RSIValue,OverBought1); MAUP8 = CrossUnder(RSIValue,OverSold1); If(BarsSinceEntry == 0) { Highafterprice = Close; Lowafterprice = close; If(MarketPosition <> 0) { Highafterprice = Max(Highafterprice,AvgEntryPrice); Lowafterprice = Min(Lowafterprice,AvgEntryPrice); } } Else { Highafterprice = Max(Highafterprice,High); Lowafterprice = Min(Lowafterprice,Low); } If(CurrentBar <= Length - 1) { NetChgAvg = ( Close - Close[Length] ) / Length ; TotChgAvg = Average( Abs( Close - Close[1] ), Length ) ; }Else { SF = 1/Length; Change = Close - Close[1] ; NetChgAvg = NetChgAvg[1] + SF * ( Change - NetChgAvg[1] ) ; TotChgAvg = TotChgAvg[1] + SF * ( Abs( Change ) - TotChgAvg[1] ) ; } If( TotChgAvg <> 0 ) { ChgRatio = NetChgAvg / TotChgAvg; }else { ChgRatio = 0 ; } RSIValue = 50 * ( ChgRatio + 1 ); PlotNumeric("RSI",RSIValue); PlotNumeric("超买",OverBought); PlotNumeric("超卖",OverSold); If(MarketPosition == 0 && High >= MAUP && A == 0 && E < W) { Buy(Lost,Max(Open,MAUP)); A = 1; B = 1; E = E + 1; } If(MarketPosition == 0 && Low == MAUP && A == 1 && E < W) { Buy(Lost,MAUP); E = E + 1; } If(MarketPosition == 0 && Low == MAUP2 && A == 1 && E < W) { Buy(Lost,MAUP2); E = E + 1; } If(MarketPosition == 0 && Low == MAUP3 && A == 1 && E < W) { Buy(Lost,MAUP3); E = E + 1; } If(MarketPosition == 0 && Low == MAUP4 && A == 1 && E < W) { Buy(Lost,MAUP4); E = E + 1; } If(MarketPosition == 0 && MAUP6[1] && A == 1 && E < W) { Buy(Lost,Open); E = E + 1; } If(MarketPosition == 0 && Low <= MAUP4 && B == 0 && F < W) { SellShort(Lost,Min(Open,MAUP4)); A = 2; B = 2; F = F + 1; } If(MarketPosition == 0 && High == MAUP4 && B == 2 && F < W) { SellShort(Lost,MAUP4); F = F + 1; } If(MarketPosition == 0 && High == MAUP2 && B == 2 && F < W) { SellShort(1,MAUP2); } If(MarketPosition == 0 && High == MAUP3 && B == 2 && F < W) { SellShort(Lost,MAUP3); F = F + 1; } If(MarketPosition == 0 && High == MAUP && B == 2 && F < W) { SellShort(Lost,MAUP); F = F + 1; } If(MarketPosition == 0 && MAUP5[1] && B == 2 && F < W) { SellShort(Lost,Open); F = F + 1; } If(MarketPosition == 1 && BarsSinceEntry >= 1) { If(High >= MyEntryPrice + TakeProfitSet*MinPoint) { MyExitPrice = MyEntryPrice + TakeProfitSet*MinPoint; If(Open > MyExitPrice) MyExitPrice = Open; Sell(0,MyExitPrice); } Else If(Low <= MyEntryPrice - StopLossSet*MinPoint) { MyExitPrice = MyEntryPrice - StopLossSet*MinPoint; If(Open < MyExitPrice) MyExitPrice = Open; Sell(0,MyExitPrice); } } If(MarketPosition == -1 && BarsSinceEntry >= 1) { If(Low <= MyEntryPrice - TakeProfitSet*MinPoint) { MyExitPrice = MyEntryPrice - TakeProfitSet*MinPoint; If(Open < MyExitPrice) MyExitPrice = Open; BuyToCover(0,MyExitPrice); } Else If(High >= MyEntryPrice + StopLossSet*MinPoint) { MyExitPrice = MyEntryPrice + StopLossSet*MinPoint; If(Open > MyExitPrice) MyExitPrice = Open; BuyToCover(0,MyExitPrice); } } If(MarketPosition == 1 && BarsSinceEntry > 0) { If(Low <= Highafterprice[1] - N*MinPoint) { MyExitPrice = Highafterprice[1] - N*MinPoint; Sell(0,Min(Open,MyExitPrice)); } } If(MarketPosition == -1 && BarsSinceEntry > 0) { If(High >= Lowafterprice[1] + N*MinPoint) { MyExitPrice = Lowafterprice[1] + N*MinPoint; BuyToCover(0,Max(Open,MyExitPrice)); } } If(MarketPosition == 1 && BarsSinceEntry > 0) { If(MAUP7[1]) { Sell(0,Open); } } If(MarketPosition == -1 && BarsSinceEntry > 0) { If(MAUP8[1]) { BuyToCover(0,Open); } } If(MarketPosition == 1 && BarsSinceEntry > 0) { If(Highafterprice[1] >= MyEntryPrice + N2*MinPoint) { If(Low <= MyEntryPrice + 1*MinPoint) { MyExitPrice = MyEntryPrice + 1*MinPoint; Sell(0,Min(Open,MyExitPrice)); } } } If(MarketPosition == 1 && BarsSinceEntry > 0) { If(Highafterprice[1] >= MyEntryPrice + N3*MinPoint) { If(Low <= MyEntryPrice + N3*MinPoint) { MyExitPrice = MyEntryPrice + N3*MinPoint; Sell(0,Min(Open,MyExitPrice)); } } } If(MarketPosition == 1 && Time >= 0.145500 && Time <= 0.150000) { Sell(0,Open); } If(MarketPosition == -1 && Time >= 0.145500 && Time <= 0.150000) { BuyToCover(0,Open); } }老师,帮忙看看这段代码出现信号闪烁的原因是什么,谢谢

老师有空帮忙看看