Learn R Programming

tseries (version 0.10-58)

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)

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.

Arguments

x

a numeric vector or univariate time series.

Author

A. Trapletti

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.

See Also

sterling

Examples

Run this code
# 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)

Run the code above in your browser using DataLab