{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Riskfolio-Lib Tutorial: \n",
"
__[Financionerioncios](https://financioneroncios.wordpress.com)__\n",
"
__[Orenji](https://www.orenj-i.net)__\n",
"
__[Riskfolio-Lib](https://riskfolio-lib.readthedocs.io/en/latest/)__\n",
"
__[Dany Cajas](https://www.linkedin.com/in/dany-cajas/)__\n",
" \n",
"\n",
"## Tutorial 37: OWA Portfolio Optimization\n",
"\n",
"## 1. Downloading the data:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"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)\n",
"data = data.loc[:,('Adj Close', slice(None))]\n",
"data.columns = assets"
]
},
{
"cell_type": "code",
"execution_count": 2,
"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", " |
2018-10-19 | \n", "0.0475% | \n", "-0.8599% | \n", "-1.4333% | \n", "-3.0011% | \n", "0.1113% | \n", "1.2968% | \n", "3.4360% | \n", "-0.8763% | \n", "0.2945% | \n", "-0.7834% | \n", "... | \n", "0.6339% | \n", "-0.1823% | \n", "0.9185% | \n", "-0.7728% | \n", "1.1385% | \n", "-1.6075% | \n", "-1.1145% | \n", "-1.2872% | \n", "0.4575% | \n", "-0.8025% | \n", "
2018-10-22 | \n", "-1.9240% | \n", "-0.0786% | \n", "-0.6335% | \n", "-6.2983% | \n", "-0.6393% | \n", "-1.1024% | \n", "0.0527% | \n", "-0.3221% | \n", "1.1325% | \n", "-0.8199% | \n", "... | \n", "-0.8662% | \n", "0.4483% | \n", "-1.6953% | \n", "-2.8972% | \n", "-0.6085% | \n", "1.4752% | \n", "-0.6075% | \n", "-0.8634% | \n", "0.1457% | \n", "-3.4490% | \n", "
2018-10-23 | \n", "-3.6571% | \n", "-1.6658% | \n", "-0.4201% | \n", "-0.4520% | \n", "-0.2797% | \n", "-0.5034% | \n", "0.1844% | \n", "-3.9948% | \n", "-0.7051% | \n", "-0.2449% | \n", "... | \n", "0.4766% | \n", "-5.1240% | \n", "0.5341% | \n", "-0.0321% | \n", "1.0713% | \n", "-0.6728% | \n", "-1.0807% | \n", "-1.8308% | \n", "4.0560% | \n", "4.0353% | \n", "
2018-10-24 | \n", "-4.5500% | \n", "1.3141% | \n", "-1.8042% | \n", "-3.5933% | \n", "-4.2918% | \n", "0.8674% | \n", "0.9995% | \n", "-4.1109% | \n", "-3.6759% | \n", "-3.7140% | \n", "... | \n", "3.5178% | \n", "-4.2683% | \n", "1.5636% | \n", "-1.3479% | \n", "-8.0557% | \n", "-0.4838% | \n", "-1.2403% | \n", "-4.2187% | \n", "0.3671% | \n", "-3.3065% | \n", "
2018-10-25 | \n", "0.4741% | \n", "2.5715% | \n", "0.5186% | \n", "0.7782% | \n", "5.0411% | \n", "-0.5733% | \n", "-1.1719% | \n", "2.1585% | \n", "3.1657% | \n", "2.3271% | \n", "... | \n", "-1.0309% | \n", "0.4914% | \n", "0.5082% | \n", "0.9109% | \n", "-1.2517% | \n", "1.8962% | \n", "4.3662% | \n", "1.3800% | \n", "-1.7241% | \n", "3.3538% | \n", "
5 rows × 25 columns
\n", "\n", " | Classic MinRisk CVaR | \n", "OWA MinRisk CVaR | \n", "diff MinRisk CVaR | \n", "Classic Sharpe CVaR | \n", "OWA Sharpe CVaR | \n", "diff Sharpe CVaR | \n", "Classic MinRisk WR | \n", "OWA MinRisk WR | \n", "diff MinRisk WR | \n", "Classic Sharpe WR | \n", "OWA Sharpe WR | \n", "diff Sharpe WR | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|
APA | \n", "0.00% | \n", "0.00% | \n", "-0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
BA | \n", "3.79% | \n", "3.79% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
BAX | \n", "0.00% | \n", "0.00% | \n", "-0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
BMY | \n", "9.47% | \n", "9.47% | \n", "-0.00% | \n", "1.84% | \n", "1.84% | \n", "-0.00% | \n", "12.88% | \n", "12.88% | \n", "-0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
CMCSA | \n", "0.87% | \n", "0.87% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
CNP | \n", "9.42% | \n", "9.42% | \n", "-0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
CPB | \n", "6.95% | \n", "6.95% | \n", "-0.00% | \n", "28.53% | \n", "28.53% | \n", "-0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "33.71% | \n", "33.71% | \n", "0.00% | \n", "
DE | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
HPQ | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
JCI | \n", "0.00% | \n", "0.00% | \n", "-0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
JPM | \n", "0.00% | \n", "0.00% | \n", "-0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
LUV | \n", "0.00% | \n", "0.00% | \n", "-0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
MMC | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "24.42% | \n", "24.42% | \n", "-0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
MO | \n", "0.00% | \n", "0.00% | \n", "-0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "21.61% | \n", "21.61% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
MSFT | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
NI | \n", "0.00% | \n", "0.00% | \n", "-0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
PCAR | \n", "0.00% | \n", "0.00% | \n", "-0.00% | \n", "11.95% | \n", "11.95% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "13.79% | \n", "13.79% | \n", "0.00% | \n", "
PSA | \n", "25.40% | \n", "25.40% | \n", "0.00% | \n", "10.28% | \n", "10.28% | \n", "-0.00% | \n", "40.27% | \n", "40.27% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
SEE | \n", "2.27% | \n", "2.27% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "8.76% | \n", "8.76% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
T | \n", "4.52% | \n", "4.52% | \n", "-0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
TGT | \n", "4.85% | \n", "4.85% | \n", "-0.00% | \n", "22.28% | \n", "22.28% | \n", "0.00% | \n", "16.48% | \n", "16.48% | \n", "-0.00% | \n", "40.40% | \n", "40.40% | \n", "0.00% | \n", "
TMO | \n", "0.00% | \n", "0.00% | \n", "-0.00% | \n", "0.70% | \n", "0.70% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "12.09% | \n", "12.09% | \n", "-0.00% | \n", "
TXT | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
VZ | \n", "32.46% | \n", "32.46% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "
ZION | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "0.00% | \n", "