我每天都有资产的对数回报,并且试图用252天的时间范围计算滚动夏普比率。
我在R中定义了锐度比函数为: 年度化简单收益除以年度化简单收益标准差。 然后,我使用了性能分析的apply.rolling长达252天的时间 创建一个时间序列。
明确地,我的Sharpe Ratio函数定义为
sharpe_ratio <- function(x) {
annualized.return = exp(sum(x)) - 1
annualized.sd = sd(exp(x))*sqrt(252)
sr = annualized.return / annualized.sd
return(sr)
}
然后我用returns.ts
使用
sharpe.ts <- apply.rolling(returns.ts, width = 252, FUN = 'sharpe_ratio')
但是,当我将其与 PerformanceAnalytics 中的 SharpeRatio.annualized 函数进行比较时,会得到不同的结果。
例如,
test <- returns.ts[1:252]
SharpeRatio.annualized(test , scale = 252)
sharpe_ratio(test)
返回
我尝试了一些不同的组合,但我无法弄清楚 SharpeRatio.annualized在做什么,或者差异出在哪儿,哪一个在计算正确的事情。