投資組合優化

如何從風險預算中得出投資組合權重

  • August 1, 2019

目標:鑑於對增持什麼資產的一些看法,我正在嘗試制定目標波動性投資。例如,從風險平價分配開始,調整每種資產的邊際風險貢獻(在風險平價中都相等)並得出投資組合的相應目標權重。

範例:您想投資 3 項資產。給你每隻股票的風險預算

$$ 0.5, 0.3, 0.2 $$. 目標是推導出投資組合權重,使得每種資產對投資組合變異數的邊際貢獻分別解釋為每種資產的 50%、30% 和 20%。目標是找到投資組合的權重 $ \mathbf{w} \in \mathbb{R}^3 $ 使得投資組合的目標 vol 為 $ v \in \mathbb{R}^+ $ . 問題:關於風險預算的投資組合建構的相關文獻有哪些?回答的必要條件是提供參考。對於給定的相關矩陣,一些解決上述範例的 python 程式碼將不勝感激。

你想要的是設計一個風險預算組合。如果您的約束僅 $ \mathbf{1}^T\mathbf{w}=1 $ 和 $ \mathbf{w} \geq \mathbf{0} $ , 那麼正確的做法是使用 Spinu 提出的公式

$$ 1 $$:$$ \begin{array}{ll} \underset{\mathbf{w}}{\textsf{minimize}} & \frac{1}{2}\mathbf{w}^{T}\Sigma\mathbf{w} - \sum_{i=1}^{N}b_i\log(w_i)\ \textsf{subject to} & \mathbf{1}^T\mathbf{w}=1. \end{array} $$ 在哪裡 $ \mathbf{w} $ 是投資組合權重的向量, $ \Sigma $ 是共變異數矩陣,並且 $ b_i, i = 1, 2, …, N, $ 是風險預算。 我已經在 R 和 Python 中為該優化問題實現了求解器。該程式碼是開源的,您可以在以下位置查看文件:https ://github.com/dppalomar/riskParityPortfolio (R 版本)和https://github.com/dppalomar/riskparity.py(Python版本)。

作為程式碼片段,您可以在一行 Python 程式碼中完成:

import riskparityportfolio as rp
optimum_weights = rp.vanilla.design(cov, np.array([0.5, 0.3, 0.2]))

cov您的資產的共變異數矩陣在哪裡。

$$ 1 $$Florin Spinu,一種計算風險平價權重的算法,2013 年。https: //papers.ssrn.com/sol3/papers.cfm?abstract_id=2297383

引用自:https://quant.stackexchange.com/questions/46408