下面是很简单的公式,data0的数据用的是30分钟。在data0图层里可以看到。data1.c显示的30分钟k线,当天日线收盘的价格。但是同样是用这些数据计算的data1.zhongxinlineday显示却是当前30分钟k线的上一日日线的计算结果。请问里面是什么逻辑。验证了几种公式,都是这种现象。
Params
Vars
Series<Numeric> zhongxinlineday;
Events
OnInit()
{
SubscribeBar(data0.Symbol,"1d",Data0.BeginDateTime);//订阅行情
}
OnBar(ArrayRef<Integer> indexs)
{
Range[0:0]
{
Commentary("data1.zhongxinlineday="+Text(data1.zhongxinlineday));
Commentary("data1.c="+Text(data1.c));
}
Range[1:1]
{ zhongxinlineday=Average((Close+h+l)/3,5); //更紧凑的中轨线
}
}
小周期调用大周期,大周期也是要回溯1的,不然小周期没有走完,怎么可以确定大周期的当前的收盘,仔细想想
Params
Vars
Series<Numeric> zhongxinlineday;
Events
OnInit()
{
SubscribeBar(data0.Symbol,"1d",Data0.BeginDateTime);//订阅行情
}
OnBar(ArrayRef<Integer> indexs)
{
Range[0:0]
{
Commentary("data1.zhongxinlineday="+Text(data1.zhongxinlineday));
Commentary("data1.c[1]="+Text(data1.c[1]));
}
Range[1:1]
{ zhongxinlineday=Average((Close+h+l)/3,5); //更紧凑的中轨线
}
}
我来试下
这里主要是想知道这个跨周期的设计逻辑。一开始我以为跨周期有点像全局变量,小周期图层a读取大周期图层b的某个公式计算出的值,是实时同步的,现在看起来不是这样的。如果明确tb的设计原则是小周期读取大周期是回溯的,也没问题。重要的是明确,到底是那种方式,这样编程的时候才不会混乱。