簡體   English   中英

R chart.RollingPerformance股票價格無法輸出正確的y軸

[英]R chart.RollingPerformance stock price unable to output correct y axis

這是我閱讀一堆 ETF 的代碼。 我嘗試使用 chart.RollingPerformance 來返回 ETF,但似乎無法使用正確的 y 軸輸出顯示?

我讀入了這些數據:

mystocks <- new.env(hash=TRUE)
getSymbols(c("QQQ", "XBI", "VYM", "VOO"), env=mystocks, from ="2016-01-04", to ="2020-10-22")
etf <- do.call(cbind,eapply(mystocks, Cl))
str(etf)
head(etf)
An ‘xts’ object on 2016-01-04/2020-10-21 containing:
  Data: num [1:1210, 1:4] 184 185 182 178 176 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:4] "VOO.Close" "QQQ.Close" "XBI.Close" "VYM.Close"
  Indexed by objects of class: [Date] TZ: UTC
  xts Attributes:  
List of 2
 $ src    : chr "yahoo"
 $ updated: POSIXct[1:1], format: "2020-10-23 15:38:16"

           VOO.Close QQQ.Close XBI.Close VYM.Close
2016-01-04    184.31    109.50     67.83     65.95
2016-01-05    184.64    109.31     67.22     66.28
2016-01-06    182.30    108.26     64.35     65.41
2016-01-07    177.86    104.87     61.82     64.00
2016-01-08    175.97    104.01     60.51     63.28
2016-01-11    175.99    104.33     57.14     63.35

我用這些代碼繪制以下內容。 我附上了圖片以供參考。

etf_returns_discrete = Return.calculate(etf, method = c("discrete"))
etf_returns_log = Return.calculate(etf, method = c("log"))

charts.RollingPerformance(etf_returns_discrete,
                          Rf=.03/12, 
                          main="Rolling 12-Month Performance",
                          legend.loc="topleft")

這是照片的鏈接

提前致謝!!

發生這種情況是因為 charts.RollingPerformance 中寬度的默認值 = 12 並且您使用的是每日收益。 由於您僅使用 12 天對回報進行年化,因此有時您會獲得 >100% 的年化回報。 如果您使用大約一年(252 個工作日),您將獲得所需的結果。 只需將您對 charts.RollingPerformance 的調用更改為:

charts.RollingPerformance(R = etf_returns_discrete,
                          width = 252,
                          Rf = 0,
                          "Rolling 12-Month Performance")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM