R/convert_gain.R

Defines functions convert_gain

Documented in convert_gain

#' Convert Gain from One Time Interval to Another
#' 
#' For example, you can use this function to figure out that an 8\% gain over 70 
#' trading days corresponds to 31.9\% annualized.
#' 
#' 
#' @param gain Numeric vector specifying each gain to convert, e.g. 0.005 for 
#' 0.5\%.
#' @param units.in Numeric value specifying the time period you want to convert 
#' from.
#' @param units.out Numeric value specifying the time period you want to convert 
#' to.
#' 
#' 
#' @return Numeric vector.
#' 
#' 
#' @examples 
#' # Calculate annualized gain for an 8% gain over a 70-day period
#' convert_gain(gain = 0.08, units.in = 70, units.out = 252)
#' 
#' # Calculate the annual growth rate of a fund that gains 0.02% per day
#' convert_gain(gain = 0.0002, units.in = 1, units.out = 252)
#' 
#' # Calculate the annual growth rate of a fund that gains 1% per week
#' convert_gain(gain = 0.01, units.in = 1, units.out = 52)
#' 
#' # You invest in AAPL and gain 0.5% in 17 business days. Express as a 5-year
#' # growth rate.
#' convert_gain(gain = 0.005, units.in = 17, units.out = 252 * 5)
#' 
#' # Your portfolio has tripled in a 13-year period. Calculate your average 
#' # annual gain.
#' convert_gain(gain = 2, units.in = 13, units.out = 1)
#' 
#' 
#' @export
convert_gain <- function(gain, units.in = 1, units.out = 1) {
  ((gain + 1)^(units.out / units.in)) - 1
}
vandomed/stocks documentation built on July 22, 2020, 3:25 a.m.