網頁

2020年11月22日 星期日

R:股價年化標準差及股價比較

上一篇介紹了如何獲取股價資訊,這些都是單一的資料,如果想要做合併比較以便查看綜合比例該怎麼做?在 Google 財經上面也有提供比較的功能,不過只能比較 2 檔股價稍微少了點。


這篇就介紹一下如何比較個股的表現,程式碼如下:

library(quantmod)
library(PerformanceAnalytics)
d_from <- "2020-01-01"
getSymbols("SPY", src="yahoo", from=d_from)
getSymbols("SOXX", src="yahoo", from=d_from)
getSymbols("XLE", src="yahoo", from=d_from)
SPY2 <- dailyReturn(Ad(SPY))
SOX2 <- dailyReturn(Ad(SOXX))
XLE2 <- dailyReturn(Ad(XLE))

首先載入 quantmodPerformanceAnalytics 這2個程式庫
獲取資料的日期從 2020-01-01 開始
取得 SPY(標普500指數),SOXX(費城半導體指數),XLE(能源指數)資料,來源從 yahoo
dailyReturn(Ad(SPY)) 將SPY每日的調整價格 Ad (Adjusted)放到變數SPY2。
也可以用收盤價 (Cl)來計算。

m1 <- merge(SPY2, SOX2, XLE2, all = F)
colnames(m1) <- c("SPY", "SOXX", "XLE")
charts.PerformanceSummary(m1, event.labels = T, main="標普vs費半vs能源指數")

將 SPY2,SOX2,XLE2 合併資料
m1 的列名稱為"SPY","SOXX","XLE"
根據 m1 的資料來畫出圖形:

我們可以看到紅色線條是費半指數黑色線條是標普500指數綠色是能源類指數;這也就是說自 2020/ 1月到現在表現最好的是費城半導體指數(+38%),再來是標普500指數(+10%),最差的是石油能源類指數(-40%)。

接下來可以計算年化標準差:

table.AnnualizedReturns(m1, scale = 252, Rf = 0.01/252)

Annualized Return:年化報酬率
Annualized Std Dev:年化標準差
Annualized Sharpe (Rf=1%):夏普值2

其中夏普率= [(每日報酬率平均值- 無風險利率) / (每日報酬的標準差)]x (252平方根)
252平方根是因為一年大約有252天交易日,意思是將波動數值從每日調整成年


代表意思是,例如夏普率 0.5,表示在承受1%的波動風險下,長期可以創造0.5%的報酬率。
也可以說想得到5%的報酬,可以預期過程有10%的上下波動。

至於夏普值更詳細的說明網路上都可以查到我就不說明了。當你遇到一個投資組合,不知道如何檢視成效時,夏普率會是一個很好的輔助指標。


沒有留言:

張貼留言