程式

將月度收益複合成季度收益

  • May 7, 2020

有人如何讓 Kenneth French 圖書館的數據從月度季度返回?由於它們不是 loq 回報,因此您需要復合回報而不是總結它們。我想將他使用的 SML、HML、行業組合和無風險的回報作為季度回報。有人知道如何在 R 中處理這樣的問題嗎?

您將給定季度的每個月收益加 1,取這些收益的乘積,然後減去 1。

在 R 中(沒有任何包):假設r是每月回報,並且dt是時間戳。

r <- rep(0.01, 12)
dt <- seq(from = as.Date("2020-1-1"),
         to = as.Date("2020-12-1"),
         by = "1 month")

tapply(r,
      paste(as.POSIXlt(dt)$year + 1900, quarters(dt)),
      FUN = function(x) prod(x + 1) - 1) 
## 2020 Q1 2020 Q2 2020 Q3 2020 Q4 
##  0.0303  0.0303  0.0303  0.0303 

如果您更喜歡包的便利性:

library("NMOF")  ## for function 'French'
library("PMwR")  ## for function 'returns'

P <- French(dest.dir = tempdir(),
           dataset = "F-F_Research_Data_Factors_CSV.zip",
           weighting = "value", frequency = "monthly",
           price.series = TRUE)

head(P)
##              Mkt-RF       SMB      HML       RF
## 1926-06-30 1.000000 1.0000000 1.000000 1.000000
## 1926-07-31 1.029600 0.9770000 0.971300 1.002200
## 1926-08-31 1.056781 0.9633220 1.011997 1.004706
## 1926-09-30 1.060586 0.9506061 1.012099 1.007016
## 1926-10-31 1.026223 0.9509864 1.017260 1.010239
## 1926-11-30 1.052186 0.9490844 1.013700 1.013371

returns(P, t = as.Date(row.names(P)), period = "quarterly")
##                Mkt-RF         SMB        HML          RF
## 1926-09-30  0.0605859 -0.04939385  0.0120987  0.00701632
## 1926-12-31  0.0180728 -0.00200016  0.0013818  0.00912759
## 1927-03-31  0.0425284 -0.02248889  0.0526542  0.00812182
## 1927-06-30  0.0344638  0.02324739  0.0394452  0.00812182
## 1927-09-30  0.1457918 -0.07356559 -0.0548306  0.00792060
## 1927-12-31  0.0411792  0.05924812 -0.0563754  0.00681538

(披露:我是包的維護者NMOFPMwR。)

引用自:https://quant.stackexchange.com/questions/53926