金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1810|回复: 7

LINEST函数用法请教

[复制链接]

151

主题

424

帖子

424

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
发表于 2023-7-12 16:32 | 显示全部楼层 |阅读模式
下面是罗宾汉的解释:线性或者指数趋势预测统计函数在金字塔中的应用 - 交易策略发布专区 - 金字塔客服中心 - 专业程序化交易软件提供商 - 0 (weistock.com)
线性或者指数趋势预测统计函数在金字塔中的应用   Post By:2012/12/7 11:01:48 [只看该作者]

金字塔在2.95版升级后,新增4个趋势预测统计函数,分别是


LINEST   返回线性趋势的系数

LOGEST 返回指数趋势的系数

TREND   返回沿线性趋势的值

GROWTH 根据指数趋势返回值


LINEST

使用最小二乘法对已知数据进行最佳直线拟合,并返回描述此直线的数据。
直线的公式为:
y = mx + b or
y = m1x1 + m2x2 + ... + b(如果有多个区域的 x 值)
式中,因变量 y 是自变量 x 的函数值。M 值是与每个 x 值相对应的系数,b 为常量。注意 y、x 和 m 可以是向量。金字塔函数中已将x做为{1,2,3...}数组默认是处理
语法
LINEST(known_y's,N,const)
Known_y's     是关系表达式 y = mx + b 中已知的 y 值集合。
N       为数组或序列数据统计数量
Const     为一逻辑值,用于指定是否将常量 b 强制设为 0。
  如果 const 为 TRUE 或省略,b 将按正常计算。
  如果 const 为 FALSE,b 将被设为 0,并同时调整 m 值使 y = mx。
例如我们有一组数组A值为{3100,4500,4400,5400,7500,8100}, 执行LINEST(A,6,FALSE);后将返回1461.538;
执行LINEST(HIGH,6,FALSE);则表示计算最近6周期的最高价的线性趋势的系数.



问题是自变量X不为金字塔默认的{1,2,3},在EXCEL中,linest的格式是LINEST(known_y's, [known_x's], [const], [stats]),即有Y值的集合,又有X值的集合,金字塔的linest与EXCEL的linest格式不同,输出值也不同,请问如何解决?





回复

使用道具 举报

0

主题

2641

帖子

2641

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2023-7-12 16:54 | 显示全部楼层
本帖最后由 资深技术03 于 2023-7-12 17:05 编辑

抱歉,这个是函数上的差异造成的。金字塔中此函数只提供三个参数,和excel自带的函数是有区别的。
回复

使用道具 举报

151

主题

424

帖子

424

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-7-12 17:23 | 显示全部楼层
用金字塔中说明的办法,返回值为0,不为说明中的16461.538

截图202307121723478745.png
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2023-7-12 17:26 | 显示全部楼层
公式举例如下:

VARIABLE: A[6]=0;

A[1]:=3100;
A[2]:=4500;
A[3]:=4400;
A[4]:=5400;
A[5]:=7500;
A[6]:=8100;



OUT:LINEST(A,6,FALSE);

这么写
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

151

主题

424

帖子

424

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-7-12 17:48 | 显示全部楼层
请问求出的这个1461.538是什么值呀,y = mx + b中的啥?Y可以看作A了吗?
y = b*m^x 或
y = (b*(m1^x1)*(m2^x2)*_)(如果有多个 x 值)
其中因变量 y 是自变量 x 的函数值。m 值是各指数 x 的底,而 b 值是常量值。注意:公式中的 y、x 和 m 均可以是向量.金字塔函数中已将x做为{1,2,3...}数组默认是处理
如何理解X做为{1,2,3...}数组默认是处理
回复

使用道具 举报

151

主题

424

帖子

424

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-7-13 08:19 | 显示全部楼层
下面是python中求回归系数的代码,请问能不能做成函数供PEL调用,或将求出的回归系数coefficients做成全局变量供DEL调用,如何编写,请老师指教。
在使用NumPy进行回归分析时,可以使用线性代数库(numpy.linalg)中的函数来计算回归系数。以下是使用NumPy进行简单线性回归的示例代码:

import numpy as np

# 准备数据
x = np.array([1, 2, 3, 4, 5])  # 自变量
y = np.array([2, 4, 5, 4, 5])  # 因变量

# 添加常数项列
X = np.column_stack((x, np.ones_like(x)))

# 计算回归系数
coefficients = np.linalg.lstsq(X, y, rcond=None)[0]

# 打印回归系数
print("回归系数:", coefficients)
在上述代码中,我们首先准备了自变量 x 和因变量 y 的数据。然后,我们使用 np.column_stack() 函数将自变量 x 和一个全为1的常数项列组合成一个矩阵 X,以便进行线性回归分析。接下来,我们使用 np.linalg.lstsq() 函数计算回归系数,其中 rcond=None 表示不进行奇异值截断。最后,我们打印出计算得到的回归系数。

这只是一个简单线性回归的示例,如果需要进行多元回归分析,可以将自变量 x 扩展为一个矩阵,并相应地修改矩阵 X 的构建方法。

补充内容 (2023-7-13 08:24):
LINEST已经接近我的需求了,就是格式不对,INTERCEPT的格式就完全符合要求,输入Y、X数值,就可得到截距,如果能提供INTERCEPT函数的代码进行修改也能达到目的,不知是否属于保密内容?
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2023-7-13 09:21 | 显示全部楼层
看下这个自带案例
截图202307130919559478.png
截图202307130920151806.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

151

主题

424

帖子

424

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-7-13 10:28 | 显示全部楼层
收到,我学习学习,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-12-22 16:46 , Processed in 0.222541 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表