帮助文件代码原文如下,实测是在下个K线才反手开仓,求解答
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);
}
完蛋了,难怪我今天使用,多单平掉以后,没有继续开空单。
实测代码没有任何问题。
现在可以了吗?
现在好没好啊?
已复现 可能是版本升级造成的不兼容 正在核实处理了
感谢回复,亟待尽快解决,实盘坐等
请问搞清是否有问题了吗?
大佬查出原因了没有,着急上火的呀