- 精华
- 20
- 在线时间
- 2981 小时
- UID
- 4
- 积分
- 22709
- 帖子
- 4802
- 阅读权限
- 255
- 注册时间
- 2007-7-20
- 最后登录
- 2024-1-15
- 精华
- 20
- UID
- 4
- 积分
- 22709
- 帖子
- 4802
- 主题
- 64
- 阅读权限
- 255
- 注册时间
- 2007-7-20
- 最后登录
- 2024-1-15
|
仔细检查了一下,发现代码确实有问题,加多了一个ABS()计算。
如果着急使用就用以下代码另外建立一个自己的线性回归函数:
- //------------------------------------------------------------------------
- // 简称: LinearReg
- // 名称: 求线性回归
- // 类别: 用户函数
- // 类型: 内建函数
- // 输出: 布尔型
- //------------------------------------------------------------------------
- Params
- NumericSeries Price(1);
- Numeric Length(10);
- Numeric TgtBar(0);
- NumericRef LRSlope;
- NumericRef LRAngle;
- NumericRef LRIntercept;
- NumericRef LRValue;
- Vars
- Numeric SumXY(0);
- Numeric SumY;
- Numeric SumX;
- Numeric SumXSqr;
- Numeric Divisor;
- Numeric i;
- Begin
- if (Length > 1)
- {
- SumX = Length * ( Length - 1 ) * 1/2;
- SumXSqr = Length * ( Length - 1 ) * ( 2 * Length - 1 ) * 1/6 ;
- Divisor = Sqr( SumX ) - Length * SumXSqr ;
- SumY = Summation( Price, Length ) ;
- for i = 0 to Length - 1
- {
- SumXY = SumXY + i * Price[i] ;
- }
-
- LRSlope = ( Length * SumXY - SumX * SumY) / Divisor ;
- LRAngle = Atan ( LRSlope ) ;
- LRIntercept = ( SumY - LRSlope * SumX ) / Length ;
- LRValue = LRIntercept + (Length - 1 - TgtBar) * LRSlope;
- Return True;
- }Else
- {
- Return False;
- }
- End
- //------------------------------------------------------------------------
- // 编译版本 GS2004.06.12
- // 版权所有 TradeBlazer Software 2003-2008
- // 更改声明 TradeBlazer Software保留对TradeBlazer平
- // 台每一版本的TradeBlazer公式修改和重写的权利
- //------------------------------------------------------------------------
复制代码 |
|