{
“cells”: [
{

“cell_type”: “markdown”, “id”: “y4ofn86ksre”, “metadata”: {}, “source”: [

“# Mean-Variance Efficient Frontiern”, “n”, “This notebook builds a mean-variance efficient frontier from historical ETFn”, “prices. We use James-Stein shrinkage for expected returns and then”, “Oracle Approximating Shrinkage (OAS) estimator for the covariance matrix,n”, “then extract the tangency and minimum-risk portfolios.”

]

}, {

“cell_type”: “code”, “execution_count”: 1, “id”: “b4hu24g5uc”, “metadata”: {

“execution”: {

“iopub.execute_input”: “2026-03-30T19:38:36.927722Z”, “iopub.status.busy”: “2026-03-30T19:38:36.927400Z”, “iopub.status.idle”: “2026-03-30T19:38:37.574882Z”, “shell.execute_reply”: “2026-03-30T19:38:37.574623Z”

}

}, “outputs”: [], “source”: [

“import numpy as npn”, “import pandas as pdn”, “import matplotlib.pyplot as pltn”, “from pyvallocation import (n”, “ PortfolioWrapper,n”, “ estimate_moments,n”, “)”

]

}, {

“cell_type”: “markdown”, “id”: “18s6iikq281”, “metadata”: {}, “source”: [

“## Load ETF price datan”, “n”, “The bundled CSV contains daily prices for DBC, GLD, SPY, and TLT.”

]

}, {

“cell_type”: “code”, “execution_count”: 2, “id”: “mgklispye8d”, “metadata”: {

“execution”: {

“iopub.execute_input”: “2026-03-30T19:38:37.576312Z”, “iopub.status.busy”: “2026-03-30T19:38:37.576211Z”, “iopub.status.idle”: “2026-03-30T19:38:37.587274Z”, “shell.execute_reply”: “2026-03-30T19:38:37.587061Z”

}

}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“Assets : [‘DBC’, ‘GLD’, ‘SPY’, ‘TLT’]n”, “Periods: 4855n”

]

}, {

“data”: {
“text/html”: [

“<div>n”, “<style scoped>n”, “ .dataframe tbody tr th:only-of-type {n”, “ vertical-align: middle;n”, “ }n”, “n”, “ .dataframe tbody tr th {n”, “ vertical-align: top;n”, “ }n”, “n”, “ .dataframe thead th {n”, “ text-align: right;n”, “ }n”, “</style>n”, “<table border="1" class="dataframe">n”, “ <thead>n”, “ <tr style="text-align: right;">n”, “ <th></th>n”, “ <th>DBC</th>n”, “ <th>GLD</th>n”, “ <th>SPY</th>n”, “ <th>TLT</th>n”, “ </tr>n”, “ <tr>n”, “ <th>Date</th>n”, “ <th></th>n”, “ <th></th>n”, “ <th></th>n”, “ <th></th>n”, “ </tr>n”, “ </thead>n”, “ <tbody>n”, “ <tr>n”, “ <th>2025-05-19</th>n”, “ <td>-0.001416</td>n”, “ <td>0.012881</td>n”, “ <td>0.001094</td>n”, “ <td>-0.002897</td>n”, “ </tr>n”, “ <tr>n”, “ <th>2025-05-20</th>n”, “ <td>0.012760</td>n”, “ <td>0.018622</td>n”, “ <td>-0.003362</td>n”, “ <td>-0.007205</td>n”, “ </tr>n”, “ <tr>n”, “ <th>2025-05-21</th>n”, “ <td>-0.001400</td>n”, “ <td>0.007379</td>n”, “ <td>-0.016851</td>n”, “ <td>-0.017090</td>n”, “ </tr>n”, “ <tr>n”, “ <th>2025-05-22</th>n”, “ <td>-0.005140</td>n”, “ <td>-0.008861</td>n”, “ <td>0.000395</td>n”, “ <td>0.005240</td>n”, “ </tr>n”, “ <tr>n”, “ <th>2025-05-23</th>n”, “ <td>0.005636</td>n”, “ <td>0.021906</td>n”, “ <td>-0.006826</td>n”, “ <td>0.001659</td>n”, “ </tr>n”, “ </tbody>n”, “</table>n”, “</div>”

], “text/plain”: [

“ DBC GLD SPY TLTn”, “Date n”, “2025-05-19 -0.001416 0.012881 0.001094 -0.002897n”, “2025-05-20 0.012760 0.018622 -0.003362 -0.007205n”, “2025-05-21 -0.001400 0.007379 -0.016851 -0.017090n”, “2025-05-22 -0.005140 -0.008861 0.000395 0.005240n”, “2025-05-23 0.005636 0.021906 -0.006826 0.001659”

]

}, “execution_count”: 2, “metadata”: {}, “output_type”: “execute_result”

}

], “source”: [

“from pathlib import Pathn”, “n”, “_candidates = [n”, “ Path("examples/ETF_prices.csv"),n”, “ Path("../examples/ETF_prices.csv"),n”, “ Path("../../examples/ETF_prices.csv"),n”, “ Path("../../../examples/ETF_prices.csv"),n”, “]n”, “_csv = next((p for p in _candidates if p.exists()), None)n”, “if _csv is None:n”, “ raise FileNotFoundError("ETF_prices.csv not found")n”, “prices = pd.read_csv(_csv, index_col="Date", parse_dates=True)n”, “prices = prices.dropna(how="all").ffill()n”, “returns = prices.pct_change().dropna(how="any")n”, “n”, “print(f"Assets : {list(returns.columns)}")n”, “print(f"Periods: {len(returns)}")n”, “returns.tail()”

]

}, {

“cell_type”: “markdown”, “id”: “7vnqp7n3wya”, “metadata”: {}, “source”: [

“## Estimate moments with shrinkage estimatorsn”, “n”, “- James-Stein shrinks the sample mean toward a common grand mean.n”, “- OAS (Oracle Approximating Shrinkage) regularises the covariance.”

]

}, {

“cell_type”: “code”, “execution_count”: 3, “id”: “5tybnrc7z3i”, “metadata”: {

“execution”: {

“iopub.execute_input”: “2026-03-30T19:38:37.588310Z”, “iopub.status.busy”: “2026-03-30T19:38:37.588230Z”, “iopub.status.idle”: “2026-03-30T19:38:37.590987Z”, “shell.execute_reply”: “2026-03-30T19:38:37.590807Z”

}

}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“Shrunk expected returns:n”, “DBC 0.000139n”, “GLD 0.000378n”, “SPY 0.000417n”, “TLT 0.000186n”, “Name: mu, dtype: float64n”, “n”, “Shrunk covariance (diagonal):n”, “[1.48e-04 1.26e-04 1.53e-04 9.00e-05]n”

]

}

], “source”: [

“mu, cov = estimate_moments(n”, “ returns,n”, “ mean_estimator="james_stein",n”, “ cov_estimator="oas",n”, “)n”, “n”, “print("Shrunk expected returns:")n”, “print(mu.round(6))n”, “print("\nShrunk covariance (diagonal):")n”, “print(np.diag(cov).round(6))”

]

}, {

“cell_type”: “markdown”, “id”: “mg9wj028wzs”, “metadata”: {}, “source”: [

“## Build the efficient frontier”

]

}, {

“cell_type”: “code”, “execution_count”: 4, “id”: “9suogcftc7b”, “metadata”: {

“execution”: {

“iopub.execute_input”: “2026-03-30T19:38:37.592008Z”, “iopub.status.busy”: “2026-03-30T19:38:37.591851Z”, “iopub.status.idle”: “2026-03-30T19:38:37.741132Z”, “shell.execute_reply”: “2026-03-30T19:38:37.740802Z”

}

}, “outputs”: [], “source”: [

“wrapper = PortfolioWrapper.from_moments(mu, cov)n”, “frontier = wrapper.variance_frontier(num_portfolios=20)”

]

}, {

“cell_type”: “markdown”, “id”: “y07l9u27tg”, “metadata”: {}, “source”: [

“## Extract key portfoliosn”, “n”, “- Minimum-risk: lowest volatility on the frontier.n”, “- Tangency: highest Sharpe ratio (assuming 1% risk-free rate).”

]

}, {

“cell_type”: “code”, “execution_count”: 5, “id”: “2uw0d9yafwi”, “metadata”: {

“execution”: {

“iopub.execute_input”: “2026-03-30T19:38:37.742363Z”, “iopub.status.busy”: “2026-03-30T19:38:37.742297Z”, “iopub.status.idle”: “2026-03-30T19:38:37.744922Z”, “shell.execute_reply”: “2026-03-30T19:38:37.744725Z”

}

}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“=== Minimum-Risk Portfolio ===n”, “DBC 0.1543n”, “GLD 0.1086n”, “SPY 0.2562n”, “TLT 0.4810n”, “Name: Min Risk Portfolio, dtype: float64n”, “Return: 0.0259% | Volatility: 0.5643%n”, “n”, “=== Tangency Portfolio (rf=0.01%) ===n”, “DBC 0.0001n”, “GLD 0.3203n”, “SPY 0.4085n”, “TLT 0.2711n”, “Name: Tangency Portfolio (rf=0.01%), dtype: float64n”, “Return: 0.0342% | Volatility: 0.6484%n”

]

}

], “source”: [

“min_w, min_ret, min_vol = frontier.min_risk()n”, “tan_w, tan_ret, tan_vol = frontier.tangency(risk_free_rate=0.0001)n”, “n”, “print("=== Minimum-Risk Portfolio ===")n”, “print(min_w.round(4))n”, “print(f"Return: {min_ret:.4%} | Volatility: {min_vol:.4%}\n")n”, “n”, “print("=== Tangency Portfolio (rf=0.01%) ===")n”, “print(tan_w.round(4))n”, “print(f"Return: {tan_ret:.4%} | Volatility: {tan_vol:.4%}")”

]

}, {

“cell_type”: “markdown”, “id”: “ynqeqvmd998”, “metadata”: {}, “source”: [

“## Plot the efficient frontiern”, “n”, “The frontier curve is annotated with the minimum-risk and tangency portfolios.”

]

}, {

“cell_type”: “code”, “execution_count”: 6, “id”: “0ij5f70ya9fe”, “metadata”: {

“execution”: {

“iopub.execute_input”: “2026-03-30T19:38:37.746010Z”, “iopub.status.busy”: “2026-03-30T19:38:37.745949Z”, “iopub.status.idle”: “2026-03-30T19:38:37.804124Z”, “shell.execute_reply”: “2026-03-30T19:38:37.803919Z”

}

}, “outputs”: [

{
“data”: {

“image/png”: “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pOGEHtd2AAAAgCKwQDLnrkZlajsAAAB4PgILJFMqMCBT2wEAAMDzEVggmaaVi0lIUIDkS+G47tfj2g4AAABQBBZIxtsrn4ztGurymBVs6HFtBwAAACgCC7ik61S83b1Osv3BQQHy0WMNWccCAAAATlggDykq5O9rnisUKyBD7qlucip0+hMjFQAAAEiKwAIp2nw8sZxs2xol5f76Zd3dHQAAAORgTIVCiqx1KpqQpA0AAICbILCASxFRsbLvTIT5uWklAgsAAACkjsACLm3947LYbCIVixeQUoVZrwIAAACpI7CAS5utaVCMVgAAACANCCyQauI206AAAACQFgQWSCYqNl5+PxlufiZxGwAAAGlBYIFkdp4Kl5j4BClRyF8qFS/g7u4AAAAgF2AdC9jFJ9hMidm5G/8w200qFZF8+VgMDwAAADdHYAFj2e4wef2HvRIWHmXft+7wRbO/U+0Qt/YNAAAAOR9ToWCCh4FztjkFFSoiKs7s1+MAAABAaggs8jid/qQjFbZU2uhxbQcAAACkhMAij9OciqQjFY40nNDj2g4AAABICYFFHnfualSmtgMAAEDeRGCRx5UKDMjUdgAAAMibCCzyuKaVi0lIUICkVFRW9+txbQcAAACkhMAij/P2yidju4a6PGYFG3pc2wEAAAA5NrCYNm2aVKpUSQICAqRZs2ayadOmVNsvXLhQatasadrXqVNHli5d6nTcZrPJmDFjJCQkRPLnzy/t27eXQ4cOObW5dOmS9OrVSwoXLixFihSRfv36SWRkpP34mjVr5P777zfnKFiwoNSvX1/mzp2brC+TJ0+WGjVqmPcpX768vPTSSxIVlftyEXSdio8eayhFCvg67Q8OCjD7WccCAAAAOTqwWLBggbz88ssyduxY2bZtm9SrV086duwo586dc9l+/fr10rNnTxMIbN++Xbp162Yeu3fvtreZOHGiTJkyRaZPny4bN240gYGe0/GGX4OKPXv2yIoVK2Tx4sXyyy+/yIABA5zep27duvLNN9/Izp07pW/fvtK7d2/T1jJv3jwZPny46fu+ffvks88+M59n5MiRkhtp8PBY84rm5+aVi8mX/ZvLr6/cTVABAACANMln06/43URHKJo0aSJTp0412wkJCeab/0GDBpmb9qQeeeQRuXbtmtMNfvPmzc2IggYS+lHKlCkjQ4YMkaFDh5rj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HfXfiR07diQ7R1RUlDz33HOmTaFChaR79+5y9uxZySvccc1nzJghd911l/k3RdtcuXJF8orsvt6XLl2SQYMGSY0aNcy/ORUqVJAXXnhBwsPDJU/Q5G0gvebPn2/z8/OzzZw507Znzx5b//79bUWKFLGdPXvWZft169bZvL29bRMnTrTt3bvXNmrUKJuvr69t165d9jZvv/22LSgoyLZo0SLb77//bvvHP/5hq1y5su3GjRv2Nl9//bWtaNGito8++sh24MAB894LFiyw5QXuuObR0dG2sLAwp8dTTz1l2iQkJNg8mbv+xqtVq2br3LmzOX7w4EHbs88+aytQoIC59p7OHdf89OnT5t+UZ555xrZ//37bpk2bbC1btrR1797d5umy4np/8cUXttdff932ySefaGEY2/bt25OdR691+fLlbStXrrRt2bLF1rx5c3PN8wJ3XfP333/f9tZbb5mHtrl8+bItL3DH9d61a5ftwQcftH3//fe2w4cPm79z/Xc9L/yboggscEuaNm1qe+655+zb8fHxtjJlyph/tFx5+OGHbV26dHHa16xZM9vTTz9tftab1ODgYNs777xjP37lyhWbv7+/7csvvzTbsbGxtrJly9o+/fRTW17kjmueVExMjK1kyZK2cePG2TydO673+fPnzf9R/fLLL/Y2ERERZt+KFStsns4d1/zjjz+2lSpVyryXZefOneaaHzp0yObJMvt6Ozp27JjLmy69/nqjtnDhQvu+ffv2mbYbNmyweTp3XHNHq1evzlOBhbuvt+Wrr74yAY7ex3g6pkIh3WJiYmTr1q1mSoHFy8vLbG/YsMHla3S/Y3vVsWNHe/tjx47JmTNnnNro8vE6bGm10ekKp0+fNu/VoEEDM7Xh3nvvld27d4unc9c1T+r777+XixcvSt++fcWTuet669C6Dp9/8cUXcu3aNYmLi5OPP/5YSpUqJY0aNRJP5q5rHh0dLX5+fua9LDp9Qf3666/iqbLieqeFvmdsbKzTeXTaiU4XSc95ciN3XfO8Kidd7/DwcDMNzcfHRzwdgQXS7cKFCxIfHy+lS5d22q/b+n/iruj+1Npbz6m1OXr0qHl+7bXXZNSoUbJ48WKTY6HzRnVOoydz1zVP6rPPPjP/yJYrV048mbuut87X/emnn2T79u0SGBho5vi+9957smzZMvO37sncdc3vvvtu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”, “text/plain”: [

“<Figure size 800x500 with 1 Axes>”

]

}, “metadata”: {}, “output_type”: “display_data”

}

], “source”: [

“fig, ax = plt.subplots(figsize=(8, 5))n”, “ax.plot(frontier.risks, frontier.returns, "o-", label="Frontier")n”, “ax.scatter(min_vol, min_ret, s=120, marker="s",n”, “ color="green", zorder=5, label="Min-risk")n”, “ax.scatter(tan_vol, tan_ret, s=120, marker="*",n”, “ color="red", zorder=5, label="Tangency")n”, “ax.set_xlabel("Volatility")n”, “ax.set_ylabel("Expected Return")n”, “ax.set_title("Mean-Variance Efficient Frontier")n”, “ax.legend()n”, “fig.tight_layout()n”, “plt.show()”

]

}, {

“cell_type”: “markdown”, “id”: “z66406m9ucp”, “metadata”: {}, “source”: [

“## Portfolio weights comparison”

]

}, {

“cell_type”: “code”, “execution_count”: 7, “id”: “nsy819rrhgi”, “metadata”: {

“execution”: {

“iopub.execute_input”: “2026-03-30T19:38:37.805135Z”, “iopub.status.busy”: “2026-03-30T19:38:37.805075Z”, “iopub.status.idle”: “2026-03-30T19:38:37.807244Z”, “shell.execute_reply”: “2026-03-30T19:38:37.807062Z”

}

}, “outputs”: [

{

“name”: “stdout”, “output_type”: “stream”, “text”: [

“ Min-Risk Tangencyn”, “DBC 0.1543 0.0001n”, “GLD 0.1086 0.3203n”, “SPY 0.2562 0.4085n”, “TLT 0.4810 0.2711n”

]

}

], “source”: [

“comparison = pd.DataFrame({n”, “ "Min-Risk": min_w,n”, “ "Tangency": tan_w,n”, “})n”, “print(comparison.round(4))”

]

}

], “metadata”: {

“kernelspec”: {

“display_name”: “Python 3”, “language”: “python”, “name”: “python3”

}, “language_info”: {

“codemirror_mode”: {

“name”: “ipython”, “version”: 3

}, “file_extension”: “.py”, “mimetype”: “text/x-python”, “name”: “python”, “nbconvert_exporter”: “python”, “pygments_lexer”: “ipython3”, “version”: “3.12.9”

}

}, “nbformat”: 4, “nbformat_minor”: 5

}