全部 TBQuant功能 TBL语言 TB开户 问答专区 其他
跨周期指标为什么是上一根k线数据??
2022-05-17 23:15

下面是很简单的公式,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);  //更紧凑的中轨线
              
           }
         
        } 
            
      
 

wangkaiming

我来试下

2022-05-18 08:40
202****4175113102
@wangkaiming

这里主要是想知道这个跨周期的设计逻辑。一开始我以为跨周期有点像全局变量,小周期图层a读取大周期图层b的某个公式计算出的值,是实时同步的,现在看起来不是这样的。如果明确tb的设计原则是小周期读取大周期是回溯的,也没问题。重要的是明确,到底是那种方式,这样编程的时候才不会混乱。

     

2022-05-18 09:43
wangkaiming

小周期调用大周期,大周期也是要回溯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);  //更紧凑的中轨线
              
           }
         
        } 

2022-05-18 09:00
您未登录,请先 登录注册 后发表评论
顶部