Title: | Design of Portfolio of Stocks to Track an Index |
---|---|
Description: | Computation of sparse portfolios for financial index tracking, i.e., joint selection of a subset of the assets that compose the index and computation of their relative weights (capital allocation). The level of sparsity of the portfolios, i.e., the number of selected assets, is controlled through a regularization parameter. Different tracking measures are available, namely, the empirical tracking error (ETE), downside risk (DR), Huber empirical tracking error (HETE), and Huber downside risk (HDR). See vignette for a detailed documentation and comparison, with several illustrative examples. The package is based on the paper: K. Benidis, Y. Feng, and D. P. Palomar, "Sparse Portfolios for High-Dimensional Financial Index Tracking," IEEE Trans. on Signal Processing, vol. 66, no. 1, pp. 155-170, Jan. 2018. <doi:10.1109/TSP.2017.2762286>. |
Authors: | Konstantinos Benidis [aut], Daniel P. Palomar [cre, aut] |
Maintainer: | Daniel P. Palomar <[email protected]> |
License: | GPL-3 | file LICENSE |
Version: | 0.1.1.9000 |
Built: | 2024-11-19 04:55:28 UTC |
Source: | https://github.com/dppalomar/sparseindextracking |
Computation of sparse portfolios for financial index tracking, i.e., joint selection of a subset of the assets that compose the index and computation of their relative weights (capital allocation). The level of sparsity of the portfolios, i.e., the number of selected assets, is controlled through a regularization parameter. Different tracking measures are available, namely, the empirical tracking error (ETE), downside risk (DR), Huber empirical tracking error (HETE), and Huber downside risk (HDR). See vignette for a detailed documentation and comparison, with several illustrative examples.
For a quick help see the README file: CRAN-README and GitHub-README.
For more details see the vignette: CRAN-html-vignette, CRAN-pdf-vignette, GitHub-html-vignette, and GitHub-pdf-vignette.
Konstantinos Benidis and Daniel P. Palomar
K. Benidis, Y. Feng, and 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.
Database of the net returns of the index S&P 500 and its underlying assets during the year 2010. Only the assets that were in the index during the whole period are included.
data(INDEX_2010)
data(INDEX_2010)
A list of two xts
objects, namely, X
and SP500
, corresponding to the net returns of the assets and the index, respectively.
Computes the weights of assets (relative capital allocation) for a sparse approximation of a financial index.
spIndexTrack( X, r, lambda, u = 1, measure = c("ete", "dr", "hete", "hdr"), hub = NULL, w0 = NULL, p_neg_exp = 7, max_iter = 1000, thres = 1e-09 )
spIndexTrack( X, r, lambda, u = 1, measure = c("ete", "dr", "hete", "hdr"), hub = NULL, w0 = NULL, p_neg_exp = 7, max_iter = 1000, thres = 1e-09 )
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 |
u |
upper bound of the weights.Default value |
measure |
performance measure. Possible values |
hub |
Huber parameter. Required if |
w0 |
initial point. If |
p_neg_exp |
final negative exponent of p, so |
max_iter |
maximum number of iterations (default is |
thres |
threshold value. All the weights less or equal to |
An n-dimensional vector with allocation weights on the assets.
Konstantinos Benidis and Daniel P. Palomar
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.
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))
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))