ml-finance-python
python scripts for finance machine learning
git clone https://9o.is/git/ml-finance-python.git
lab_24.ipynb
(119093B)
1 {
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "metadata": {},
6 "source": [
7 "# Risk Contributions and Risk Parity\n",
8 "\n",
9 "> The word 'risk' derives from the early Italian risicare, which means 'to dare'. In this sense, risk is a choice rather than a fate. The actions we dare to take, which depend on how free we are to make choices, are what the story of risk is all about.\n",
10 "\n",
11 "_Peter L. Bernstein, Against the Gods: The Remarkable Story of Risk_"
12 ]
13 },
14 {
15 "cell_type": "code",
16 "execution_count": 1,
17 "metadata": {},
18 "outputs": [],
19 "source": [
20 "import numpy as np\n",
21 "import pandas as pd\n",
22 "\n",
23 "import edhec_risk_kit_206 as erk\n",
24 "\n",
25 "%load_ext autoreload\n",
26 "%autoreload 2\n",
27 "inds = ['Food', 'Beer', 'Smoke', 'Games', 'Books', 'Hshld', 'Clths', 'Hlth',\n",
28 " 'Chems', 'Txtls', 'Cnstr', 'Steel', 'FabPr', 'ElcEq', 'Autos', 'Carry',\n",
29 " 'Mines', 'Coal', 'Oil', 'Util', 'Telcm', 'Servs', 'BusEq', 'Paper',\n",
30 " 'Trans', 'Whlsl', 'Rtail', 'Meals', 'Fin', 'Other']\n",
31 "inds=['Beer', 'Hlth', 'Fin','Rtail','Whlsl']\n",
32 "ind_rets = erk.get_ind_returns(weighting=\"vw\", n_inds=49)[\"1974\":]\n",
33 "ind_mcap = erk.get_ind_market_caps(49, weights=True)[\"1974\":]\n",
34 "\n",
35 "rets = ind_rets[\"2013\":][inds]\n",
36 "cov = rets.cov()"
37 ]
38 },
39 {
40 "cell_type": "code",
41 "execution_count": 2,
42 "metadata": {},
43 "outputs": [],
44 "source": [
45 "def risk_contribution(w,cov):\n",
46 " \"\"\"\n",
47 " Compute the contributions to risk of the constituents of a portfolio, given a set of portfolio weights and a covariance matrix\n",
48 " \"\"\"\n",
49 " total_portfolio_var = erk.portfolio_vol(w,cov)**2\n",
50 " # Marginal contribution of each constituent\n",
51 " marginal_contrib = cov@w\n",
52 " risk_contrib = np.multiply(marginal_contrib,w.T)/total_portfolio_var\n",
53 " return risk_contrib"
54 ]
55 },
56 {
57 "cell_type": "code",
58 "execution_count": 3,
59 "metadata": {},
60 "outputs": [
61 {
62 "data": {
63 "image/png": "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\n",
64 "text/plain": [
65 "<Figure size 432x288 with 1 Axes>"
66 ]
67 },
68 "metadata": {
69 "needs_background": "light"
70 },
71 "output_type": "display_data"
72 }
73 ],
74 "source": [
75 "risk_contribution(erk.weight_ew(rets), cov).plot.bar(title=\"Risk Contributions of an EW portfolio\");"
76 ]
77 },
78 {
79 "cell_type": "code",
80 "execution_count": 4,
81 "metadata": {},
82 "outputs": [],
83 "source": [
84 "from scipy.optimize import minimize\n",
85 "\n",
86 "def target_risk_contributions(target_risk, cov):\n",
87 " \"\"\"\n",
88 " Returns the weights of the portfolio that gives you the weights such\n",
89 " that the contributions to portfolio risk are as close as possible to\n",
90 " the target_risk, given the covariance matrix\n",
91 " \"\"\"\n",
92 " n = cov.shape[0]\n",
93 " init_guess = np.repeat(1/n, n)\n",
94 " bounds = ((0.0, 1.0),) * n # an N-tuple of 2-tuples!\n",
95 " # construct the constraints\n",
96 " weights_sum_to_1 = {'type': 'eq',\n",
97 " 'fun': lambda weights: np.sum(weights) - 1\n",
98 " }\n",
99 " def msd_risk(weights, target_risk, cov):\n",
100 " \"\"\"\n",
101 " Returns the Mean Squared Difference in risk contributions\n",
102 " between weights and target_risk\n",
103 " \"\"\"\n",
104 " w_contribs = risk_contribution(weights, cov)\n",
105 " return ((w_contribs-target_risk)**2).sum()\n",
106 " \n",
107 " weights = minimize(msd_risk, init_guess,\n",
108 " args=(target_risk, cov), method='SLSQP',\n",
109 " options={'disp': False},\n",
110 " constraints=(weights_sum_to_1,),\n",
111 " bounds=bounds)\n",
112 " return weights.x\n",
113 "\n",
114 "def equal_risk_contributions(cov):\n",
115 " \"\"\"\n",
116 " Returns the weights of the portfolio that equalizes the contributions\n",
117 " of the constituents based on the given covariance matrix\n",
118 " \"\"\"\n",
119 " n = cov.shape[0]\n",
120 " return target_risk_contributions(target_risk=np.repeat(1/n,n), cov=cov)\n"
121 ]
122 },
123 {
124 "cell_type": "code",
125 "execution_count": 5,
126 "metadata": {},
127 "outputs": [
128 {
129 "data": {
130 "image/png": "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\n",
131 "text/plain": [
132 "<Figure size 432x288 with 1 Axes>"
133 ]
134 },
135 "metadata": {
136 "needs_background": "light"
137 },
138 "output_type": "display_data"
139 }
140 ],
141 "source": [
142 "risk_contribution(equal_risk_contributions(cov), cov).plot.bar(title=\"Risk Contributions of an ERC portfolio\");"
143 ]
144 },
145 {
146 "cell_type": "code",
147 "execution_count": 6,
148 "metadata": {},
149 "outputs": [],
150 "source": [
151 "def weight_erc(r, cov_estimator=erk.sample_cov, **kwargs):\n",
152 " \"\"\"\n",
153 " Produces the weights of the ERC portfolio given a covariance matrix of the returns \n",
154 " \"\"\"\n",
155 " est_cov = cov_estimator(r, **kwargs)\n",
156 " return equal_risk_contributions(est_cov)\n"
157 ]
158 },
159 {
160 "cell_type": "code",
161 "execution_count": 7,
162 "metadata": {},
163 "outputs": [
164 {
165 "data": {
166 "text/html": [
167 "<div>\n",
168 "<style scoped>\n",
169 " .dataframe tbody tr th:only-of-type {\n",
170 " vertical-align: middle;\n",
171 " }\n",
172 "\n",
173 " .dataframe tbody tr th {\n",
174 " vertical-align: top;\n",
175 " }\n",
176 "\n",
177 " .dataframe thead th {\n",
178 " text-align: right;\n",
179 " }\n",
180 "</style>\n",
181 "<table border=\"1\" class=\"dataframe\">\n",
182 " <thead>\n",
183 " <tr style=\"text-align: right;\">\n",
184 " <th></th>\n",
185 " <th>Annualized Return</th>\n",
186 " <th>Annualized Vol</th>\n",
187 " <th>Skewness</th>\n",
188 " <th>Kurtosis</th>\n",
189 " <th>Cornish-Fisher VaR (5%)</th>\n",
190 " <th>Historic CVaR (5%)</th>\n",
191 " <th>Sharpe Ratio</th>\n",
192 " <th>Max Drawdown</th>\n",
193 " </tr>\n",
194 " </thead>\n",
195 " <tbody>\n",
196 " <tr>\n",
197 " <th>EW</th>\n",
198 " <td>0.121052</td>\n",
199 " <td>0.161000</td>\n",
200 " <td>-0.769256</td>\n",
201 " <td>6.572680</td>\n",
202 " <td>0.071993</td>\n",
203 " <td>0.103950</td>\n",
204 " <td>0.550248</td>\n",
205 " <td>-0.528292</td>\n",
206 " </tr>\n",
207 " <tr>\n",
208 " <th>CW</th>\n",
209 " <td>0.117007</td>\n",
210 " <td>0.149311</td>\n",
211 " <td>-0.702445</td>\n",
212 " <td>5.458192</td>\n",
213 " <td>0.066685</td>\n",
214 " <td>0.096232</td>\n",
215 " <td>0.566996</td>\n",
216 " <td>-0.518076</td>\n",
217 " </tr>\n",
218 " </tbody>\n",
219 "</table>\n",
220 "</div>"
221 ],
222 "text/plain": [
223 " Annualized Return Annualized Vol Skewness Kurtosis \\\n",
224 "EW 0.121052 0.161000 -0.769256 6.572680 \n",
225 "CW 0.117007 0.149311 -0.702445 5.458192 \n",
226 "\n",
227 " Cornish-Fisher VaR (5%) Historic CVaR (5%) Sharpe Ratio Max Drawdown \n",
228 "EW 0.071993 0.103950 0.550248 -0.528292 \n",
229 "CW 0.066685 0.096232 0.566996 -0.518076 "
230 ]
231 },
232 "execution_count": 7,
233 "metadata": {},
234 "output_type": "execute_result"
235 },
236 {
237 "data": {
238 "image/png": "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\n",
239 "text/plain": [
240 "<Figure size 864x432 with 1 Axes>"
241 ]
242 },
243 "metadata": {
244 "needs_background": "light"
245 },
246 "output_type": "display_data"
247 }
248 ],
249 "source": [
250 "ewr = erk.backtest_ws(ind_rets, estimation_window=36, weighting=erk.weight_ew)\n",
251 "cwr = erk.backtest_ws(ind_rets, estimation_window=36, weighting=erk.weight_cw, cap_weights=ind_mcap)\n",
252 "btr = pd.DataFrame({\"EW\": ewr, \"CW\": cwr})\n",
253 "(1+btr).cumprod().plot(figsize=(12,6), title=\"Industry Portfolios\")\n",
254 "erk.summary_stats(btr.dropna())"
255 ]
256 },
257 {
258 "cell_type": "markdown",
259 "metadata": {},
260 "source": [
261 "Now, let's run a backtest of this new weighting scheme we've just developed. Be warned that this will likely take quite some time to run - depending on your computer's CPU horsepower, but on my laptop it took several minutes."
262 ]
263 },
264 {
265 "cell_type": "code",
266 "execution_count": 8,
267 "metadata": {},
268 "outputs": [
269 {
270 "data": {
271 "text/html": [
272 "<div>\n",
273 "<style scoped>\n",
274 " .dataframe tbody tr th:only-of-type {\n",
275 " vertical-align: middle;\n",
276 " }\n",
277 "\n",
278 " .dataframe tbody tr th {\n",
279 " vertical-align: top;\n",
280 " }\n",
281 "\n",
282 " .dataframe thead th {\n",
283 " text-align: right;\n",
284 " }\n",
285 "</style>\n",
286 "<table border=\"1\" class=\"dataframe\">\n",
287 " <thead>\n",
288 " <tr style=\"text-align: right;\">\n",
289 " <th></th>\n",
290 " <th>Annualized Return</th>\n",
291 " <th>Annualized Vol</th>\n",
292 " <th>Skewness</th>\n",
293 " <th>Kurtosis</th>\n",
294 " <th>Cornish-Fisher VaR (5%)</th>\n",
295 " <th>Historic CVaR (5%)</th>\n",
296 " <th>Sharpe Ratio</th>\n",
297 " <th>Max Drawdown</th>\n",
298 " </tr>\n",
299 " </thead>\n",
300 " <tbody>\n",
301 " <tr>\n",
302 " <th>EW</th>\n",
303 " <td>0.121052</td>\n",
304 " <td>0.161000</td>\n",
305 " <td>-0.769256</td>\n",
306 " <td>6.572680</td>\n",
307 " <td>0.071993</td>\n",
308 " <td>0.103950</td>\n",
309 " <td>0.550248</td>\n",
310 " <td>-0.528292</td>\n",
311 " </tr>\n",
312 " <tr>\n",
313 " <th>CW</th>\n",
314 " <td>0.117007</td>\n",
315 " <td>0.149311</td>\n",
316 " <td>-0.702445</td>\n",
317 " <td>5.458192</td>\n",
318 " <td>0.066685</td>\n",
319 " <td>0.096232</td>\n",
320 " <td>0.566996</td>\n",
321 " <td>-0.518076</td>\n",
322 " </tr>\n",
323 " <tr>\n",
324 " <th>ERC-Sample</th>\n",
325 " <td>0.120185</td>\n",
326 " <td>0.149185</td>\n",
327 " <td>-0.872577</td>\n",
328 " <td>7.019237</td>\n",
329 " <td>0.066886</td>\n",
330 " <td>0.096357</td>\n",
331 " <td>0.588203</td>\n",
332 " <td>-0.502950</td>\n",
333 " </tr>\n",
334 " </tbody>\n",
335 "</table>\n",
336 "</div>"
337 ],
338 "text/plain": [
339 " Annualized Return Annualized Vol Skewness Kurtosis \\\n",
340 "EW 0.121052 0.161000 -0.769256 6.572680 \n",
341 "CW 0.117007 0.149311 -0.702445 5.458192 \n",
342 "ERC-Sample 0.120185 0.149185 -0.872577 7.019237 \n",
343 "\n",
344 " Cornish-Fisher VaR (5%) Historic CVaR (5%) Sharpe Ratio \\\n",
345 "EW 0.071993 0.103950 0.550248 \n",
346 "CW 0.066685 0.096232 0.566996 \n",
347 "ERC-Sample 0.066886 0.096357 0.588203 \n",
348 "\n",
349 " Max Drawdown \n",
350 "EW -0.528292 \n",
351 "CW -0.518076 \n",
352 "ERC-Sample -0.502950 "
353 ]
354 },
355 "execution_count": 8,
356 "metadata": {},
357 "output_type": "execute_result"
358 },
359 {
360 "data": {
361 "image/png": "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\n",
362 "text/plain": [
363 "<Figure size 864x432 with 1 Axes>"
364 ]
365 },
366 "metadata": {
367 "needs_background": "light"
368 },
369 "output_type": "display_data"
370 }
371 ],
372 "source": [
373 "mv_erc_r = erk.backtest_ws(ind_rets, estimation_window=36, weighting=weight_erc, cov_estimator=erk.sample_cov)\n",
374 "btr = pd.DataFrame({\"EW\": ewr, \"CW\": cwr, \"ERC-Sample\": mv_erc_r})\n",
375 "(1+btr).cumprod().plot(figsize=(12,6), title=\"Industry Portfolios\")\n",
376 "erk.summary_stats(btr.dropna())"
377 ]
378 },
379 {
380 "cell_type": "code",
381 "execution_count": null,
382 "metadata": {},
383 "outputs": [],
384 "source": []
385 }
386 ],
387 "metadata": {
388 "kernelspec": {
389 "display_name": "Python 3",
390 "language": "python",
391 "name": "python3"
392 },
393 "language_info": {
394 "codemirror_mode": {
395 "name": "ipython",
396 "version": 3
397 },
398 "file_extension": ".py",
399 "mimetype": "text/x-python",
400 "name": "python",
401 "nbconvert_exporter": "python",
402 "pygments_lexer": "ipython3",
403 "version": "3.8.8"
404 }
405 },
406 "nbformat": 4,
407 "nbformat_minor": 2
408 }