diff --git a/docs/Example_US_Asset_Classes.ipynb b/docs/Example_US_Asset_Classes.ipynb index fee5bd3..e4ff667 100644 --- a/docs/Example_US_Asset_Classes.ipynb +++ b/docs/Example_US_Asset_Classes.ipynb @@ -48,6 +48,7 @@ "import pandas as pd\n", "import plotly.express as px\n", "import plotly.graph_objects as go\n", + "import plotly.io as pio\n", "import seaborn as sns\n", "\n", "from penfolioop.optimizers import (\n", @@ -136,7 +137,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "4b43adbf", "metadata": {}, "outputs": [ @@ -1237,7 +1238,7 @@ } ], "source": [ - "\n", + "pio.renderers.default = \"notebook_connected\"\n", "fig = px.bar(\n", " expected_returns.sort_values(ascending=False),\n", " title=\"Expected Returns by Asset Class\",\n", @@ -1260,4100 +1261,484 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "3d8379db", "metadata": {}, "outputs": [ { "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "color=Cash
Asset Class=%{x}
Expected Volatility=%{y}", - "legendgroup": "Cash", - "marker": { - "color": "rgb(102,194,165)", - "line": { - "color": "black", - "width": 1.5 - }, - "pattern": { - "shape": "" - } - }, - "name": "Cash", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "texttemplate": "%{y:.2%}", - "type": "bar", - "x": [ - "Real Estate" - ], - "xaxis": "x", - "y": { - "bdata": "hMt090wkqj8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "color=Government Bond
Asset Class=%{x}
Expected Volatility=%{y}", - "legendgroup": "Government Bond", - "marker": { - "color": "rgb(252,141,98)", - "line": { - "color": "black", - "width": 1.5 - }, - "pattern": { - "shape": "" - } - }, - "name": "Government Bond", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "texttemplate": "%{y:.2%}", - "type": "bar", - "x": [ - "Equity" - ], - "xaxis": "x", - "y": { - "bdata": "lO5f46FHpj8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "color=High Yield Corporate Bond
Asset Class=%{x}
Expected Volatility=%{y}", - "legendgroup": "High Yield Corporate Bond", - "marker": { - "color": "rgb(141,160,203)", - "line": { - "color": "black", - "width": 1.5 - }, - "pattern": { - "shape": "" - } - }, - "name": "High Yield Corporate Bond", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "texttemplate": "%{y:.2%}", - "type": "bar", - "x": [ - "Government Bond" - ], - "xaxis": "x", - "y": { - "bdata": "h6sMd7NepD8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "color=Investment Grade Corporate Bond
Asset Class=%{x}
Expected Volatility=%{y}", - "legendgroup": "Investment Grade Corporate Bond", - "marker": { - "color": "rgb(231,138,195)", - "line": { - "color": "black", - "width": 1.5 - }, - "pattern": { - "shape": "" - } - }, - "name": "Investment Grade Corporate Bond", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "texttemplate": "%{y:.2%}", - "type": "bar", - "x": [ - "Emerging Market Debt Local Currency" - ], - "xaxis": "x", - "y": { - "bdata": "15+ZqWojnj8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "color=Emerging Market Debt Local Currency
Asset Class=%{x}
Expected Volatility=%{y}", - "legendgroup": "Emerging Market Debt Local Currency", - "marker": { - "color": "rgb(166,216,84)", - "line": { - "color": "black", - "width": 1.5 - }, - "pattern": { - "shape": "" - } - }, - "name": "Emerging Market Debt Local Currency", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "texttemplate": "%{y:.2%}", - "type": "bar", - "x": [ - "Emerging Market Debt Hard Currency" - ], - "xaxis": "x", - "y": { - "bdata": "8pITo/RxnD8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "color=Emerging Market Debt Hard Currency
Asset Class=%{x}
Expected Volatility=%{y}", - "legendgroup": "Emerging Market Debt Hard Currency", - "marker": { - "color": "rgb(255,217,47)", - "line": { - "color": "black", - "width": 1.5 - }, - "pattern": { - "shape": "" - } - }, - "name": "Emerging Market Debt Hard Currency", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "texttemplate": "%{y:.2%}", - "type": "bar", - "x": [ - "Investment Grade Corporate Bond" - ], - "xaxis": "x", - "y": { - "bdata": "ErTEgYOVmD8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "color=Equity
Asset Class=%{x}
Expected Volatility=%{y}", - "legendgroup": "Equity", - "marker": { - "color": "rgb(229,196,148)", - "line": { - "color": "black", - "width": 1.5 - }, - "pattern": { - "shape": "" - } - }, - "name": "Equity", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "texttemplate": "%{y:.2%}", - "type": "bar", - "x": [ - "Liabilities" - ], - "xaxis": "x", - "y": { - "bdata": "MdRRYrbtlT8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "color=Real Estate
Asset Class=%{x}
Expected Volatility=%{y}", - "legendgroup": "Real Estate", - "marker": { - "color": "rgb(179,179,179)", - "line": { - "color": "black", - "width": 1.5 - }, - "pattern": { - "shape": "" - } - }, - "name": "Real Estate", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "texttemplate": "%{y:.2%}", - "type": "bar", - "x": [ - "High Yield Corporate Bond" - ], - "xaxis": "x", - "y": { - "bdata": "nqSc7gS7lT8=", - "dtype": "f8" - }, - "yaxis": "y" - }, - { - "hovertemplate": "color=Liabilities
Asset Class=%{x}
Expected Volatility=%{y}", - "legendgroup": "Liabilities", - "marker": { - "color": "rgb(102,194,165)", - "line": { - "color": "black", - "width": 1.5 - }, - "pattern": { - "shape": "" - } - }, - "name": "Liabilities", - "orientation": "v", - "showlegend": true, - "textposition": "auto", - "texttemplate": "%{y:.2%}", - "type": "bar", - "x": [ - "Cash" - ], - "xaxis": "x", - "y": { - "bdata": "uAmligLmXz8=", - "dtype": "f8" - }, - "yaxis": "y" - } - ], - "layout": { - "barmode": "relative", - "font": { - "size": 12 - }, - "height": 350, - "legend": { - "title": { - "text": "color" - }, - "tracegroupgap": 0 - }, - "margin": { - "b": 30, - "l": 30, - "r": 30, - "t": 50 - }, - "showlegend": false, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermap": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermap" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Expected Volatility by Asset Class", - "x": 0.5 - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "tickangle": -30, - "title": { - "text": "Asset Class" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Expected Volatility" - } - } - } - } - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "\n", - "fig = px.bar(\n", - " benchmark_returns.std().sort_values(ascending=False),\n", - " title=\"Expected Volatility by Asset Class\",\n", - " labels={\"value\": \"Expected Volatility\", \"index\": \"Asset Class\"},\n", - " text_auto=\".2%\",\n", - " color=names,\n", - " color_discrete_sequence=px.colors.qualitative.Set2\n", - ")\n", - "fig.update_layout(\n", - " showlegend=False,\n", - " title_x=0.5,\n", - " height=350,\n", - " margin=dict(l=30, r=30, t=50, b=30),\n", - " xaxis_tickangle=-30,\n", - " font=dict(size=12)\n", - ")\n", - "fig.update_traces(marker_line_width=1.5, marker_line_color=\"black\")\n", - "fig.show()" - ] - }, - { - "cell_type": "markdown", - "id": "0713eea7", - "metadata": {}, - "source": [ - "Now, we define our `portfolio` object" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "933e4d2d", - "metadata": {}, - "outputs": [], - "source": [ - "portfolio = Portfolio(\n", - " names=names,\n", - " expected_returns=expected_returns.values,\n", - " covariance_matrix=covariance_matrix.values,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "0d3a08d6", - "metadata": {}, - "source": [ - "We define the following constraints on our asset classes:\n", - "\n", - "- `Cash` weight must be below 0.1.\n", - "- The combined weight of `Emerging Market Debt Local Currency` and `Emerging Market Debt Hard Currency` must be less than that of `Equity`.\n", - "- The combined weights of the return seeking (`Emerging Market Debt Local Currency`, `Emerging Market Debt Hard Currency`, `Equity`, `High Yield Corporate Bond`) assets must be at least 0.3.\n", - "- The weight of `Real Estate` must be greater than 0.1.\n", - "- The weight of `Investment Grade Corporate Bond` must be at least 0.3.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "9c0f026b", - "metadata": {}, - "outputs": [], - "source": [ - "constraints = [\n", - " {\"left_indices\": [\"Cash\"],\n", - " \"operator\": \"<=\",\n", - " \"right_value\": 0.1},\n", - "\n", - " {\"left_indices\": [\"Emerging Market Debt Local Currency\", \"Emerging Market Debt Hard Currency\"],\n", - " \"operator\": \"<=\",\n", - " \"right_indices\": [\"Equity\"]},\n", - "\n", - " {\"left_indices\": [\"Emerging Market Debt Local Currency\", \"Emerging Market Debt Hard Currency\", \"Equity\", \"High Yield Corporate Bond\"],\n", - " \"operator\": \">=\",\n", - " \"right_value\": 0.3},\n", - "\n", - " {\"left_indices\": [\"Real Estate\"],\n", - " \"operator\": \"<=\",\n", - " \"right_value\": 0.1},\n", - "\n", - " {\"left_indices\": [\"Investment Grade Corporate Bond\"],\n", - " \"operator\": \">=\",\n", - " \"right_value\": 0.3},\n", - "]\n" - ] - }, - { - "cell_type": "markdown", - "id": "f9f8aed5", - "metadata": {}, - "source": [ - "Let's estimate the asset class weights using our defined constraints and the following optimizers:\n", - "\n", - "- `min_surplus_variance_optimizer`,\n", - "- `max_surplus_return_optimizer`,\n", - "- `max_surplus_sharp_ratio_optimizer`,\n", - "- `efficient_frontier`" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "5b2ddc16", - "metadata": {}, - "outputs": [], - "source": [ - "min_variance_weights = min_surplus_variance_optimizer(portfolio, asset_constraints=constraints)\n", - "min_variance_return = portfolio.surplus_return(min_variance_weights)\n", - "min_variance_vol = portfolio.surplus_variance(min_variance_weights)**.5\n", - "\n", - "\n", - "max_return_weights = max_surplus_return_optimizer(portfolio, asset_constraints=constraints)\n", - "max_return = portfolio.surplus_return(max_return_weights)\n", - "max_return_vol = portfolio.surplus_variance(max_return_weights)**.5\n", - "\n", - "max_sharpe_weights = max_surplus_sharp_ratio_optimizer(portfolio, asset_constraints=constraints)\n", - "max_sharpe_return = portfolio.surplus_return(max_sharpe_weights)\n", - "max_sharpe_vol = portfolio.surplus_variance(max_sharpe_weights)**.5\n", - "\n", - "\n", - "efficient_frontier_results = efficient_frontier(\n", - " portfolio=portfolio,\n", - " asset_constraints=constraints,\n", - " surplus_return_range=(-0.005, 0.005),\n", - ")\n", - "ef_weights = efficient_frontier_results[\"weights\"]\n", - "ef_returns = efficient_frontier_results[\"surplus_returns\"]\n", - "ef_vols = efficient_frontier_results[\"surplus_variances\"]**.5" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "25358f56", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "marker": { - "color": "rgb(228,26,28)" - }, - "name": "Min Surplus Variance Optimizer", - "offset": 0, - "type": "bar", - "width": 0.2, - "x": { - "bdata": "mpmZmZmZyb+amZmZmZnpP83MzMzMzPw/ZmZmZmZmBkBmZmZmZmYOQDMzMzMzMxNAMzMzMzMzF0AzMzMzMzMbQA==", - "dtype": "f8" - }, - "y": { - "bdata": "mpmZmZmZuT80MzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", - "dtype": "f8" - } - }, - { - "marker": { - "color": "rgb(55,126,184)" - }, - "name": "Max Surplus Return Optimizer", - "offset": 0, - "type": "bar", - "width": 0.2, - "x": { - "bdata": "AAAAAAAAAAAAAAAAAADwPwAAAAAAAABAAAAAAAAACEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAGEAAAAAAAAAcQA==", - "dtype": "f8" - }, - "y": { - "bdata": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9dO5SzMz0z8AAAAAAAAAAAAAAAAAAAAABRYjWmZm5j8AAAAAAAAAAA==", - "dtype": "f8" - } - }, - { - "marker": { - "color": "rgb(77,175,74)" - }, - "name": "Max Surplus Sharpe Ratio Optimizer", - "offset": 0, - "type": "bar", - "width": 0.2, - "x": { - "bdata": "mpmZmZmZyT8zMzMzMzPzP5qZmZmZmQFAmpmZmZmZCUDNzMzMzMwQQM3MzMzMzBRAzczMzMzMGEDNzMzMzMwcQA==", - "dtype": "f8" - }, - "y": { - "bdata": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDMzMzMz0z8AAAAAAAAAAAAAAAAAAAAAZWZmZmZm5j8AAAAAAAAAAA==", - "dtype": "f8" - } - } - ], - "layout": { - "barmode": "group", - "font": { - "size": 12 - }, - "height": 400, - "legend": { - "title": { - "text": "Optimizer" - } - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermap": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermap" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Asset Class Weights by Optimizer" - }, - "xaxis": { - "tickmode": "array", - "ticktext": [ - "Cash", - "Government Bond", - "High Yield Corporate Bond", - "Investment Grade Corporate Bond", - "Emerging Market Debt Local Currency", - "Emerging Market Debt Hard Currency", - "Equity", - "Real Estate" - ], - "tickvals": { - "bdata": "AAECAwQFBgc=", - "dtype": "i1" - }, - "title": { - "text": "Asset Class" - } - }, - "yaxis": { - "title": { - "text": "Weight" - } - } - } - } - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "optimizers = [\"Min Surplus Variance Optimizer\", \"Max Surplus Return Optimizer\", \"Max Surplus Sharpe Ratio Optimizer\"]\n", - "weights = np.vstack([min_variance_weights[:-1], max_return_weights[:-1], max_sharpe_weights[:-1]])\n", - "\n", - "fig = go.Figure()\n", - "bar_width = 0.2\n", - "x = np.arange(len(names[:-1]))\n", - "\n", - "for idx, (optimizer, color) in enumerate(zip(optimizers, px.colors.qualitative.Set1)):\n", - " fig.add_trace(go.Bar(\n", - " x=x + (idx - 1) * bar_width,\n", - " y=weights[idx],\n", - " name=optimizer,\n", - " marker_color=color,\n", - " width=bar_width,\n", - " offset=0\n", - " ))\n", - "\n", - "fig.update_layout(\n", - " xaxis=dict(\n", - " tickmode='array',\n", - " tickvals=x,\n", - " ticktext=names[:-1]\n", - " ),\n", - " barmode='group',\n", - " title=\"Asset Class Weights by Optimizer\",\n", - " xaxis_title=\"Asset Class\",\n", - " yaxis_title=\"Weight\",\n", - " legend_title=\"Optimizer\",\n", - " font=dict(size=12),\n", - " height=400\n", - ")\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "51f524e1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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4sz3Rwuezpw5IytWrMiWHcS+ly5dyrY/Tn+jswJ/f9z//tj7/cF7dPr06SI/HyJvxwCXHAZZhTZt2siqVass20wmk7reqVMnm/fBduv9Af/A29vfFjymv79/tuPg9PfZs2cLdRxv5673xxatlRgyueTc90cLno4dOyYrV65UdZw5j4EPh6gv1axevVo9tvZBhNz3/tj7/UH9b87SEiKy4u5ZbuR9bXQCAwPNX375pZqdPXr0aNVG5+LFi+r2Bx54wDxhwoRsbXT8/PzM77zzjup8MGXKlFxtqC5fvqxm5i9dulTNLsZj4Dpa5Vi3CatRo4Z59erVqk1Yp06d1IXc//4cP35ctTjC+4JOC7/88ou5du3a5q5du7rhFfCt9ycjI8N8++23m6tXr27evXt3tjZT6enp2dqEtWrVyrxlyxbzhg0bzPXq1WObMA95fzZt2qQ6KOD2EydOmL/99ltzxYoVzcOGDXPTq0BUMjDAJYf78MMPVbCJfpFoq4PemtbtooYPH55t/x9++MFcv359tX+TJk1UoGRt7ty5KnDKecEfC01qaqr5scceM5crV84cEhJiHjRoULYAmNz3/pw9e1YFs+XLl1fBAXqsPvvss+yD64L3R2vdZuuyZs2abB9SENCGhoaaw8LCzCNGjDBfu3bNRc+4ZHH1+7Njxw7VWqxMmTLmoKAgc6NGjcyvv/66OS0tzYXPmqjk0eF/1hldIiIiIqKSjDW4RERERORVGOASERERkVdhgEtEREREXoUBLhERERF5FQa4RERERORVGOASERERkVdhgEtEREREXoUBLhERERF5FQa4RF5szZo1cuedd0q1atUkICBAypUrJw0aNJC7775bZs6cKQkJCeKpunfvLjqdTk6fPu3WcZhMJomMjFRj+euvv/Ld/6233lL74nUviqioKHV/Z8PrisfB62xt7dq1avuDDz6YbfuXX36ptk+dOtXpYyMiKi4GuERe6uWXX5aePXvKokWLpEyZMnLrrbdKnz59JDg4WG174okn5NChQ+4epsfT6/Vy7733qu+//fbbfPfX9nnggQfEnVwVkCIQxuMgMCYi8hR+7h4AETnejh07VGDj7+8vP/zwgwwcODDb7RcvXlSBWNmyZd02xpIEwSoyswsXLpQPP/xQZcNt2bt3r+zbt0/Kly8vt9xyi3gyZPXxASckJKRA+w8a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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots(figsize=(8, 6))\n", - "sc = ax.scatter(ef_vols, ef_returns, c=ef_weights[:, 6], cmap=\"viridis\")\n", - "ax.scatter(min_variance_vol, min_variance_return, c='C0', s=200, edgecolors='black', marker='o', label='Min Surplus Variance')\n", - "ax.scatter(max_return_vol, max_return, c='C3', s=200, edgecolors='black', marker='s', label='Max Surplus Return')\n", - "ax.scatter(max_sharpe_vol, max_sharpe_return, c='C4', s=200, edgecolors='black', marker='^', label='Max Surplus Sharpe Ratio')\n", - "\n", - "ax.set_xlabel(\"Surplus Volatility\", fontsize=15)\n", - "ax.set_ylabel(\"Surplus Return\", fontsize=15)\n", - "fig.colorbar(sc, label=\"Equity Weight\")\n", - "ax.set_title(\"Efficient Frontier Portfolios\", fontsize=15)\n", - "ax.legend(frameon=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "5c653fe0", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "mode": "lines", - "name": "Cash", - "stackgroup": "one", - "type": "scatter", - "x": { - "bdata": "EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI7+AcFVSrHoKv0BvVVKsego/0BPAPQHcIz/oZXWzq4wwP8jBCshWKzc/0B2g3AHKPT/cvJp4VjRCP9Rq5QKsg0U/zBgwjQHTSD+8xnoXVyJMP8R0xaGscU8/YBEIFoFgUT9aaC3bKwhTP1q/UqDWr1Q/VhZ4ZYFXVj9SbZ0qLP9XP07Ewu/Wplk/ShvotIFOWz9Gcg16LPZcP0rJMj/XnV4/IRAsAsEiYD+ju75klvZgPyFnUcdrymE/nRLkKUGeYj8bvnaMFnJjP5lpCe/rRWQ/GRWcUcEZZT+XwC60lu1lPxVswRZswWY/lRdUeUGVZz8Rw+bbFmloP5FueT7sPGk/DxoMocEQaj+NxZ4Dl+RqPw1xMWZsuGs/hxzEyEGMbD8JyFYrF2BtP4lz6Y3sM24/Ax988MEHbz+Fyg5Tl9tvPwK70Fq2V3A/wBAaDKHBcD+AZmO9iytxP0C8rG52lXE//hH2H2H/cT++Zz/RS2lyP3y9iII203I/PhPSMyE9cz/6aBvlC6dzP7y+ZJb2EHQ/ehSuR+F6dD8=", - "dtype": "f8" - }, - "y": { - "bdata": "mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5uZmZmZmbk/mpmZmZmZuT+bmZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+bmZmZmZm5P5qZmZmZmbk/m5mZmZmZuT+bmZmZmZm5P5qZmZmZmbk/m5mZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5uZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+bmZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5P5qZmZmZmbk/mpmZmZmZuT911onrHOm4P4EkRff+cLc/pXIAA+H4tT+vwLsOw4C0P7cOdxqlCLM/zFwyJoeQsT/tqu0xaRiwP+3xUXuWQK0/Fo7IklpQqj83Kj+qHmCnP0/GtcHib6Q/YGIs2aZ/oT8i/UXh1R6dP2E1MxBePpc/vm0gP+ZdkT8=", - "dtype": "f8" - } - }, - { - "mode": "lines", - "name": "Government Bond", - "stackgroup": "one", - "type": "scatter", - "x": { - "bdata": "EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI7+AcFVSrHoKv0BvVVKsego/0BPAPQHcIz/oZXWzq4wwP8jBCshWKzc/0B2g3AHKPT/cvJp4VjRCP9Rq5QKsg0U/zBgwjQHTSD+8xnoXVyJMP8R0xaGscU8/YBEIFoFgUT9aaC3bKwhTP1q/UqDWr1Q/VhZ4ZYFXVj9SbZ0qLP9XP07Ewu/Wplk/ShvotIFOWz9Gcg16LPZcP0rJMj/XnV4/IRAsAsEiYD+ju75klvZgPyFnUcdrymE/nRLkKUGeYj8bvnaMFnJjP5lpCe/rRWQ/GRWcUcEZZT+XwC60lu1lPxVswRZswWY/lRdUeUGVZz8Rw+bbFmloP5FueT7sPGk/DxoMocEQaj+NxZ4Dl+RqPw1xMWZsuGs/hxzEyEGMbD8JyFYrF2BtP4lz6Y3sM24/Ax988MEHbz+Fyg5Tl9tvPwK70Fq2V3A/wBAaDKHBcD+AZmO9iytxP0C8rG52lXE//hH2H2H/cT++Zz/RS2lyP3y9iII203I/PhPSMyE9cz/6aBvlC6dzP7y+ZJb2EHQ/ehSuR+F6dD8=", - "dtype": "f8" - }, - "y": { - "bdata": "NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z80MzMzMzPTPzQzMzMzM9M/NDMzMzMz0z9D4suz8B3SP6yK5y+33dE/FDMDrH2d0T+D2x4oRF3RP+qDOqQKHdE/TyxWINHc0D+91HGcl5zQPyd9jRheXNA/mPH60z+S0D+95XMuHtTQPxH97RzRtNA/fxuWgil10D/tOT7ogTXQP7awzJu0688/lO0cZ2Vszz9wKm0yFu3OP01nvf3Gbc4/JqQNyXfuzT//4F2UKG/NP9kdrl/Z78w/uVr+KopwzD+Sl072OvHLP27UnsHrccs/TxHvjJzyyj8qTj9YTXPKPwiLjyP+88k/5cff7q50yT8Jy1E7PqHIP0SYvk0dX8c/gGUrYPwcxj+7Mphy29rEP/j/BIW6mMM/M81xl5lWwj9xmt6peBTBP1XPlnivpL8/1WlwnW0gvT9CDSRBuCa7P2gC9Gm6ybk/lffDkrxsuD+67JO7vg+3P+XhY+TAsrU/BtczDcNVtD8vzAM2xfiyP1XB017Hm7E/grajh8k+sD9HV+dgl8OtP65Bh7KbCas/7isnBKBPqD9GFsdVpJWlP4wAZ6eo26I/4+oG+awhoD8=", - "dtype": "f8" - } - }, - { - "mode": "lines", - "name": "High Yield Corporate Bond", - "stackgroup": "one", - "type": "scatter", - "x": { - "bdata": "EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI7+AcFVSrHoKv0BvVVKsego/0BPAPQHcIz/oZXWzq4wwP8jBCshWKzc/0B2g3AHKPT/cvJp4VjRCP9Rq5QKsg0U/zBgwjQHTSD+8xnoXVyJMP8R0xaGscU8/YBEIFoFgUT9aaC3bKwhTP1q/UqDWr1Q/VhZ4ZYFXVj9SbZ0qLP9XP07Ewu/Wplk/ShvotIFOWz9Gcg16LPZcP0rJMj/XnV4/IRAsAsEiYD+ju75klvZgPyFnUcdrymE/nRLkKUGeYj8bvnaMFnJjP5lpCe/rRWQ/GRWcUcEZZT+XwC60lu1lPxVswRZswWY/lRdUeUGVZz8Rw+bbFmloP5FueT7sPGk/DxoMocEQaj+NxZ4Dl+RqPw1xMWZsuGs/hxzEyEGMbD8JyFYrF2BtP4lz6Y3sM24/Ax988MEHbz+Fyg5Tl9tvPwK70Fq2V3A/wBAaDKHBcD+AZmO9iytxP0C8rG52lXE//hH2H2H/cT++Zz/RS2lyP3y9iII203I/PhPSMyE9cz/6aBvlC6dzP7y+ZJb2EHQ/ehSuR+F6dD8=", - "dtype": "f8" - }, - "y": { - "bdata": "MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z/KTP2qYZTSP4yzgWWskdE/ShoGIPeO0D8SAhW1gxjPP5jPHSoZE80/FJ0mn64Nyz+Xai8URAjJPxk4OInZAsc/O4/ZfHYlxz9E0zIsGoDHP6BifgMnkcY/pzcuXHY0xT+gDN60xdfDP6DhjQ0Ve8I/mLY9ZmQewT88F9t9Z4O/PyPBOi8Gyrw/Kmua4KQQuj87FfqRQ1e3PzW/WUPinbQ/Kmm59IDksT81JjJMP1auPyx68a5846g/F86wEbpwoz8+RODo7vubP1PsXq5pFpE/5052z5HDeD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "dtype": "f8" - } - }, - { - "mode": "lines", - "name": "Investment Grade Corporate Bond", - "stackgroup": "one", - "type": "scatter", - "x": { - "bdata": "EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI7+AcFVSrHoKv0BvVVKsego/0BPAPQHcIz/oZXWzq4wwP8jBCshWKzc/0B2g3AHKPT/cvJp4VjRCP9Rq5QKsg0U/zBgwjQHTSD+8xnoXVyJMP8R0xaGscU8/YBEIFoFgUT9aaC3bKwhTP1q/UqDWr1Q/VhZ4ZYFXVj9SbZ0qLP9XP07Ewu/Wplk/ShvotIFOWz9Gcg16LPZcP0rJMj/XnV4/IRAsAsEiYD+ju75klvZgPyFnUcdrymE/nRLkKUGeYj8bvnaMFnJjP5lpCe/rRWQ/GRWcUcEZZT+XwC60lu1lPxVswRZswWY/lRdUeUGVZz8Rw+bbFmloP5FueT7sPGk/DxoMocEQaj+NxZ4Dl+RqPw1xMWZsuGs/hxzEyEGMbD8JyFYrF2BtP4lz6Y3sM24/Ax988MEHbz+Fyg5Tl9tvPwK70Fq2V3A/wBAaDKHBcD+AZmO9iytxP0C8rG52lXE//hH2H2H/cT++Zz/RS2lyP3y9iII203I/PhPSMyE9cz/6aBvlC6dzP7y+ZJb2EHQ/ehSuR+F6dD8=", - "dtype": "f8" - }, - "y": { - "bdata": "MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8khJqydUjUP7vbfjaviNQ/UjNjuujI1D/likc+IgnVP37iK8JbSdU/FzoQRpWJ1T+rkfTJzsnVP0Dp2E0ICtY/LOTPwqLb1D8FKGK5B4jTPzMzMzMzM9M/NDMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzQzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z80MzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8zMzMzMzPTPzMzMzMzM9M/MzMzMzMz0z8yMzMzMzPTPzMzMzMzM9M/NDMzMzMz0z8zMzMzMzPTPzQzMzMzM9M/MzMzMzMz0z8=", - "dtype": "f8" - } - }, - { - "mode": "lines", - "name": "Emerging Market Debt Local Currency", - "stackgroup": "one", - "type": "scatter", - "x": { - "bdata": "EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI7+AcFVSrHoKv0BvVVKsego/0BPAPQHcIz/oZXWzq4wwP8jBCshWKzc/0B2g3AHKPT/cvJp4VjRCP9Rq5QKsg0U/zBgwjQHTSD+8xnoXVyJMP8R0xaGscU8/YBEIFoFgUT9aaC3bKwhTP1q/UqDWr1Q/VhZ4ZYFXVj9SbZ0qLP9XP07Ewu/Wplk/ShvotIFOWz9Gcg16LPZcP0rJMj/XnV4/IRAsAsEiYD+ju75klvZgPyFnUcdrymE/nRLkKUGeYj8bvnaMFnJjP5lpCe/rRWQ/GRWcUcEZZT+XwC60lu1lPxVswRZswWY/lRdUeUGVZz8Rw+bbFmloP5FueT7sPGk/DxoMocEQaj+NxZ4Dl+RqPw1xMWZsuGs/hxzEyEGMbD8JyFYrF2BtP4lz6Y3sM24/Ax988MEHbz+Fyg5Tl9tvPwK70Fq2V3A/wBAaDKHBcD+AZmO9iytxP0C8rG52lXE//hH2H2H/cT++Zz/RS2lyP3y9iII203I/PhPSMyE9cz/6aBvlC6dzP7y+ZJb2EHQ/ehSuR+F6dD8=", - "dtype": "f8" - }, - "y": { - "bdata": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "dtype": "f8" - } - }, - { - "mode": "lines", - "name": "Emerging Market Debt Hard Currency", - "stackgroup": "one", - "type": "scatter", - "x": { - "bdata": "EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI7+AcFVSrHoKv0BvVVKsego/0BPAPQHcIz/oZXWzq4wwP8jBCshWKzc/0B2g3AHKPT/cvJp4VjRCP9Rq5QKsg0U/zBgwjQHTSD+8xnoXVyJMP8R0xaGscU8/YBEIFoFgUT9aaC3bKwhTP1q/UqDWr1Q/VhZ4ZYFXVj9SbZ0qLP9XP07Ewu/Wplk/ShvotIFOWz9Gcg16LPZcP0rJMj/XnV4/IRAsAsEiYD+ju75klvZgPyFnUcdrymE/nRLkKUGeYj8bvnaMFnJjP5lpCe/rRWQ/GRWcUcEZZT+XwC60lu1lPxVswRZswWY/lRdUeUGVZz8Rw+bbFmloP5FueT7sPGk/DxoMocEQaj+NxZ4Dl+RqPw1xMWZsuGs/hxzEyEGMbD8JyFYrF2BtP4lz6Y3sM24/Ax988MEHbz+Fyg5Tl9tvPwK70Fq2V3A/wBAaDKHBcD+AZmO9iytxP0C8rG52lXE//hH2H2H/cT++Zz/RS2lyP3y9iII203I/PhPSMyE9cz/6aBvlC6dzP7y+ZJb2EHQ/ehSuR+F6dD8=", - "dtype": "f8" - }, - "y": { - "bdata": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "dtype": "f8" - } - }, - { - "mode": "lines", - "name": "Equity", - "stackgroup": "one", - "type": "scatter", - "x": { - "bdata": "EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI7+AcFVSrHoKv0BvVVKsego/0BPAPQHcIz/oZXWzq4wwP8jBCshWKzc/0B2g3AHKPT/cvJp4VjRCP9Rq5QKsg0U/zBgwjQHTSD+8xnoXVyJMP8R0xaGscU8/YBEIFoFgUT9aaC3bKwhTP1q/UqDWr1Q/VhZ4ZYFXVj9SbZ0qLP9XP07Ewu/Wplk/ShvotIFOWz9Gcg16LPZcP0rJMj/XnV4/IRAsAsEiYD+ju75klvZgPyFnUcdrymE/nRLkKUGeYj8bvnaMFnJjP5lpCe/rRWQ/GRWcUcEZZT+XwC60lu1lPxVswRZswWY/lRdUeUGVZz8Rw+bbFmloP5FueT7sPGk/DxoMocEQaj+NxZ4Dl+RqPw1xMWZsuGs/hxzEyEGMbD8JyFYrF2BtP4lz6Y3sM24/Ax988MEHbz+Fyg5Tl9tvPwK70Fq2V3A/wBAaDKHBcD+AZmO9iytxP0C8rG52lXE//hH2H2H/cT++Zz/RS2lyP3y9iII203I/PhPSMyE9cz/6aBvlC6dzP7y+ZJb2EHQ/ehSuR+F6dD8=", - "dtype": "f8" - }, - "y": { - "bdata": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvzbwGMdqDP3v6F9tsGJo/S8domeAhpT9WkUXFijetP5wtkXiaprI/pJJ/jm+xtj+g922kRLy6P5tcXLoZx74/b/jDiPcxwT9rRFQ3zfrCPwlwco8D0sQ/Kl5yawOuxj9RTHJHA4rIP3k6ciMDZso/oChy/wJCzD/CFnLbAh7OP+0EcrcC+s8/iPm4SQHr0D+Z8Lg3AdnRP67nuCUBx9I/wN64EwG10z/X1bgBAaPUP+rMuO8AkdU//cO43QB/1j8Ou7jLAG3XPyCyuLkAW9g/OKm4pwBJ2T/jgL1IxxXaP0Uah7/Xtto/qLNQNuhX2z8JTRqt+PjbP2vm4yMJmtw/zn+tmhk73T8uGXcRKtzdP5KyQIg6fd4/8UsK/0oe3z/gU6GB18jfP4lBPzoPP+A/INmts7KZ4D+6cBwtVvTgP1MIi6b5TuE/7J/5H52p4T+EN2iZQATiPx7P1hLkXuI/tWZFjIe54j9P/rMFKxTjP+eVIn/ObuM/gi2R+HHJ4z8Zxf9xFSTkP7Ncbuu4fuQ/S/TcZFzZ5D8=", - "dtype": "f8" - } - }, - { - "mode": "lines", - "name": "Real Estate", - "stackgroup": "one", - "type": "scatter", - "x": { - "bdata": "EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI78QTfvwqcYjvxBN+/CpxiO/EE378KnGI7+AcFVSrHoKv0BvVVKsego/0BPAPQHcIz/oZXWzq4wwP8jBCshWKzc/0B2g3AHKPT/cvJp4VjRCP9Rq5QKsg0U/zBgwjQHTSD+8xnoXVyJMP8R0xaGscU8/YBEIFoFgUT9aaC3bKwhTP1q/UqDWr1Q/VhZ4ZYFXVj9SbZ0qLP9XP07Ewu/Wplk/ShvotIFOWz9Gcg16LPZcP0rJMj/XnV4/IRAsAsEiYD+ju75klvZgPyFnUcdrymE/nRLkKUGeYj8bvnaMFnJjP5lpCe/rRWQ/GRWcUcEZZT+XwC60lu1lPxVswRZswWY/lRdUeUGVZz8Rw+bbFmloP5FueT7sPGk/DxoMocEQaj+NxZ4Dl+RqPw1xMWZsuGs/hxzEyEGMbD8JyFYrF2BtP4lz6Y3sM24/Ax988MEHbz+Fyg5Tl9tvPwK70Fq2V3A/wBAaDKHBcD+AZmO9iytxP0C8rG52lXE//hH2H2H/cT++Zz/RS2lyP3y9iII203I/PhPSMyE9cz/6aBvlC6dzP7y+ZJb2EHQ/ehSuR+F6dD8=", - "dtype": "f8" - }, - "y": { - "bdata": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "dtype": "f8" - } - } - ], - "layout": { - "hovermode": "x unified", - "legend": { - "title": { - "text": "Asset Class" - } - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermap": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermap" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Asset Weights Along the Efficient Frontier)" - }, - "xaxis": { - "title": { - "text": "Surplus Return" - } - }, - "yaxis": { - "title": { - "text": "Asset Weight" - } - } - } - } - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = go.Figure()\n", - "for i, name in enumerate(portfolio.names[:-1]): # Exclude 'Liabilities'\n", - " fig.add_trace(go.Scatter(\n", - " x=ef_returns,\n", - " y=ef_weights[:, i],\n", - " mode=\"lines\",\n", - " name=name,\n", - " stackgroup=\"one\",\n", - " ))\n", - "fig.update_layout(\n", - " title=\"Asset Weights Along the Efficient Frontier)\",\n", - " xaxis_title=\"Surplus Return\",\n", - " yaxis_title=\"Asset Weight\",\n", - " legend_title=\"Asset Class\",\n", - " hovermode=\"x unified\",\n", - ")\n", - "fig.show()" - ] - }, - { - "cell_type": "markdown", - "id": "6964f563", - "metadata": {}, - "source": [ - "## Mean-Variance Portfolio with different risk aversions" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "0d74eec4", - "metadata": {}, - "outputs": [], - "source": [ - "risk_aversion_values = [0, 10, 20, 50, 100]\n", - "mv_weights, mv_srs, mv_svols = {}, {}, {}\n", - "\n", - "for risk_aversion in risk_aversion_values:\n", - " mv_weights[risk_aversion] = surplus_mean_variance_optimizer(\n", - " portfolio=portfolio,\n", - " risk_aversion=risk_aversion,\n", - " asset_constraints=constraints,\n", - " )\n", - " mv_srs[risk_aversion] = portfolio.surplus_return(weights=mv_weights[risk_aversion])\n", - " mv_svols[risk_aversion] = portfolio.surplus_variance(weights=mv_weights[risk_aversion])**.5" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "6b4d9597", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "marker": { - "color": "rgb(228,26,28)" - }, - "name": "Risk Aversion: 0", - "offset": 0, - "type": "bar", - "width": 0.2, - "x": { - "bdata": "mpmZmZmZyb+amZmZmZnpP83MzMzMzPw/ZmZmZmZmBkBmZmZmZmYOQDMzMzMzMxNAMzMzMzMzF0AzMzMzMzMbQA==", - "dtype": "f8" - }, - "y": { - "bdata": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzMzMz0z8AAAAAAAAAAAAAAAAAAAAAZmZmZmZm5j8AAAAAAAAAAA==", - "dtype": "f8" - } - }, - { - "marker": { - "color": "rgb(55,126,184)" - }, - "name": "Risk Aversion: 10", - "offset": 0, - "type": "bar", - "width": 0.2, - "x": { - "bdata": "AAAAAAAAAAAAAAAAAADwPwAAAAAAAABAAAAAAAAACEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAGEAAAAAAAAAcQA==", - "dtype": "f8" - }, - "y": { - "bdata": "sOU3AWkttD+PUuOSZ8K2PwAAAAAAAAAAMzMzMzMz0z8AAAAAAAAAAAAAAAAAAAAAX//iU2wI4T8AAAAAAAAAAA==", - "dtype": "f8" - } - }, - { - "marker": { - "color": "rgb(77,175,74)" - }, - "name": "Risk Aversion: 20", - "offset": 0, - "type": "bar", - "width": 0.2, - "x": { - "bdata": "mpmZmZmZyT8zMzMzMzPzP5qZmZmZmQFAmpmZmZmZCUDNzMzMzMwQQM3MzMzMzBRAzczMzMzMGEDNzMzMzMwcQA==", - "dtype": "f8" - }, - "y": { - "bdata": "mpmZmZmZuT9vAd7EqeDMP1dpRJmySrQ/NTMzMzMz0z8AAAAAAAAAAAAAAAAAAAAAV0um3WTj0j8AAAAAAAAAAA==", - "dtype": "f8" - } - }, - { - "marker": { - "color": "rgb(152,78,163)" - }, - "name": "Risk Aversion: 50", - "offset": 0, - "type": "bar", - "width": 0.2, - "x": { - "bdata": "mpmZmZmZ2T9mZmZmZmb2PzMzMzMzMwNAMzMzMzMzC0CamZmZmZkRQJqZmZmZmRVAmpmZmZmZGUCamZmZmZkdQA==", - "dtype": "f8" - }, - "y": { - "bdata": "mpmZmZmZuT+/ImI+K9PQP6oCOmT0v8o/q0MEKDuT1T8AAAAAAAAAAAAAAAAAAAAAb8dYBORMtz8AAAAAAAAAAA==", - "dtype": "f8" - } - }, - { - "marker": { - "color": "rgb(255,127,0)" - }, - "name": "Risk Aversion: 100", - "offset": 0, - "type": "bar", - "width": 0.2, - "x": { - "bdata": "NDMzMzMz4z+amZmZmZn5P83MzMzMzARAzczMzMzMDEBmZmZmZmYSQGZmZmZmZhZAZmZmZmZmGkBmZmZmZmYeQA==", - "dtype": "f8" - }, - "y": { - "bdata": "mpmZmZmZuT/kj1M7E+jRP27CqUpnu9E/hNYSK1N+1D8AAAAAAAAAAAAAAAAAAAAAMQyXiL58lz8AAAAAAAAAAA==", - "dtype": "f8" - } - } - ], - "layout": { - "barmode": "group", - "font": { - "size": 12 - }, - "height": 400, - "legend": { - "title": { - "text": "Risk aversion" - } - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermap": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermap" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Asset Class Weights by Risk Aversion" - }, - "xaxis": { - "tickmode": "array", - "ticktext": [ - "Cash", - "Government Bond", - "High Yield Corporate Bond", - "Investment Grade Corporate Bond", - "Emerging Market Debt Local Currency", - "Emerging Market Debt Hard Currency", - "Equity", - "Real Estate" - ], - "tickvals": { - "bdata": "AAECAwQFBgc=", - "dtype": "i1" - }, - "title": { - "text": "Asset Class" - } - }, - "yaxis": { - "title": { - "text": "Weight" - } - } - } - } + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pio.renderers.default = \"notebook_connected\"\n", + "fig = px.bar(\n", + " benchmark_returns.std().sort_values(ascending=False),\n", + " title=\"Expected Volatility by Asset Class\",\n", + " labels={\"value\": \"Expected Volatility\", \"index\": \"Asset Class\"},\n", + " text_auto=\".2%\",\n", + " color=names,\n", + " color_discrete_sequence=px.colors.qualitative.Set2\n", + ")\n", + "fig.update_layout(\n", + " showlegend=False,\n", + " title_x=0.5,\n", + " height=350,\n", + " margin=dict(l=30, r=30, t=50, b=30),\n", + " xaxis_tickangle=-30,\n", + " font=dict(size=12)\n", + ")\n", + "fig.update_traces(marker_line_width=1.5, marker_line_color=\"black\")\n", + "fig.show()" + ] + }, + { + "cell_type": "markdown", + "id": "0713eea7", + "metadata": {}, + "source": [ + "Now, we define our `portfolio` object" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "933e4d2d", + "metadata": {}, + "outputs": [], + "source": [ + "portfolio = Portfolio(\n", + " names=names,\n", + " expected_returns=expected_returns.values,\n", + " covariance_matrix=covariance_matrix.values,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "0d3a08d6", + "metadata": {}, + "source": [ + "We define the following constraints on our asset classes:\n", + "\n", + "- `Cash` weight must be below 0.1.\n", + "- The combined weight of `Emerging Market Debt Local Currency` and `Emerging Market Debt Hard Currency` must be less than that of `Equity`.\n", + "- The combined weights of the return seeking (`Emerging Market Debt Local Currency`, `Emerging Market Debt Hard Currency`, `Equity`, `High Yield Corporate Bond`) assets must be at least 0.3.\n", + "- The weight of `Real Estate` must be greater than 0.1.\n", + "- The weight of `Investment Grade Corporate Bond` must be at least 0.3.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "9c0f026b", + "metadata": {}, + "outputs": [], + "source": [ + "constraints = [\n", + " {\"left_indices\": [\"Cash\"],\n", + " \"operator\": \"<=\",\n", + " \"right_value\": 0.1},\n", + "\n", + " {\"left_indices\": [\"Emerging Market Debt Local Currency\", \"Emerging Market Debt Hard Currency\"],\n", + " \"operator\": \"<=\",\n", + " \"right_indices\": [\"Equity\"]},\n", + "\n", + " {\"left_indices\": [\"Emerging Market Debt Local Currency\", \"Emerging Market Debt Hard Currency\", \"Equity\", \"High Yield Corporate Bond\"],\n", + " \"operator\": \">=\",\n", + " \"right_value\": 0.3},\n", + "\n", + " {\"left_indices\": [\"Real Estate\"],\n", + " \"operator\": \"<=\",\n", + " \"right_value\": 0.1},\n", + "\n", + " {\"left_indices\": [\"Investment Grade Corporate Bond\"],\n", + " \"operator\": \">=\",\n", + " \"right_value\": 0.3},\n", + "]\n" + ] + }, + { + "cell_type": "markdown", + "id": "f9f8aed5", + "metadata": {}, + "source": [ + "Let's estimate the asset class weights using our defined constraints and the following optimizers:\n", + "\n", + "- `min_surplus_variance_optimizer`,\n", + "- `max_surplus_return_optimizer`,\n", + "- `max_surplus_sharp_ratio_optimizer`,\n", + "- `efficient_frontier`" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "5b2ddc16", + "metadata": {}, + "outputs": [], + "source": [ + "min_variance_weights = min_surplus_variance_optimizer(portfolio, asset_constraints=constraints)\n", + "min_variance_return = portfolio.surplus_return(min_variance_weights)\n", + "min_variance_vol = portfolio.surplus_variance(min_variance_weights)**.5\n", + "\n", + "\n", + "max_return_weights = max_surplus_return_optimizer(portfolio, asset_constraints=constraints)\n", + "max_return = portfolio.surplus_return(max_return_weights)\n", + "max_return_vol = portfolio.surplus_variance(max_return_weights)**.5\n", + "\n", + "max_sharpe_weights = max_surplus_sharp_ratio_optimizer(portfolio, asset_constraints=constraints)\n", + "max_sharpe_return = portfolio.surplus_return(max_sharpe_weights)\n", + "max_sharpe_vol = portfolio.surplus_variance(max_sharpe_weights)**.5\n", + "\n", + "\n", + "efficient_frontier_results = efficient_frontier(\n", + " portfolio=portfolio,\n", + " asset_constraints=constraints,\n", + " surplus_return_range=(-0.005, 0.005),\n", + ")\n", + "ef_weights = efficient_frontier_results[\"weights\"]\n", + "ef_returns = efficient_frontier_results[\"surplus_returns\"]\n", + "ef_vols = efficient_frontier_results[\"surplus_variances\"]**.5" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "25358f56", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "optimizers = [\"Min Surplus Variance Optimizer\", \"Max Surplus Return Optimizer\", \"Max Surplus Sharpe Ratio Optimizer\"]\n", + "weights = np.vstack([min_variance_weights[:-1], max_return_weights[:-1], max_sharpe_weights[:-1]])\n", + "\n", + "pio.renderers.default = \"notebook_connected\"\n", + "fig = go.Figure()\n", + "bar_width = 0.2\n", + "x = np.arange(len(names[:-1]))\n", + "\n", + "for idx, (optimizer, color) in enumerate(zip(optimizers, px.colors.qualitative.Set1)):\n", + " fig.add_trace(go.Bar(\n", + " x=x + (idx - 1) * bar_width,\n", + " y=weights[idx],\n", + " name=optimizer,\n", + " marker_color=color,\n", + " width=bar_width,\n", + " offset=0\n", + " ))\n", + "\n", + "fig.update_layout(\n", + " xaxis=dict(\n", + " tickmode='array',\n", + " tickvals=x,\n", + " ticktext=names[:-1]\n", + " ),\n", + " barmode='group',\n", + " title=\"Asset Class Weights by Optimizer\",\n", + " xaxis_title=\"Asset Class\",\n", + " yaxis_title=\"Weight\",\n", + " legend_title=\"Optimizer\",\n", + " font=dict(size=12),\n", + " height=400\n", + ")\n", + "fig.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "51f524e1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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4sz3Rwuezpw5IytWrMiWHcS+ly5dyrY/Tn+jswJ/f9z//tj7/cF7dPr06SI/HyJvxwCXHAZZhTZt2siqVass20wmk7reqVMnm/fBduv9Af/A29vfFjymv79/tuPg9PfZs2cLdRxv5673xxatlRgyueTc90cLno4dOyYrV65UdZw5j4EPh6gv1axevVo9tvZBhNz3/tj7/UH9b87SEiKy4u5ZbuR9bXQCAwPNX375pZqdPXr0aNVG5+LFi+r2Bx54wDxhwoRsbXT8/PzM77zzjup8MGXKlFxtqC5fvqxm5i9dulTNLsZj4Dpa5Vi3CatRo4Z59erVqk1Yp06d1IXc//4cP35ctTjC+4JOC7/88ou5du3a5q5du7rhFfCt9ycjI8N8++23m6tXr27evXt3tjZT6enp2dqEtWrVyrxlyxbzhg0bzPXq1WObMA95fzZt2qQ6KOD2EydOmL/99ltzxYoVzcOGDXPTq0BUMjDAJYf78MMPVbCJfpFoq4PemtbtooYPH55t/x9++MFcv359tX+TJk1UoGRt7ty5KnDKecEfC01qaqr5scceM5crV84cEhJiHjRoULYAmNz3/pw9e1YFs+XLl1fBAXqsPvvss+yD64L3R2vdZuuyZs2abB9SENCGhoaaw8LCzCNGjDBfu3bNRc+4ZHH1+7Njxw7VWqxMmTLmoKAgc6NGjcyvv/66OS0tzYXPmqjk0eF/1hldIiIiIqKSjDW4RERERORVGOASERERkVdhgEtEREREXoUBLhERERF5FQa4RERERORVGOASERERkVdhgEtEREREXoUBLhERERF5FQa4RF5szZo1cuedd0q1atUkICBAypUrJw0aNJC7775bZs6cKQkJCeKpunfvLjqdTk6fPu3WcZhMJomMjFRj+euvv/Ld/6233lL74nUviqioKHV/Z8PrisfB62xt7dq1avuDDz6YbfuXX36ptk+dOtXpYyMiKi4GuERe6uWXX5aePXvKokWLpEyZMnLrrbdKnz59JDg4WG174okn5NChQ+4epsfT6/Vy7733qu+//fbbfPfX9nnggQfEnVwVkCIQxuMgMCYi8hR+7h4AETnejh07VGDj7+8vP/zwgwwcODDb7RcvXlSBWNmyZd02xpIEwSoyswsXLpQPP/xQZcNt2bt3r+zbt0/Kly8vt9xyi3gyZPXxASckJKRA+w8a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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(8, 6))\n", + "sc = ax.scatter(ef_vols, ef_returns, c=ef_weights[:, 6], cmap=\"viridis\")\n", + "ax.scatter(min_variance_vol, min_variance_return, c='C0', s=200, edgecolors='black', marker='o', label='Min Surplus Variance')\n", + "ax.scatter(max_return_vol, max_return, c='C3', s=200, edgecolors='black', marker='s', label='Max Surplus Return')\n", + "ax.scatter(max_sharpe_vol, max_sharpe_return, c='C4', s=200, edgecolors='black', marker='^', label='Max Surplus Sharpe Ratio')\n", + "\n", + "ax.set_xlabel(\"Surplus Volatility\", fontsize=15)\n", + "ax.set_ylabel(\"Surplus Return\", fontsize=15)\n", + "fig.colorbar(sc, label=\"Equity Weight\")\n", + "ax.set_title(\"Efficient Frontier Portfolios\", fontsize=15)\n", + "ax.legend(frameon=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "5c653fe0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pio.renderers.default = \"notebook_connected\"\n", + "fig = go.Figure()\n", + "for i, name in enumerate(portfolio.names[:-1]): # Exclude 'Liabilities'\n", + " fig.add_trace(go.Scatter(\n", + " x=ef_returns,\n", + " y=ef_weights[:, i],\n", + " mode=\"lines\",\n", + " name=name,\n", + " stackgroup=\"one\",\n", + " ))\n", + "fig.update_layout(\n", + " title=\"Asset Weights Along the Efficient Frontier)\",\n", + " xaxis_title=\"Surplus Return\",\n", + " yaxis_title=\"Asset Weight\",\n", + " legend_title=\"Asset Class\",\n", + " hovermode=\"x unified\",\n", + ")\n", + "fig.show()" + ] + }, + { + "cell_type": "markdown", + "id": "6964f563", + "metadata": {}, + "source": [ + "## Mean-Variance Portfolio with different risk aversions" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "0d74eec4", + "metadata": {}, + "outputs": [], + "source": [ + "risk_aversion_values = [0, 10, 20, 50, 100]\n", + "mv_weights, mv_srs, mv_svols = {}, {}, {}\n", + "\n", + "for risk_aversion in risk_aversion_values:\n", + " mv_weights[risk_aversion] = surplus_mean_variance_optimizer(\n", + " portfolio=portfolio,\n", + " risk_aversion=risk_aversion,\n", + " asset_constraints=constraints,\n", + " )\n", + " mv_srs[risk_aversion] = portfolio.surplus_return(weights=mv_weights[risk_aversion])\n", + " mv_svols[risk_aversion] = portfolio.surplus_variance(weights=mv_weights[risk_aversion])**.5" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "6b4d9597", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ + "pio.renderers.default = \"notebook_connected\"\n", "fig = go.Figure()\n", "bar_width = 0.2\n", "x = np.arange(len(names[:-1]))\n", @@ -5387,7 +1772,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "id": "267ea9be", "metadata": {}, "outputs": [ diff --git a/docs/index.md b/docs/index.md index 53e7f3d..9cc7f32 100644 --- a/docs/index.md +++ b/docs/index.md @@ -25,4 +25,5 @@ $ uv pip install -e .[docs] Then ```bash $ uv run pdoc --html -c latex_math=True --output-dir docs --force penfolioop +$ uv run jupyter nbconvert --to html --execute --allow-errors docs/*.ipynb ``` \ No newline at end of file