Params
   Numeric FastLength(5);
   Numeric SlowLength(20);
   Numeric DelayTicks(5);
Vars    
   Series<Numeric> AvgValue1;
   Series<Numeric> AvgValue2;
   Numeric LastBarTime;
   Numeric TickCounter;
   Numeric dataIndex;
Events
OnBar(ArrayRef<Integer> indexs)
{    
   AvgValue1 = AverageFC(Close,FastLength);
   AvgValue2 = AverageFC(Close,SlowLength);
   LastBarTime = GetGlobalVar(0);    
   TickCounter = GetGlobalVar(1);
   // 最新Bar第一次生成时,Tick重新开始计数
   If(BarStatus == 2 && gValue[0]!= Time)    
   {    
       LastBarTime = Time;
       TickCounter = 0;
   }
   If(MarketPosition <> 1 && AvgValue1[1] > AvgValue2[1])
   {        
       If(MarketPosition == 0 || BarStatus != 2)    
       // 无持仓,直接买多仓
       // 持空仓且Bar不是实时行情,平空仓,买多仓
       {
           Buy(1,Open);
       }Else    // 持空仓,Bar实时行情,平空仓,通过TickCounter计数,延迟反手
       {    
           BuyToCover(1,Open);        
           If(TickCounter == 0)
           {    
              TickCounter = 1;
           }Else If(TickCounter < DelayTicks)
           {
              TickCounter = TickCounter + 1;
           }Else            
           {
               Buy(1,Open);        
           }
       }
   }
   
   If(MarketPosition <> -1 && AvgValue1[1] < AvgValue2[1])    
   {
       If(MarketPosition == 0 || BarStatus != 2)    
       {    
           SellShort(1,Open);
       }Else     // 持多仓且Bar为实时行情,平多,延迟反手
       {
           Sell(1,Open);
           If(TickCounter == 0)            
           {
               TickCounter = 1;
           }Else If(TickCounter < DelayTicks)
           {
               TickCounter = TickCounter + 1;
           }Else
           {
               SellShort(1,Open);
           }
       }
   }
   SetGlobalVar(0,LastBarTime);
   SetGlobalVar(1,TickCounter);
}
这是延迟反手,你想说明有什么问题 可以列出实际的截图或者视频

问题:平仓后,不能在当前bar开仓,需要下根bar开盘才开仓。如何修改实现平仓后延时5个tick开仓?
问题:平仓后,不能在当前bar开仓,需要下根bar开盘才开仓。如何修改实现平仓后延时5个tick开仓?