compute_indicators: Compute an indicator for each time period that describes the...

View source: R/compute_indicators.R

compute_indicatorsR Documentation

Compute an indicator for each time period that describes the state of a market.

Description

Given a matrix that contains row-wise the assets' returns and a sliding window win_length, this function computes an approximation of the joint distribution (copula, e.g. see https://en.wikipedia.org/wiki/Copula_(probability_theory)) between portfolios' return and volatility in each time period defined by win_len. For each copula it computes an indicator: If the indicator is large it corresponds to a crisis period and if it is small it corresponds to a normal period. In particular, the periods over which the indicator is greater than 1 for more than 60 consecutive sliding windows are warnings and for more than 100 are crisis. The sliding window is shifted by one day.

Usage

compute_indicators(
  returns,
  parameters = list(win_length = 60, m = 100, n = 5e+05, nwarning = 60, ncrisis = 100)
)

Arguments

returns

A d-dimensional vector that describes the direction of the first family of parallel hyperplanes.

parameters

A list to set a parameterization.

  • win_length The length of the sliding window. The default value is 60.

  • m The number of slices for the copula. The default value is 100.

  • n The number of points to sample. The default value is 5\cdot 10^5.

  • nwarning The number of consecutive indicators larger than 1 required to declare a warning period. The default value is 60.

  • ncrisis The number of consecutive indicators larger than 1 required to declare a crisis period. The default value is 100.

  • seed A fixed seed for the number generator.

Value

A list that contains the indicators and the corresponding vector that label each time period with respect to the market state: a) normal, b) crisis, c) warning.

References

L. Cales, A. Chalkis, I.Z. Emiris, V. Fisikopoulos, “Practical volume computation of structured convex bodies, and an application to modeling portfolio dependencies and financial crises,” Proc. of Symposium on Computational Geometry, Budapest, Hungary, 2018.

Examples

# simple example on random asset returns
asset_returns = replicate(10, rnorm(14))
market_states_and_indicators = compute_indicators(asset_returns,
    parameters = list("win_length" = 10, "m" = 10, "n" = 10000, "nwarning" = 2, "ncrisis" = 3))


volesti documentation built on Sept. 19, 2023, 5:08 p.m.