{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Riskfolio-Lib Tutorial: \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
__[Financionerioncios](https://financioneroncios.wordpress.com)__\n",
"
__[Orenji](https://www.linkedin.com/company/orenj-i)__\n",
"
__[Riskfolio-Lib](https://riskfolio-lib.readthedocs.io/en/latest/)__\n",
"
__[Dany Cajas](https://www.linkedin.com/in/dany-cajas/)__\n",
"\n",
"## Tutorial 10: Risk Parity Portfolio Optimization\n",
"\n",
"## 1. Downloading the data:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"[*********************100%%**********************] 25 of 25 completed\n"
]
}
],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import yfinance as yf\n",
"import warnings\n",
"\n",
"warnings.filterwarnings(\"ignore\")\n",
"pd.options.display.float_format = '{:.4%}'.format\n",
"\n",
"# Date range\n",
"start = '2016-01-01'\n",
"end = '2019-12-30'\n",
"\n",
"# Tickers of assets\n",
"assets = ['JCI', 'TGT', 'CMCSA', 'CPB', 'MO', 'APA', 'MMC', 'JPM',\n",
" 'ZION', 'PSA', 'BAX', 'BMY', 'LUV', 'PCAR', 'TXT', 'TMO',\n",
" 'DE', 'MSFT', 'HPQ', 'SEE', 'VZ', 'CNP', 'NI', 'T', 'BA']\n",
"assets.sort()\n",
"\n",
"# Downloading data\n",
"data = yf.download(assets, start = start, end = end, auto_adjust=False)\n",
"data = data.loc[:,('Adj Close', slice(None))]\n",
"data.columns = assets"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
| \n", " | APA | \n", "BA | \n", "BAX | \n", "BMY | \n", "CMCSA | \n", "CNP | \n", "CPB | \n", "DE | \n", "HPQ | \n", "JCI | \n", "... | \n", "NI | \n", "PCAR | \n", "PSA | \n", "SEE | \n", "T | \n", "TGT | \n", "TMO | \n", "TXT | \n", "VZ | \n", "ZION | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Date | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
| 2016-01-05 | \n", "-2.0257% | \n", "0.4057% | \n", "0.4036% | \n", "1.9693% | \n", "0.0180% | \n", "0.9305% | \n", "0.3678% | \n", "0.5783% | \n", "0.9483% | \n", "-1.1954% | \n", "... | \n", "1.5881% | \n", "0.0212% | \n", "2.8236% | \n", "0.9758% | \n", "0.6987% | \n", "1.7539% | \n", "-0.1730% | \n", "0.2410% | \n", "1.3734% | \n", "-1.0858% | \n", "
| 2016-01-06 | \n", "-11.4863% | \n", "-1.5879% | \n", "0.2411% | \n", "-1.7557% | \n", "-0.7727% | \n", "-1.2473% | \n", "-0.1736% | \n", "-1.1239% | \n", "-3.5867% | \n", "-0.9551% | \n", "... | \n", "0.5547% | \n", "0.0212% | \n", "0.1592% | \n", "-1.5646% | \n", "0.3108% | \n", "-1.0155% | \n", "-0.7653% | \n", "-3.0048% | \n", "-0.9034% | \n", "-2.9145% | \n", "
| 2016-01-07 | \n", "-5.1389% | \n", "-4.1922% | \n", "-1.6573% | \n", "-2.7699% | \n", "-1.1047% | \n", "-1.9770% | \n", "-1.2206% | \n", "-0.8855% | \n", "-4.6058% | \n", "-2.5394% | \n", "... | \n", "-2.2066% | \n", "-3.0310% | \n", "-1.0410% | \n", "-3.1557% | \n", "-1.6148% | \n", "-0.2700% | \n", "-2.2844% | \n", "-2.0570% | \n", "-0.5492% | \n", "-3.0019% | \n", "
| 2016-01-08 | \n", "0.2736% | \n", "-2.2705% | \n", "-1.6037% | \n", "-2.5425% | \n", "0.1098% | \n", "-0.2240% | \n", "0.5707% | \n", "-1.6402% | \n", "-1.7642% | \n", "-0.1649% | \n", "... | \n", "-0.1538% | \n", "-1.1366% | \n", "-0.7308% | \n", "-0.1448% | \n", "0.0895% | \n", "-3.3839% | \n", "-0.1117% | \n", "-1.1387% | \n", "-0.9719% | \n", "-1.1254% | \n", "
| 2016-01-11 | \n", "-4.3383% | \n", "0.1692% | \n", "-1.6851% | \n", "-1.0215% | \n", "0.0915% | \n", "-1.1792% | \n", "0.5674% | \n", "0.5287% | \n", "0.6616% | \n", "0.0330% | \n", "... | \n", "1.6436% | \n", "0.0000% | \n", "0.9869% | \n", "-0.1450% | \n", "1.2224% | \n", "1.4569% | \n", "0.5367% | \n", "-0.4607% | \n", "0.5800% | \n", "-1.9919% | \n", "
5 rows × 25 columns
\n", "| \n", " | APA | \n", "BA | \n", "BAX | \n", "BMY | \n", "CMCSA | \n", "CNP | \n", "CPB | \n", "DE | \n", "HPQ | \n", "JCI | \n", "... | \n", "NI | \n", "PCAR | \n", "PSA | \n", "SEE | \n", "T | \n", "TGT | \n", "TMO | \n", "TXT | \n", "VZ | \n", "ZION | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| weights | \n", "0.0000% | \n", "6.1590% | \n", "11.5019% | \n", "0.0000% | \n", "0.0000% | \n", "8.4806% | \n", "0.0000% | \n", "3.8193% | \n", "0.0000% | \n", "0.0000% | \n", "... | \n", "10.8264% | \n", "0.0000% | \n", "0.0000% | \n", "0.0000% | \n", "0.0000% | \n", "7.1804% | \n", "0.0000% | \n", "0.0000% | \n", "4.2740% | \n", "0.0000% | \n", "
1 rows × 25 columns
\n", "| \n", " | APA | \n", "BA | \n", "BAX | \n", "BMY | \n", "CMCSA | \n", "CNP | \n", "CPB | \n", "DE | \n", "HPQ | \n", "JCI | \n", "... | \n", "NI | \n", "PCAR | \n", "PSA | \n", "SEE | \n", "T | \n", "TGT | \n", "TMO | \n", "TXT | \n", "VZ | \n", "ZION | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| weights | \n", "0.0000% | \n", "6.1590% | \n", "11.5019% | \n", "0.0000% | \n", "0.0000% | \n", "8.4806% | \n", "0.0000% | \n", "3.8193% | \n", "0.0000% | \n", "0.0000% | \n", "... | \n", "10.8264% | \n", "0.0000% | \n", "0.0000% | \n", "0.0000% | \n", "0.0000% | \n", "7.1804% | \n", "0.0000% | \n", "0.0000% | \n", "4.2740% | \n", "0.0000% | \n", "
1 rows × 25 columns
\n", "| \n", " | MV | \n", "MAD | \n", "MSV | \n", "FLPM | \n", "SLPM | \n", "CVaR | \n", "EVaR | \n", "CDaR | \n", "UCI | \n", "EDaR | \n", "
|---|---|---|---|---|---|---|---|---|---|---|
| APA | \n", "2.40% | \n", "2.20% | \n", "2.51% | \n", "2.03% | \n", "2.40% | \n", "2.45% | \n", "2.80% | \n", "1.16% | \n", "1.16% | \n", "1.05% | \n", "
| BA | \n", "3.08% | \n", "3.22% | \n", "2.99% | \n", "3.30% | \n", "3.04% | \n", "2.87% | \n", "2.76% | \n", "6.48% | \n", "6.10% | \n", "4.23% | \n", "
| BAX | \n", "4.03% | \n", "4.40% | \n", "3.93% | \n", "4.64% | \n", "4.02% | \n", "3.77% | \n", "3.49% | \n", "2.67% | \n", "3.41% | \n", "2.69% | \n", "
| BMY | \n", "4.12% | \n", "4.24% | \n", "4.19% | \n", "4.07% | \n", "4.07% | \n", "3.83% | \n", "4.67% | \n", "2.01% | \n", "1.59% | \n", "2.24% | \n", "
| CMCSA | \n", "3.89% | \n", "4.01% | \n", "3.89% | \n", "3.86% | \n", "3.90% | \n", "3.72% | \n", "3.52% | \n", "2.66% | \n", "2.52% | \n", "3.59% | \n", "
| CNP | \n", "5.20% | \n", "5.06% | \n", "5.22% | \n", "5.11% | \n", "5.34% | \n", "5.63% | \n", "5.50% | \n", "7.25% | \n", "5.67% | \n", "9.14% | \n", "
| CPB | \n", "5.10% | \n", "4.54% | \n", "5.69% | \n", "4.48% | \n", "5.66% | \n", "6.94% | \n", "7.73% | \n", "2.83% | \n", "2.51% | \n", "2.64% | \n", "
| DE | \n", "3.04% | \n", "3.02% | \n", "2.91% | \n", "3.08% | \n", "2.94% | \n", "2.79% | \n", "2.95% | \n", "5.21% | \n", "5.33% | \n", "7.12% | \n", "
| HPQ | \n", "2.83% | \n", "2.95% | \n", "2.64% | \n", "2.91% | \n", "2.62% | \n", "2.36% | \n", "2.69% | \n", "2.57% | \n", "2.57% | \n", "2.43% | \n", "
| JCI | \n", "3.61% | \n", "3.51% | \n", "3.60% | \n", "3.50% | \n", "3.58% | \n", "3.37% | \n", "3.27% | \n", "1.90% | \n", "2.03% | \n", "1.97% | \n", "
| JPM | \n", "3.35% | \n", "3.67% | \n", "3.35% | \n", "3.89% | \n", "3.40% | \n", "2.99% | \n", "3.08% | \n", "3.70% | \n", "3.75% | \n", "3.17% | \n", "
| LUV | \n", "3.42% | \n", "3.37% | \n", "3.33% | \n", "3.13% | \n", "3.28% | \n", "2.92% | \n", "3.80% | \n", "1.98% | \n", "1.82% | \n", "1.76% | \n", "
| MMC | \n", "4.41% | \n", "4.69% | \n", "4.33% | \n", "5.03% | \n", "4.44% | \n", "4.09% | \n", "4.36% | \n", "5.64% | \n", "6.52% | \n", "5.05% | \n", "
| MO | \n", "5.18% | \n", "5.02% | \n", "4.98% | \n", "4.82% | \n", "4.83% | \n", "5.01% | \n", "4.04% | \n", "2.27% | \n", "2.01% | \n", "2.14% | \n", "
| MSFT | \n", "3.26% | \n", "3.88% | \n", "3.25% | \n", "4.27% | \n", "3.34% | \n", "2.94% | \n", "3.15% | \n", "6.07% | \n", "9.19% | \n", "4.42% | \n", "
| NI | \n", "6.54% | \n", "6.54% | \n", "6.63% | \n", "6.95% | \n", "6.77% | \n", "6.70% | \n", "6.40% | \n", "5.80% | \n", "6.74% | \n", "5.50% | \n", "
| PCAR | \n", "2.99% | \n", "2.81% | \n", "3.04% | \n", "2.81% | \n", "3.06% | \n", "3.25% | \n", "3.23% | \n", "1.89% | \n", "1.92% | \n", "2.25% | \n", "
| PSA | \n", "6.87% | \n", "6.29% | \n", "7.30% | \n", "5.79% | \n", "7.14% | \n", "7.98% | \n", "6.09% | \n", "13.37% | \n", "10.92% | \n", "12.54% | \n", "
| SEE | \n", "3.54% | \n", "3.45% | \n", "3.38% | \n", "3.14% | \n", "3.25% | \n", "3.32% | \n", "3.58% | \n", "1.96% | \n", "1.83% | \n", "2.36% | \n", "
| T | \n", "4.59% | \n", "4.56% | \n", "4.41% | \n", "4.50% | \n", "4.39% | \n", "4.31% | \n", "4.04% | \n", "3.43% | \n", "3.55% | \n", "3.05% | \n", "
| TGT | \n", "3.97% | \n", "3.66% | \n", "4.19% | \n", "3.88% | \n", "4.34% | \n", "4.80% | \n", "5.59% | \n", "2.00% | \n", "2.22% | \n", "1.74% | \n", "
| TMO | \n", "3.43% | \n", "3.60% | \n", "3.36% | \n", "3.72% | \n", "3.41% | \n", "3.08% | \n", "3.25% | \n", "4.57% | \n", "4.70% | \n", "4.00% | \n", "
| TXT | \n", "2.95% | \n", "2.93% | \n", "2.86% | \n", "2.68% | \n", "2.75% | \n", "2.66% | \n", "3.12% | \n", "1.58% | \n", "1.58% | \n", "1.37% | \n", "
| VZ | \n", "5.19% | \n", "5.19% | \n", "5.15% | \n", "5.19% | \n", "5.19% | \n", "5.69% | \n", "4.10% | \n", "7.75% | \n", "6.36% | \n", "11.08% | \n", "
| ZION | \n", "3.00% | \n", "3.19% | \n", "2.86% | \n", "3.21% | \n", "2.85% | \n", "2.54% | \n", "2.79% | \n", "3.25% | \n", "4.02% | \n", "2.47% | \n", "