как работает talib.LINEARREG? - PullRequest
0 голосов
/ 23 января 2019

Кроме того, мой вопрос сейчас заключается в том, хочу ли я регрессировать на двух массивах, которые не равны интервалу и неупорядочены , например

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])

Чтоя должен делать, используя функцию LINEARREG в talib?


Спасибо за то, что Truf указывает на ссылку c-кода, LINEARREG имеет дело только с x-массивом euqal distance и регрессирует только с помощью входного 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

, чтобы соответствовать 'double' в c.


оригинальный вопрос

Я использую TA-Lib для расчета технических индикаторов, но я не понимаю функцию LINEARREG, где только один входной массив (называется цена закрытия), обычно для линейной регрессии нам нужны два массива x и y для регрессии, например, мы хотим регрессировать цену закрытия при возврате.

real = LINEARREG (close, timeperiod = 14)

1 Ответ

0 голосов
/ 24 января 2019

Вам лучше проверить код 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-lib, основанные на TA_LINEARREG.

...