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

写的一个比较简单的单均线反手策略,参考了说明文档里的平仓反手的代码,为什么不反手呢?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); }

语句没执行到,则代表条件不满足你出于什么目的这里面要使用全局变量SetGlobalVar的呢全局变量的使用需要精准控制,再例如你平多也不和开空在一起,你怎么保证平多就能开空?