用LinearRegSlope计算线性回归的斜率时第一根Bar总是返回0

今天测试时发现的,即使加载了足够公式回溯需要的Bar, 第一根Bar都是返回0,第二根Bar才开始返回数据

函数文档: https://tbq3.tbquant.net/helper?product_id=991&keyword=1122&content_id=577&selectedkey=1622&type=article#linearregslope-%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E7%9A%84%E6%96%9C%E7%8E%87  

测试用的代码

OnBar(ArrayRef<Integer> indexs)
    {
        if(CurrentBar >= 10 AND CurrentBar <= 20)
        {
            //求线性回归的斜率
            Numeric value = LinearRegSlope(High, 5);
            Print("Bar #:" + Text(CurrentBar) + "  -> LinearRegSlope:" + Text(value)); 
        }
        
    }

输出的结果如下

线性回归如何求斜率
两个数组线性回归,求斜率和截距
线性回归相关问题
线性回归
这个线性回归用哪个函数?
请教大神,验证线性回归的截距值不正确
有偿编程,多元线性回归
求大神讲解下LinearRegSlope 线性回归的这个函数的具体用法
MaxContracts返回当前持仓的最大持仓合约数总是0
关于LinearRegSlope函数的参数类型

这种情况我建议的是,数据计算部分不要return掉,保证函数都执行,但是调用判断信号的时候再return

老师的意思是不是就像MA函数一样,每根Bar都持续的计算,用到MA数值判断信号的时候直接用就是了?

对

因为linearregslope是一个序列类型的对象

放在或有执行的结构中就可能存在数据缺口导致的计算错误

原来如此,老师这么一说就清楚了

这样呢?

OnBar(ArrayRef<Integer> indexs)
    {
        //求线性回归的斜率
        Numeric value = LinearRegSlope(High, 5);
        if(CurrentBar >= 10 AND CurrentBar <= 20)
        {
            Print("Bar #:" + Text(CurrentBar) + "  -> LinearRegSlope:" + Text(value)); 
        }
    }


谢谢老师回复,这样可以,意识到这个问题后我已经提前调用一次Liear函数来确保在我需要的bar获得数据,不过我想知道为什么第一次计算是0, 是不是Linear系列的函数以及其它数学函数也是这种表现。