spIndexTrack: Sparse Index Tracking In sparseIndexTracking: Design of Portfolio of Stocks to Track an Index

Description

Computes the weights of assets (relative capital allocation) for a sparse approximation of a financial index.

Usage

 1 2 spIndexTrack(X, r, lambda, u = 1, measure = c("ete", "dr", "hete", "hdr"), hub = NULL, w0 = NULL, thres = 1e-09)

Arguments

 X m-by-n matrix of net returns (m samples, n assets). r m dimensional vector of the net returns of the index. lambda sparsity weight factor. Any nonnegative number (suggested range [10^{-8},10^{-6}]). u upper bound of the weights.Default value u <- 1, i.e., no effective upper bound. measure performance measure. Possible values 'ete' (empirical tracking error - default), 'dr' (downside risk), 'hete' (Huber empirical tracking error), and 'hdr' (Huber downside risk). hub Huber parameter. Required if measure = 'hete' or measure = 'hdr'. w0 initial point. If NULL a uniform allocation is used, i.e., w0 <- rep(1/N, N). thres threshold value. All the weights less or equal to thres are set to 0. The default value is 1e-9.

Value

An n-dimensional vector with allocation weights on the assets.

Author(s)

Konstantinos Benidis and Daniel P. Palomar

References

K. Benidis, Y. Feng, D. P. Palomar, "Sparse Portfolios for High-Dimensional Financial Index Tracking," IEEE Transactions on Signal Processing, vol. 66, no. 1, pp. 155-170, Jan. 2018.

Examples

 1 2 3 4 5 6 7 8 9 10 11 library(sparseIndexTracking) library(xts) # load data data(INDEX_2010) # fit portfolio under error measure ETE (Empirical Tracking Error) w_ete <- spIndexTrack(INDEX_2010\$X, INDEX_2010\$SP500, lambda = 1e-7, u = 0.5, measure = 'ete') # show cardinality achieved cat("Number of assets used:", sum(w_ete > 1e-6))

sparseIndexTracking documentation built on June 2, 2019, 5:03 p.m.