线性回归

 线性回归的几个函数在使用时,如果使用前设置了条件,和没有设置条件的结果不同。以LinearRegSlope()函数为例代码如下,如何理解?



Params

Numeric Length(7);

Vars

Global Numeric gNumSlop;

Series<Numeric> sNumSlop;

Events

OnBar(ArrayRef<Integer> indexs)

{

If(High>=Highest(High[1],Length)) // 添加一个条件

{

PlotBool(\"gNumSlop\",True);

gNumSlop = LinearRegSlope(Close,Length);

Commentary(\"gNumSlop= \"+Text(gNumSlop));

}

sNumSlop = LinearRegSlope(Close,Length); // 无条件

Commentary(\"sNumSlop= \"+Text(sNumSlop)); // sNumSlop不等于gNumSlop???

}

线性回归相关问题
这个线性回归用哪个函数?
有偿编程,多元线性回归
两个数组线性回归,求斜率和截距
请教大神,验证线性回归的截距值不正确
用LinearRegSlope计算线性回归的斜率时第一根Bar总是返回0
线性回归如何求斜率
求大神讲解下LinearRegSlope 线性回归的这个函数的具体用法
请教函数
有两个数学相关的函数解决不了,谢谢解答!

linearregslope引用了linearreg函数,而linearreg函数是一个序列类型

跟你用什么类型的数据结构保存linearregslope函数的运行结果是没有关系的,导致运行不一致的原因是函数内部的运行路径的问题。我再次建议你先搜索论坛里关于,序列类型,的帖子,看看答疑帖再继续问,请不要固执于自己的思路。

明白了,谢谢!

注意!!!

上述回复代码中,双引号前的反斜杠是论坛编辑发布后自动添加的

线性回归是序列类型,你编译信息里应该有一个warning吧

具体原因在社区里搜索序列类型,有相关的解释

编译时没有任何错误或警告。然后我用能想到的所有变量类型改写了代码如下。结果除了有条件方式,其他计算结果都一致。问题在哪儿呢?

Params
	Numeric Length(7);

Vars
	Global Numeric gNumSlop;
	Global Numeric gNumSlop_1;
	Numeric NumSlop;
	Series<Numeric> sNumSlop;
	Array<Numeric> arrNumSlop;
	Integer i;

Events
	OnBar(ArrayRef<Integer> indexs)
	{
		// 有条件的全局变量
		If(High>=Highest(High[1],Length)) // 添加一个条件
		{
			PlotBool(\"gNumSlop\",True);
			gNumSlop = LinearRegSlope(Close,Length);
			Commentary(\"gNumSlop= \"+Text(gNumSlop));
		}
		// 无条件全局变量
		gNumSlop_1 = LinearRegSlope(Close,Length);
		Commentary(\"gNumSlop_1= \"+Text(gNumSlop_1));
		// 普通变量
		NumSlop = LinearRegSlope(Close,Length);
		Commentary(\"NumSlop= \"+Text(NumSlop));
		// 序列变量
		sNumSlop = LinearRegSlope(Close,Length); // 无条件
		Commentary(\"sNumSlop= \"+Text(sNumSlop)); // sNumSlop不等于gNumSlop???
		// 临时变量
		Numeric tmpSlop = LinearRegSlope(Close,Length);
		Commentary(\"tmpSlop= \"+Text(tmpSlop));
		// 数组变量
		For i=0 To Length-1
			arrNumSlop[i] = Close[i];
		Commentary(\"arrNumSlop[]= \"+Text(LinearRegSlopeArray(arrNumSlop)));
	}