求助 编译没有错误但是代码没有执行sell

//定义一些交易策略的参数ParamsEnum<String> StopType([\"按百分比%\",\"按指定价\",\"按跳数\"]); //StopType是一个字符串变量,可以取三个值之一:\"按百分比%\"、\"按指定价\"或\"按跳数\"Numeric StopLength(35); // StopLength是一个数值变量,指定止损距离的跳数// 定义一些交易策略的变量VarsNumeric StopPrice; // StopPrice是一个数值变量,存储每笔交易的止损价格 Numeric my_entryprice; // my_entryprice是一个数值变量,存储每笔交易的入场价格 Bool is_opened(False); // is_opened是一个布尔变量,表示是否已经开仓,初始值为False Bool is_closed(True); // is_closed是一个布尔变量,表示是否已经平仓,初始值为True// 定义一个事件处理器,用于处理每根新K线Events OnBar(ArrayRef<Integer> indexs) { Range[0:DataSourceSize() - 1] // 遍历数据源中所有的K线,从第一根到最后一根 { If(!is_opened &&is_closed && High[1]>High[2]&& Low[1]<Low[2]&& low[2]>Close[1]&& Open<close[1]) // 如果没有开仓并且上一笔交易已经平仓,并且前一根K线的最高点和最低点都高于前两根K线,并且前两根K线的最低点高于前一根K线的收盘价,并且当前K线的开盘价低于前一根K线的收盘价(看涨吞没形态) { my_entryprice=close[1]; // 把入场价格设为前一根K线的收盘价 Buy(1, my_entryprice); // 以入场价格买入一手合约 is_opened = True; // 把is_opened设为True表示已经开仓 is_closed = False; // 把is_closed设为False表示还没有平仓 } if(MarketPosition==1) // 如果我们持有多头仓位 { StopPrice=my_entryprice -StopLength*MinMove*PriceScale; // 根据我们的入场价格和止损距离计算并设置止损价格 } If (MarketPosition==1 && Time()> longEntryTime() && longPositionProfit()>0 && BarsSinceEntry()>=1) // 如果我们持有多头仓位并且在我们入场时间之后并且有正利润 { sell(1,Open); // 以市场开盘价卖出一手合约退出我们的仓位 } Else If (MarketPosition==1&& StopType == \"按跳数\" &&BarsSinceEntry()>=0&&low<StopPrice) // 否则如果我们的止损类型是按跳数并且已经开仓并且当前K线的最低点跌破我们的止损价格 { sell(1,StopPrice); // 以我们的止损价格卖出一手合约退出我们的仓位 PlotNumeric(\"止损出场价格\", StopPrice); // 在图表上画出我们的止损出场价格 } }}代码编译成功开仓没有问题就是没有执行sell——保护止损和获利止盈

没有执行sell,那就诊断一下,把执行sell的条件都输出一下,看看到底为什么没满足