OnOpenBar内对跨周期的运算

刚才赋值的问题我大概还能想明白,现在这个像灵异现象,百思不得姐。老师来给瞧一下吧。

测试代码如下:

Vars

Series <Numeric> x;

series <Numeric> y;


Events

OnInit()

{

SubscribeBar(Data0.Symbol,5m,Data0.BeginDateTime);

}

OnBarOpen(ArrayRef<Integer> indexs)

{

   data1.x = data1.x + 1;

}

OnBar(ArrayRef<Integer> indexs)

{

data1.y = data1.y + 1;

           Commentary(data1.Currentbar      = +text(data1.CurrentBar));

           Commentary(OnBarOpen: 图层1自加1 = +text(data1.x));

            Commentary(OnBar:     图层1自加1 = +text(data1.y));

}

data-href=data-href=data-href=data-href=

上面是前4根k线在onbaropen域自加1的结果,对跨周期的操作实在很迷,如图1分钟周期订阅5分钟周期,每一根5分钟周期data1的新bar出现以及之后新的1分钟k bar出现都会执行一次+1,为什么这样?

如何对跨周期的策略进行批量的回测呢?
关于跨周期的问题
跨周期
跨周期
关于跨周期的问题
关于跨周期报错的问题
BOLL跨周期跨天数的指标值如何取?
TB跨周期MA的问题
跨周期
支持跨品种跨周期的逐笔回测吗?

其实我的问题是自己建了同花顺那个神奇九转指标的函数,在onbaropen引用,不想计算那么多次,但是反复调试都有bug,最后提炼出来这么个简单的算式。。。

多图层还要判断图层来操作序列变量?OnBarOpen需要这样 而OnBar不需要?感觉很奇怪,应该是个TBQ的Bug吧

onbar因为都是相同时间间隔 你看不出

onbaropen即使大周期也只需运行一次

所以不能让小周期上的onbaropen去触发大的

反正使用起来很怪

可是问题在于,onbar他对于图层一的自加一是可以正确识别的,它同onbaropen都在一个大周期内出现了5次,onbar只有第5次新的大周期出现的时候加了一次,即使他每一分钟都运行过120次。。。

Vars

Series <Numeric> x;


series <Numeric> y;




Events


OnInit()


{


SubscribeBar(Data0.Symbol,\"5m\",Data0.BeginDateTime);


}


OnBarOpen(ArrayRef<Integer> indexs)


{

Numeric i;

for i=0 to GetArraySize(indexs)-1

{

if(indexs[i] == 1)

{

data1.x = data1.x + 1;

}

}

 

//data1.Commentary(\"OnBarOpenx: 图层1自加1 = \"+text(data1.x));

}


OnBar(ArrayRef<Integer> indexs)

{

data1.y = data1.y + 1;

Commentary(\"data1.Currentbar      = \"+text(data1.CurrentBar));

Commentary(\"OnBarOpenx: 图层1自加1 = \"+text(data1.x));

Commentary(\"OnBary:     图层1自加1 = \"+text(data1.y));

}

我来调下

补充下,onbar是没问题的,所以更奇怪了