yfinance 给出错误的数字
yfinance giving wrong numbers
我一直在尝试计算股票的 14 RSI,但 yfinance 一直给我错误的数字
import time
import pprint 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。在这两种情况下都应该是 Bid, Ask ou mid。
最好的办法是在经纪商中获得一个专业账户。即使在那种情况下,我也曾经有过一些糟糕的意外。
您应该尝试使用 https://alpaca.markets/docs/,因为那里的数据非常安全。
反正我觉得你应该满意了。
我一直在尝试计算股票的 14 RSI,但 yfinance 一直给我错误的数字
import time
import pprint 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。在这两种情况下都应该是 Bid, Ask ou mid。
最好的办法是在经纪商中获得一个专业账户。即使在那种情况下,我也曾经有过一些糟糕的意外。
您应该尝试使用 https://alpaca.markets/docs/,因为那里的数据非常安全。
反正我觉得你应该满意了。