Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

maxdrawdown

Maximum Drawdown or Maximum Loss


Description

This function computes the maximum drawdown or maximum loss of the univariate time series (or vector) x.

Usage

maxdrawdown(x)

Arguments

x

a numeric vector or univariate time series.

Details

The max drawdown or max loss statistic is defined as the maximum value drop after one of the peaks of x. For financial instruments the max drawdown represents the worst investment loss for a buy-and-hold strategy invested in x.

Value

A list containing the following three components:

maxdrawdown

double representing the max drawdown or max loss statistic.

from

the index (or vector of indices) where the max drawdown period starts.

to

the index (or vector of indices) where the max drawdown period ends.

Author(s)

A. Trapletti

See Also

Examples

# Toy example
x <- c(1:10, 9:7, 8:14, 13:8, 9:20)
mdd <- maxdrawdown(x)
mdd

plot(x)
segments(mdd$from, x[mdd$from], mdd$to, x[mdd$from], col="grey")
segments(mdd$from, x[mdd$to], mdd$to, x[mdd$to], col="grey")
mid <- (mdd$from + mdd$to)/2
arrows(mid, x[mdd$from], mid, x[mdd$to], col="red", length = 0.16)

# Realistic example
data(EuStockMarkets)
dax <- log(EuStockMarkets[,"DAX"])
mdd <- maxdrawdown(dax)
mdd

plot(dax)
segments(time(dax)[mdd$from], dax[mdd$from],
         time(dax)[mdd$to], dax[mdd$from], col="grey")
segments(time(dax)[mdd$from], dax[mdd$to],
         time(dax)[mdd$to], dax[mdd$to], col="grey")
mid <- time(dax)[(mdd$from + mdd$to)/2]
arrows(mid, dax[mdd$from], mid, dax[mdd$to], col="red", length = 0.16)

tseries

Time Series Analysis and Computational Finance

v0.10-48
GPL-2
Authors
Adrian Trapletti [aut], Kurt Hornik [aut, cre], Blake LeBaron [ctb] (BDS test code)
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.