我正在尝试在 R 中实现“动态”解决方案。首先,我确实为 4 种不同的策略运行了投资组合优化:MV、CVaR、熵池和幼稚。
作为下一步,我想计算一些性能测量值,例如 HHI。
我现在的问题是:我怎样才能简化我的代码?如前所述,我得到了 4 种不同的策略,我检索了 4 个具有相应优化权重的不同数据帧。当然有一个解决方案可以简化这一点。
# call function
hhi_MV <- comp_HHI(weights_MV)
hhi_CVAR <- comp_HHI(weights_CVAR)
hhi_EP <- comp_HHI(weights_EP)
hhi_naive <- comp_HHI(weights_naive)
第一部分即通过
portfolios <- list("MV", "CVAR", "EP", "naive")
paste0("hhi_", i (from portfolios list), sep="")
第二部分“comp_HHI”是一个函数,我将相应的权重数据帧交给它。
另一个例子:
#### Compute Cumulative Return (can take a while) #####
perf_MV <- comp_perf(r = returns, w = weights_MV, fund = 100, freq = "months")
perf_CVAR <- comp_perf(r = returns, w = weights_CVAR, fund = 100, freq = "months")
perf_EP <- comp_perf(r = returns, w = weights_EP, fund = 100, freq = "months")
perf_naive <- comp_perf(r = returns, w = weights_naive, fund = 100, freq = "months")
使用前面介绍的代码,我计算了各个投资组合(comp_perf --> 函数)的性能,其中包含再平衡频率和用于计算最终财富的起始基金。我想动态实现代码 - 简单地说:最好是单行代码。
perf_* <- comp_perf(r = returns, w = weights_*, fund = 100, freq = "months")
如上一行所述,我将动态应用带有 * 符号的代码。换言之,即在不同投资组合类型上具有循环的符号。
我的最后一个问题是关于以下代码:
# First compute returns from cumulative returns
return_MV <- monthlyReturn(xts(perf_MV$CumReturn[ ,-1],
order.by = perf_MV$CumReturn[ ,1]))
return_CVAR <- monthlyReturn(xts(perf_CVAR$CumReturn[ ,-1],
order.by = perf_CVAR$CumReturn[ ,1]))
return_EP <- monthlyReturn(xts(perf_EP$CumReturn[ ,-1],
order.by = perf_EP$CumReturn[ ,1]))
return_naive <- monthlyReturn(xts(perf_naive$CumReturn[ ,-1],
order.by = perf_naive$CumReturn[ ,1]))
还有一种方法可以动态实现它吗?
提前谢谢。