1

另外,我现在的问题是,如果我想回归两个不等间距无序的数组,例如

x = np.array([0.1, 0.5, 2.0, 1.6, 2.8, 3.5, 0.9, 1.5])
y = np.array([0.22, 1.21, 4.19, 3.39, 5.85, 7.21, 2.0, 3.2])

在 talib 中使用 LINEARREG 函数应该怎么做?


感谢truf指出c代码链接,LINEARREG仅处理等距离x数组,仅通过输入y数组回归(此处收盘价)。

y = array([ 2.,  4.,  6.,  8., 10., 12., 14., 16.])

tb.LINEARREG_INTERCEPT(y,5)
>>> array([nan, nan, nan, nan,  2.,  4.,  6.,  8.])

tb.LINEARREG_SLOPE(y,5)
>>> array([nan, nan, nan, nan,  2.,  2.,  2.,  2.])

还应该注意输入的numpy数组需要类型检查

dtype=np.float

匹配c中的'double'。


原始问题

我正在使用TA-Lib计算技术指标,但我不了解LINEARREG函数,其中只有一个输入数组(称为收盘价),通常做线性回归,我们需要两个数组x和y进行回归,例如我们想回归收盘价。

实数 = LINEARREG(关闭,时间段 = 14)

4

1 回答 1

2

你最好检查这个函数的 ta-lib 代码: https
://sourceforge.net/p/ta-lib/code/HEAD/tree/trunk/ta-lib/c/src/ta_func/ta_LINEARREG.c#l238 它包含以下解释:

   /* Linear Regression is a concept also known as the
* "least squares method" or "best fit." Linear
* Regression attempts to fit a straight line between
* several data points in such a way that distance
* between each data point and the line is minimized.
*
* For each point, a straight line over the specified
* previous bar period is determined in terms
* of y = b + m*x:
*
* TA_LINEARREG          : Returns b+m*(period-1)
* TA_LINEARREG_SLOPE    : Returns 'm'
* TA_LINEARREG_ANGLE    : Returns 'm' in degree.
* TA_LINEARREG_INTERCEPT: Returns 'b'
* TA_TSF                : Returns b+m*(period)
*/

似乎您的收盘价将被视为 y 数组,x 将是天数数组 [1..14]。TA_LINEARREG_SLOPE、TA_LINEARREG_ANGLE、TA_LINEARREG_INTERCEPT 和 TA_TSF 是其他基于 TA_LINEARREG 的 ta-lib 函数。

于 2019-01-24T14:15:06.113 回答