【TBQuant3-新手指南】K线图如何设置多个图层

目标

当我们需要交易多个品种或者多个周期时,即跨周期跨品种相关的交易时。往往需要订阅多个合约的多个周期。

那么如何设置这些内容,这里展示通过设置最简单的K线图形式。

1.K线图

首先准备一个K线图,通常情况下默认带有一个品种


假设我们需要做跨周期跨品种交易

图上的RB888为15分钟,我们需要增加30分钟和60分钟的RB888,和日线HC888,日线I9888作为交易标的。

此时我们点击鼠标右键,选择策略单元设置:

在设置页面中,左侧是已经有的图层(rb888 15分钟),右侧为对当前图层进行的设置

左侧有两种添加方法,键盘添加和列表添加

我们添加一个rb888,30分钟

使用键盘添加:可以快速指定一个具体合约添加进来,我们选择rb888


点击后,出现对应图层,点击对应图层(这里是data1),在右侧切换其周期为30分钟。

同理可以尝试添加一个rb888,60分钟的。


接下来我们使用列表添加,增加2个其他品种 HC888 和 I9888

选中需要的品种(可多选)添加

最后检查所有的图层设置,确认



以上多图层(跨周期跨品种)就设置完成了,你学会了吗?



补充设置:

如何K线图显示超过4个图层,右上角系统设置里

系统设置->K线设置->最大显示图层数

【TBQuant3-新手指南】如何查看回测报告?
【TBQuant3-新手指南】如何在K线图启动量化交易
【TBQuant3-新手指南】定时登录的设置
【TBQuant3-新手指南】 委托偏移是什么?
【TBQuant3-新手指南】如何用监控器设置手工仓?
如何让多图层只加载0图层的K线图表?
【TBQuant3-新手指南】如何打开工作区,工作区怎么设置?
【TBQuant3-新手指南】头寸监控是什么,如何快速使用监控器?
策略交易中的多个运行策略的K线图,如何把多K线图窗口合并在一个窗口
希望能控制K线图层高度

如单个商品在编写策略时以下代码就可实现:

Defs

   //此处添加公式函数

Events

   //此处实现事件函数

   OnInit()

   //设置周期    

   {    

       SubscribeBar(data0.Symbol,"3m",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"5m",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"10m",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"15m",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"20m",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"30m",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"1h",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"2h",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"3h",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"1d",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"2d",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"1w",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"2w",data0.BeginDateTime);

       SubscribeBar(data0.Symbol,"1mon",data0.BeginDateTime);

   //交易设置    

      Range[0:DataCount-1]

       {

           SetConsecEntries(1);//设置最大建仓次数

           {                      

           If(IsRollover)

            {

               AddDataFlag(Enum_Data_RolloverBackWard());//设置后复权

                }

           If(IsRolloverRealPrice)

            {

               AddDataFlag(Enum_Data_RolloverRealPrice());//是否映射真实价格

                }

           If(IsAutoSwapPosition)

            {

               AddDataFlag(Enum_Data_AutoSwapPosition());//设置自动换仓

               }    

           }

     }

}