// 最新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);
}
}
}
建议发可以编译的代码
默认策略是不会用时有多空的
你setreadeside设置了2边?代码里没有体现
你也要说清楚是什么情况,哪里看到的多空持仓
我在TBQuant里的实盘里出现了啊