MDP

Defined in fynance.portfolio.allocation

MDP(X, w0=None, up_bound=1., low_bound=0., cov=None)[source]

Get weights of Maximum Diversified Portfolio allocation.

Parameters:
Xarray_like

Each column is a series of price or return’s asset.

w0array_like, optional

Initial weights for the optimizer.

up_bound, low_boundfloat, optional

Respectively maximum and minimum values of weights, such that low_bound \(\leq w_i \leq\) up_bound \(\forall i\). Default is 0 and 1.

covcallable, optional

Callable mapping the (T, N) training array to an (N, N) covariance matrix, e.g. fynance.portfolio.covariance.ledoit_wolf; default None keeps the sample covariance. When None (default) the objective calls diversified_ratio, which recomputes the (biased) sample covariance of X at every optimizer iteration. When a callable is given, the covariance is instead estimated once via that callable and the diversification ratio is evaluated from this fixed matrix at every iteration (see _diversified_ratio_from_cov) — the two evaluation paths can therefore differ slightly even when cov reduces to the sample covariance, because diversified_ratio uses the biased (ddof=0) sample covariance recomputed from X while cov is called once upfront.

Returns:
array_like

Weights that maximize the diversified ratio of the portfolio.

See also

diversified_ratio

Notes

Weights of Maximum Diversification Portfolio, as described by Y. Choueifaty and Y. Coignard [5], verify the following problem:

\[\begin{split}w = \text{arg max } D(w) \\ u.c. \begin{cases}w'e = 1 \\ 0 \leq w_i \leq 1 \\ \end{cases}\end{split}\]

Where \(D(w)\) is the diversified ratio of portfolio weighted by w.

References