Я кодировал, импортируя данные и манипулируя ими.На последнем этапе я использовал pd.rolling_apply
с тремя параметрами.В коде произошла ошибка, и при использовании #
в строке код не возвращает ни одного.
Я несколько раз пытался зайти в Google, чтобы посмотреть, работает ли эта функция для других.Я также попытался прокомментировать строку и заменить pd на цену и ничего, но безрезультатно.
import pandas_datareader.data as web
import datetime
start = datetime.datetime(2018, 2, 8)
end = datetime.datetime(2019, 2, 8)
stock = 'TNA'
price = web.DataReader(stock,'yahoo', start, end)
n = 14
def rsi(price, n):
''' rsi indicator '''
gain = (price-price.shift(1)).fillna(0) # calculate price gain with
previous day, first row nan is filled with 0
def rsiCalc(p):
# subfunction for calculating rsi for one lookback period
avgGain = p[p>0].sum()/n
avgLoss = -p[p<0].sum()/n
rs = avgGain/avgLoss
return 100 - 100/(1+rs)
# run for all periods with rolling_apply
return pd.rolling_apply(gain,n,rsiCalc)
print(rsi(price, n=14))
Ожидается, что код для печати RSI в течение определенного периода времени.Произошла ошибка, и это не результат.