判断语句失效

请问老师,为什么没有限制在32到 64的bar之间开仓,这个判断条件没有起作用? Params Vars Integer lots_num; Events OnBar(ArrayRef<Integer> indexs) { Commentary("BarsSinceToday:"+Text(BarsSinceToday)); lots_num=1; //做多 if(MarketPosition == 0) { if(BarsSinceToday >=32 And BarsSinceToday < 64) { Buy(lots_num,Close); } } //做空 if(MarketPosition == 0) { if(BarsSinceToday >=32 And BarsSinceToday < 64) { SellShort(lots_num,Close); } } //平仓 Commentary("MarketPosition = " + Text(MarketPosition)); if(BarsSinceToday == 67 and MarketPosition > 0) { Commentary("MarketPosition = " + Text(MarketPosition)); Sell(0, Close[1]); } if(BarsSinceToday == 67 And MarketPosition < 0) { Commentary("MarketPosition = " + Text(MarketPosition)); BuyToCover(0, Close[1]); } }

我不知道你想表达的是什么 在我看来 你的开仓条件是 当前bar是今天的第32到63根bar之间的任意一根,并且当前没有持仓,那么开多(开空条件是无法满足的) 当前bar是今天第67根bar的时候,平仓。 我看了一下图上信号是符合这个逻辑的,我不知道你在问什么