Full_Name: Brian K. Boonstra Version: 2.2.1 OS: WinXP, OSX Submission from: (NULL) (63.172.178.137)
The maxdrawdown function in tseries defines the maximum drawdown in terms of absolute dollars (or whatever units the input is in). Industry convention is to do this in percentage terms. I have written the code below as maximumdrawdown(), which retains backward compatibility with the current version. It has the flaw that it does not check for zero or negative values. maximumdrawdown <- function (x) { if (NCOL(x) > 1) stop("x is not a vector or univariate time series") if (any(is.na(x))) stop("NAs in x") cminx <- x/cummax(x) mdd <- min(cminx) to <- which(mdd == cminx) from <- double(NROW(to)) for (i in 1:NROW(to)) { from[i] <- max( which(cminx[1:to[i]] == 1) ) } return(list(maximumdrawdown = 1-mdd, maxdrawdown = (1-mdd)*x[from], from = from, to = to)) } ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel