【TBQuant3-新手指南】编程-直观体验序列变量和全局变量的区别
//------------------------------------------------------------------------
// 简称: test_0821_2025
// 名称: 
// 类别: 策略应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
Params

Vars
    //此处添加变量
    Series<Numeric> s_a;
    Global Numeric g_a;
Defs
    //此处添加策略函数
    
Events
    //此处实现事件函数
    
    //初始化事件函数,策略运行期间,首先运行且只有一次
    OnInit()
    {
        
    }

    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    {
        s_a = s_a + 1;
        g_a = g_a + 1;
        Commentary("g_a=" + text(g_a));
        Commentary("s_a=" + text(s_a));
        if(BarStatus==2)
        {
            
            print("g_a=" + text(g_a));
            print("s_a=" + text(s_a));
            print("------------");
        }
    }

//------------------------------------------------------------------------
// 编译版本    2025/8/21 100407
// 版权所有    wangkaiming
// 更改声明    TradeBlazer Software保留对TradeBlazer平台
//            每一版本的TradeBlazer策略修改和重写的权利
//------------------------------------------------------------------------


复制以上代码加载到策略中

实时状态下,同一bar,全局变量一直在变,而序列是不变的


再观察历史情况,序列和全局看似一致。

实际因为历史K线只运行1次,而实时是每个tick运行一次。




附录:公式机制

https://tbq3.tbquant.net/helper?product_id=991&keyword=440&content_id=2594&selectedkey=3823&type=article

序列变量和全局变量区别
【TBQuant3-新手指南】如何查看回测报告?
关于序列变量函数和if
【TBQuant3-新手指南】定时登录的设置
【TBQuant3-新手指南】 委托偏移是什么?
请问多数据源的模型,哪些地方不能用序列变量,只能用全局变量
序列值和数组的区别
【TBQuant3-新手指南】头寸监控是什么,如何快速使用监控器?
全局变量定义
数组和变量序列相互赋值问题