代码如下:
Events
//初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作
OnInit()
{
//订阅1日线
SubscribeBar(Symbol, 1d, Data0.BeginDateTime, 0, Enum_Data_RolloverBackWard);
}
//在新bar的第一次执行之前调用一次,参数为新bar的图层数组
OnBarOpen(ArrayRef<Integer> indexs)
{
//但是放在这里就可以正常显示
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
Integer i;
Integer shuzudx = GetArraySize(indexs);
For i=0 to shuzudx-1
{
Integer id = indexs[i]; //当前循环的图层ID
Print(测试 id= + Text(id));//打印能输出1和0
Data[id].Commentary(测试 id= + Text(id));//为什么不在订阅日线上显示?
}
}
问题描述图:
这就有了,但是小周期只要再多一根k线,下面大周期就不显示了
quant机制问题,被覆盖了
举个例子,如果是1分钟k线和5分钟k线进行跨周期
那么在1跟5分钟k线的时间范围里,对应了5根1分钟k线。
当运行到第一根1分钟k线,这个时候onbar驱动,收到两个图层数据然后commentary,两个图层都有。
运行到第二根1分钟k线,这个时候只有1分钟k线图层驱动,这个时候只commentary一个图层,1分钟bar已经换了一根bar,但是5分钟bar还是这一根,会覆盖前面一根bar的运行结果,所以commentary就消失了。
你可以试试调整结束时间,让小图层只显示一根bar,你就能在大图层上看到commentary信息了