请帮忙看看,有仓位无法卖出

用的A函数持仓,买入时候没有问题,卖出时候,系统一直不发单,每个代码都研究了没有研究出来是哪个问题,barsSinceEntry最有可能的问题是出在这里,但不知道如何解决,麻烦帮忙看看,该如何修改,感谢,如果可以将正确的代码发一下

Params

   Numeric MALength(20);          // 短期均线周期(20)

   Numeric LongMAPeriod(60);      // 长期均线周期(60)

   Numeric BreakTicks(2);         // 突破跳数(向下突破)

   Numeric FarTicks(5);           // 远离均线跳数(基于最高价,向下远离)

   Numeric BelowTicks(2);         // 突破均线上方跳数(平空用)

   Numeric MaxDeviationTicks(15); // 前一根K线最高点允许低于前两根均线的最大跳数(实际用 >= 均线-跳数)

   Numeric MaxLossPercent(0.01);  // 前一根K线最大跌幅(1%)

   Numeric MaxJumpPercent(0.01);  // 当前K线开盘相对于前一根K线最低点的最大跳空幅度

   Numeric RiskAmount(600);       // 每笔交易最大允许亏损金额(元)

   Numeric MaxLots(20);            // 最大允许开仓手数

Vars

   Series<Numeric> MA20;          // 20日均线

   Series<Numeric> MA60;          // 60日均线

   Numeric MinPoint;              // 最小变动价位

   Series<Numeric> shortInitialStop;   // 空头初始止损价(前一根K线最高点)

   Series<Bool> shortFarFromMA;        // 是否曾远离均线(基于某根K线最高价,向下远离)

   Bool stopSig;//止损信号标志

   Numeric stopPrice;//最终确定的止损价格。

   Numeric dynamicStop;//动态止损计算出的临时价格。

   Numeric lossPercent;           // 前一根K线跌幅百分比

   Bool enteredThisBar;           // 同一Bar内是否已开仓(防重复开单)

   Numeric lastBar;               // 上一根Bar的编号

   Numeric tradeLots;              // 实际开仓手数

   Numeric entryBar;               // 实际开仓时的Bar编号(用于计算持仓时长)

Events

   OnBar(ArrayRef<Integer> indexs)

   {

       if (CurrentBar != lastBar)

       {

           enteredThisBar = False;

           lastBar = CurrentBar;

       }

 

       MinPoint = MinMove * PriceScale;

       MA20 = Average(Close, MALength);

       MA60 = Average(Close, LongMAPeriod);

       if (A_SellPosition == 0)

       {

           shortInitialStop = 0;//空头初始止损价shortInitialStop

           shortFarFromMA = False;//

           entryBar = 0;                      }

。

       if (A_SellPosition > 0 && entryBar == 0)

       {

           entryBar = CurrentBar;      //

       }

       if (A_SellPosition == 0 && !enteredThisBar)

       {

           lossPercent = (Open[1] - Close[1]) / Open[1];

           Bool entryCondition =

               MA20[1] < MA60[1] && Close[1] < MA20[1] &&  Close[1] < Open[1] &&   High[1] >= MA20[2] - MaxDeviationTicks * MinPoint &&

               lossPercent <= MaxLossPercent;        

           if (entryCondition)

           {

               Numeric shortEntryPrice = Low[1] - BreakTicks * MinPoint;

               // 跳空限制:开盘价不低于前低 * (1 - MaxJumpPercent)

               Bool noExcessiveGap = Open >= Low[1] * (1 - MaxJumpPercent);//

               if (Low <= shortEntryPrice && noExcessiveGap)

               {

                   Numeric actualPrice = Min(Open, shortEntryPrice);//入场价格

                   Numeric lossPerLot = (High[1] - actualPrice) * ContractUnit;//

                   if (lossPerLot > 0)

                   {

                       Numeric maxLotsByRisk = IntPart(RiskAmount / lossPerLot);//计算可买手数

                       

                     

                       Commentary("1手止损金额:" + Text(lossPerLot));

                       Commentary("含义:" + Text(MinPoint * ContractUnit));

                       

                       if (maxLotsByRisk >= 1)

                       {

                           tradeLots = Min(maxLotsByRisk, MaxLots);

                           tradeLots = Max(tradeLots, 1);//开仓手数

                           

                           Commentary("开仓手数:" + Text(tradeLots));

                           // 执行开空(SellShort 自动关联账户)

                           SellShort(tradeLots, actualPrice);

                           // 记录初始止损和状态

                           shortInitialStop = High[1]; //

                           shortFarFromMA = False;//

                           enteredThisBar = True;//

                           entryBar = CurrentBar;      // 记录开仓Bar编号

                           Commentary("开仓Bar编号:" + Text(entryBar));

                       }

                   }

               }

           }

       }

   

       Commentary("A_SellPosition=" + Text(A_SellPosition));

       if (A_SellPosition > 0)

       {

         

           Numeric barsSinceEntry = IIF(entryBar > 0, CurrentBar - entryBar, 9999);

            Commentary("持仓经过的Bar数:" + Text(barsSinceEntry));

     

           if (barsSinceEntry >= 1)

           {

              Commentary("持仓经过的Bar数:" + Text(barsSinceEntry));

                              if (High <= MA20 - FarTicks * MinPoint)

                   shortFarFromMA = True;// 是否曾远离均线(基于某根K线最高价,向下远离)

               else

                   shortFarFromMA = shortFarFromMA[1];

               stopSig = False;//

               stopPrice = 0; //

         

               if (High >= shortInitialStop)// //空头初始止损价shortInitialStop

               {

                   stopSig = True;

                   stopPrice = shortInitialStop;

               }

               if (barsSinceEntry >= 4)

               {

                   Commentary("3根K线" + Text(barsSinceEntry));

         

                   if (shortFarFromMA && High >= MA20[1] + BelowTicks * MinPoint)

                   {

                       dynamicStop = MA20[1] + BelowTicks * MinPoint;

                       if (stopSig)

                           stopPrice = Max(stopPrice, dynamicStop);

                       else

                       {

                           stopSig = True;

                           stopPrice = dynamicStop;

                       }

                   }

               }

         

               if (stopSig)

                   BuyToCover(0, Max(Open, stopPrice));

           }

       }

   }

为何有仓位仍然开仓?
请帮忙编写
帮忙看看开仓设置
编译时提示错误,错误号2002,帮忙看看是否有问题
老师帮忙看看,开不了仓
帮忙看看我的对冲套利平仓条件有什么问题
请老师帮忙看看代码的错误
求老师帮忙看看
仓位异常
帮忙看看代码

代码分析,要么发付费代写板块,要么投稿比较好。社区回帖很难说清楚。要么下午直播的时候讲一下

好的,如果可以的话,要么直播的时候说下,我晚上回去看回放

已发邮箱

https://bbs.tbquant.net/thread/forum1110