0

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

编辑* 目前,我无法通过组或列滚动无风险利率的时间段窗口以及投资组合。示例窗口为 120 个月,并且将针对回报和无风险利率进行延长。如下所述,我可以用“Rf =”代替数字或方程式,但不能代替滚动周期。如何在以下函数中包含此滚动无风险利率?

我有一个每月时间序列回报的小标题,其中一组(“投资组合”)包含看起来像这样的 RFR 设置,我还将 RFR 作为列“return.rf”包括在内,看看它是否也可以工作。

注意下面小标题中的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")

谢谢!

4

0 回答 0