У меня есть ежедневный отчет о доходах моего актива, и я пытаюсь рассчитать коэффициент скользящей резкости с окном 252 дня.
Я определил свою функцию коэффициента Шарпа в R как: Годовая простая доходность, деленная на годовойстандартное отклонение простых возвратов.Затем для создания временного ряда я использовал apply.rolling аналитики производительности для окна продолжительностью 252 дня.
Явно моя функция коэффициента Шарпа определяется как
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')
Однако, когда я сравниваю это с функцией SharpeRatio.annualized в PerformanceAnalytics , я получаю другие результаты.
Например,
test <- returns.ts[1:252]
SharpeRatio.annualized(test , scale = 252)
sharpe_ratio(test)
возвращает
- 5.251688 для SharpeRatio.annualized и
- 5.259081 для функции sharpe_ratio, которую я определил.
Я пробовал несколько разных комбинаций, но я не могу понять, что делает SharpeRatio.nnualized или где разница гораздо меньше, чем то, что правильно вычисляет.