![](/img/trans.png)
[英]How to overlay multiple timeseries in chart.RollingPerformance of package PerformanceAnalytics in R
[英]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.