yfinance 给出错误的数字

问题描述

我一直在尝试计算股票的 14 RSI,但 yfinance 一直给我错误的数字

import time
import @R_502_4870@ as pp
import pandas as pd
import pandas as pd
import datetime as dt
import pandas_datareader as web

ticker = 'TSLA'

start = dt.datetime(2018,1,1)
end = dt.datetime.Now()

data = web.DataReader(ticker,'yahoo',start,end)

delta = data['Adj Close'].diff(1)
delta.dropna(inplace=True)

positive = delta.copy()
negative = delta.copy()

positive[positive < 0] = 0
negative[negative > 0] = 0

days = 14

average_gain = positive.rolling(window=days).mean()
average_loss = abs(negative.rolling(window=days).mean())

relative_strenght = average_gain / average_loss
rsi = 100.0 - (100.0 / (1.0 + relative_strenght))
print(ticker + str(rsi))

当我应该得到 70.13(14 天 RSI)时,它最终给了我 77.991564(14 天 RSI),不知道是否有修复它,或者有其他更好的库吗?

解决方法

众所周知,yf中经常会出现一些错误的数据。尽管如此,请验证您是否在以两种方式在同一收盘价上计算 RSI。在这两种情况下都应该出价,询问中。

最好的办法是在经纪商处获得一个专业账户。即使在那种情况下,我也曾经有过一些糟糕的惊喜。

您应该尝试使用 https://alpaca.markets/docs/,因为那里的数据非常安全。

我认为无论如何你应该感到满意。