Нестохастическая функция библиотеки Talib возвращает противоречивые значения - PullRequest
3 голосов
/ 06 июля 2019

Я использую функцию MACD из библиотеки талибов.http://www.tadoc.org/indicator/MACD.htm

Вывод функции основан на скользящей средней входных значений.

Давайте создадим входные данные функции:

close = np.array([ 2930.8,  2926.3,  2941.5,  2942.9,  2948.5,  2923.1,  2917.6,
        2947.6,  2932.4,  2890.8,  2887.2,  2872.7,  2886.9,  2807.1,
        2839.2,  2855. ,  2878.6,  2862. ,  2843.9,  2866.1,  2857.4,
        2819.4,  2831.8,  2805.1,  2780.1,  2790.4,  2752.6,  2749.6,
        2804.9,  2827.7,  2845.7,  2874.9,  2889.2,  2886.9,  2881. ,
        2898.4,  2894.8,  2896.3,  2926.2,  2933.4,  2960. ,  2950.6,
        2952.1,  2922.1,  2917.9,  2930.9,  2944.2,  2967.7,  2979.6,
        3000.3])

index = pd.date_range('2019-04-24','2019-07-02', freq = 'B')

fast_period, slow_period,  signal_period = 3, 10, 1

Запустим функцию:

import talib as ta

macd_histogram = pd.DataFrame({'macd_hist': ta.MACD(close, fast_period, slow_period, signal_period)[2]}, index =  index)

Давайте проверим последние несколько значений выходных данных:

 print(macd_histogram[-3:])


2019-06-28                                              -11.932
2019-07-01   90723585644794610874060269361590083028296154282...
2019-07-02                                                0.000
Freq: B, Name: macd_hist, dtype: float64

Issue : Как вы можете видеть, последние два значения, очевидно,искажение.

давайте повторим тот же процесс:

  macd_histogram = pd.DataFrame({'macd_hist': ta.MACD(close, fast_period, slow_period, signal_period)[2]}, index =  index)
     print(macd_histogram[-3:])


2019-06-28   -11.932
2019-07-01    24.066
2019-07-02    30.652
Freq: B, Name: macd_hist, dtype: float64

На этот раз два последних значения, скорее всего, будут правильно рассчитаны.

Давайте попробуем еще раз.

macd_histogram = pd.DataFrame({'macd_hist': ta.MACD(close, fast_period, slow_period, signal_period)[2]}, index =  index)
print(macd_histogram[-3:])

            macd_hist
2019-06-28    -11.932
2019-07-01      0.000
2019-07-02      0.000

Еще больше несоответствий!

...