Ошибка при импорте фрейма данных yfinance для использования TA-LIB

Я только что узнал об использовании yfinance для импорта рыночных данных для технического анализа. И yfinance, и ta-lib уже правильно установлены. Я использовал метод yf.download и проверил, что данные находятся в формате dataframe. Это было запущено на ноутбуке Jupyter.

import talib
import yfinance as yf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

data = yf.download("MSFT","2015-01-01")
type(data)
data.head()

# Everything up to this point seems fine. I then tried to use the data as the input parameters for ta-lib (ADX as one example).

AvgDaily = talib.ADX('High','Low','Close', timeperiod = 10)

Ошибка:

TypeError                                 Traceback (most recent call last)
<ipython-input-5-886a1aac12f8> in <module>
----> 1 real = talib.ADX('High','Low','Close', timeperiod = 10)

~\anaconda3\lib\site-packages\talib\__init__.py in wrapper(*args, **kwargs)
     25 
     26             if index is None:
---> 27                 return func(*args, **kwargs)
     28 
     29             # Use Series' float64 values if pandas, else use values as passed

TypeError: Argument 'high' has incorrect type (expected numpy.ndarray, got str)

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

data.High

1 ответ

Есть новая библиотека, созданная Даниэлем Родригесом, тем же человеком, который создал backtrader, что значительно упрощает работу с ta-lib.

Библиотека называется btalib.

После установки вы просто даете ему полный фрейм данных OHLCV, он знает, какие столбцы использовать, и выдает столбец, который вы ищете.

import yfinance as yf
import btalib

btalib.ADX(yf.download("msft", start="2019-01-01")).df

Возвращаемый товар - это объект. Использование.df дает вам выходной сигнал атрибутов, который является фреймом данных.

Подробно описаны строки документации. Если есть атрибуты, их можно просто добавить.

print(btalib.ADX(yf.download("msft", start="2019-01-01"), period=21).df[50:])

Date             
2019-03-15 20.281
2019-03-18 21.011
2019-03-19 21.832
2019-03-20 22.661
2019-03-21 23.739
2019-03-22 24.749
2019-03-25 25.457
2019-03-26 26.234
2019-03-27 26.520
2019-03-28 26.792
2019-03-29 27.179
2019-04-01 27.680
2019-04-02 28.218
2019-04-03 28.882
2019-04-04 29.226
2019-04-05 29.553
2019-04-08 29.588
2019-04-09 29.598
2019-04-10 29.773
2019-04-11 30.039
2019-04-12 30.318
2019-04-15 30.704
2019-04-16 30.865
2019-04-17 31.061
2019-04-18 31.582
2019-04-22 32.165
2019-04-23 32.983
Другие вопросы по тегам