RSI 在 R 和 Yahoo 中是不同的 Finance/TradingView

RSI is different in R vs Yahoo Finance/TradingView

在 R 中计算的 RSI 与我在 Yahoo-Finance 中看到的不同。 Yahoo-Finance 文档说它使用 SMAclose。我在 R 中做了同样的事情,但值不匹配。我不确定该相信哪一个。我尝试了关闭和调整关闭​​。

library(quantmod)
getSymbols("AAPL", from = '2021-05-01', to = '2021-06-16')

price <- Cl(AAPL)   #Close Price
RSI(price, SMA, n = 5)

RSI(5, Close) 的 R 输出:

雅虎财经:

AdjClose <- Ad(AAPL) # Adjusted close
RSI(AdjClose, SMA, n = 5)

RSI 计算使用 EMA,而不是 SMA。不知道你从哪里得到雅虎的描述,但如果它说它使用 sma,那是不正确的。 rsi 的上下计算是典型的 ema 计算。大多数软件包/软件都使用 Wilder 平滑,但也有一些不使用。默认情况下,quantmod 确实在 RSI 计算中使用 Wilder 平滑。但是,如果您在 RSI 函数中指定 EMA 而没有 wilder = TRUE,则不会进行平滑处理。

要获得与雅虎相同的数字,您需要使用 quantmond (TTR) 的基本 RSI 函数。

tail(RSI(price, n = 5))
                rsi
2021-06-08 63.28863
2021-06-09 66.53765
2021-06-10 51.60627
2021-06-11 63.91243
2021-06-14 79.97755
2021-06-15 69.58576

或者如果您想填写所有详细信息:

tail(RSI(price, EMA, n = 5, wilder = TRUE))

                rsi
2021-06-08 63.28863
2021-06-09 66.53765
2021-06-10 51.60627
2021-06-11 63.91243
2021-06-14 79.97755
2021-06-15 69.58576