R/calc_return_stats.R

Defines functions calc_return_stats

#' Calculate Portfolio Return Metrics
#'
#' @param R xts vector of asset returns
#' @param Rb return vector of the benchmark asset
#'
#' @return dataframe containing portfolio return metrics
#' @importFrom magrittr %>% %<>%
#' @export
#'
#' @examples calc_return_stats(R, Rb)
calc_return_stats <- function(R, Rb) {

  R %<>% PerformanceAnalytics::Return.clean(method = "geltner", alpha=0.1)

  rbind.data.frame(
    R %>% PerformanceAnalytics::Return.annualized(geometric = TRUE),
    R %>% PerformanceAnalytics::CalmarRatio(),
    R %>% PerformanceAnalytics::TreynorRatio(., Rb = Rb),
    R %>% PerformanceAnalytics::BurkeRatio(),
    R %>% PerformanceAnalytics::CAPM.beta(Rb = Rb),
    R %>% PerformanceAnalytics::CDD(p = 0.99, invert = FALSE),
    R %>% PerformanceAnalytics::Drawdowns() %>% min(na.rm = TRUE)
  ) %>% round(2) %>%
    `rownames<-`(c("Annualized Return", "Calmar Ratio", "Treynor Ratio",
                   "Burke Ratio", "CAPM beta",
                   "CDaR", "Max. Drawdown")) %>%
    `colnames<-`("portfolio_stats")
}
rengelke/quantTraiding_trato documentation built on Oct. 13, 2020, 12:01 p.m.