平仓反手策略为什么只平仓不反手

写的一个比较简单的单均线反手策略,参考了说明文档里的平仓反手的代码,为什么不反手呢?

OnBar(ArrayRef<Integer> indexs)

{    

AvgValue = AverageFC(Close,Length);

If(Close > AvgValue)

{

 PlotAuto("均线",AvgValue,AvgValue,Red,Enum_Line,Enum_Solid);

 }Else

 {

 PlotAuto("均线",AvgValue,AvgValue,Green,Enum_Line,Enum_Solid);

  }

jincha = CrossOver(Low,AvgValue);

sicha = CrossUnder(High,AvgValue);


LastBarTime = GetGlobalVar(0);    

TickCounter = GetGlobalVar(1);


// 最新Bar第一次生成时,Tick重新开始计数

If(BarStatus == 2 && gValue[0]!= Time)    

{    

LastBarTime = Time;

TickCounter = 0;

}

Print("TickCounter="+text(TickCounter));

If(MarketPosition <> 1 && jincha[1])

{        

If(MarketPosition == 0 || BarStatus != 2)    

// 无持仓,直接买多仓

// 持空仓且Bar不是实时行情,平空仓,买多仓

{

Buy(lots,Open);

}Else    // 持空仓,Bar实时行情,平空仓,通过TickCounter计数,延迟反手

{    

BuyToCover(0,Open);        

If(TickCounter == 0)

{    

  TickCounter = 1;

}Else If(TickCounter < DelayTicks)

{

  TickCounter = TickCounter + 1;

}Else            

{

Buy(lots,Open);        

}

}

}

If(MarketPosition <> -1 && sicha[1])    

{

If(MarketPosition == 0 || BarStatus != 2)    

{    

SellShort(lots,Open);

}Else     // 持多仓且Bar为实时行情,平多,延迟反手

{

Sell(0,Open);

If(TickCounter == 0)            

{

TickCounter = 1;

}Else If(TickCounter < DelayTicks)

{

TickCounter = TickCounter + 1;

}Else

{

SellShort(lots,Open);

}

}

}

SetGlobalVar(0,LastBarTime);

SetGlobalVar(1,TickCounter);

}

平仓延迟反手
反手策略
为什么用最简单的均线交易策略时 平仓后反手显示资金不足呢?
设置了SetTradeSide(1)为什么只平仓不开仓
延迟反手
为什么相同条件,平仓后不能反手开仓?
反手罗辑有问题
开反手单的平仓会被作废
关于反手交易的问题
反手信号,平仓成交后再发开仓单案例

语句没执行到,则代表条件不满足

你出于什么目的这里面要使用全局变量SetGlobalVar的呢

全局变量的使用需要精准控制,

再例如你平多也不和开空在一起,你怎么保证平多就能开空?