使用动态无风险率的Tidyquant滚动锐利率

时间:2018-04-17 16:54:51

标签: rollapply performanceanalytics tidyquant

我希望通过使用tq_mutate将无风险利率动态传递到投资组合分析函数SharpeRatio.annualized通过变异的PA函数rollapply。

编辑*目前,我无法通过组或列滚动无风险利率的时间段窗口以及投资组合。示例窗口将是120个月,并将延长退货和无风险利率。如下所示,我可以用“Rf =”代替数字或等式而不是滚动周期。如何在以下函数中包含此滚动无风险费率?

我有一个每月时间序列返回的元组,其中一个组(“组合”)包含RFR设置,看起来像这样,我还将RFR列为“return.rf”列,看看是否可行同样。

注意下面的tibble中的Sharpes没有减去RF

# A tibble: 2,133 x 13
# Groups:   portfolio [9]
   portfolio index         return return.rf Sharpe_12 Sharpe_36 Sharpe_60
   <chr>     <date>         <dbl>     <dbl>     <dbl>     <dbl>     <dbl>
 1 BH        1998-04-30 -0.0142     0.00430        NA        NA        NA
 2 BH        1998-05-29  0.000259   0.00400        NA        NA        NA
 3 BH        1998-06-30 -0.0525     0.00410        NA        NA        NA
 4 BH        1998-07-31 -0.00949    0.00400        NA        NA        NA
 5 BH        1998-08-31  0.000536   0.00430        NA        NA        NA
 6 BH        1998-09-30  0.0486     0.00460        NA        NA        NA
 7 BH        1998-10-30  0.00685    0.00320        NA        NA        NA
 8 BH        1998-11-30 -0.00452    0.00310        NA        NA        NA
 9 BH        1998-12-31  0.00615    0.00380        NA        NA        NA
10 BH        1999-01-29  0.0323     0.00350        NA        NA        NA

如果我注释掉Rf:

的传递,我的代码就会正常运行
tidy_opt_roll_returns <- tidy_opt.returns %>%    
  tq_mutate(
    # tq_mutate args
    select     = return,
    mutate_fun = rollapply, 
    # rollapply args
    width      = 120,
    align      = "right",
    FUN        = SharpeRatio.annualized,
    # mean args ## commented out next three lines ##
    # Rf         = return.rf,
    # tq_mutate args
    col_rename = "Sharpe_120")

谢谢!

0 个答案:

没有答案