Files
Factor-Risk-Decomposition/notebooks/06_synthetic_market_generation.ipynb
T
2026-07-31 08:33:52 -04:00

822 lines
160 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"id": "c0965427",
"metadata": {},
"source": [
"# Synthetic Market Generation and Stress Testing\n",
"\n",
"## Purpose\n",
"\n",
"Notebook 04 found a Fama-French alpha of about 6% per year for the full momentum pipeline. Notebook 05 described the covariance structure of the stock universe. This notebook asks a different question:\n",
"\n",
"> If the same factor structure had appeared in a different order, would the strategy still look good?\n",
"\n",
"We model centered returns with a truncated PCA/SVD factor model:\n",
"\n",
"$$R \\approx FB^\\top+E.$$\n",
"\n",
"Here:\n",
"\n",
"- $R$ is the return panel.\n",
"- $B$ contains the top-$k$ PCA loading vectors.\n",
"- $F=R_cB$ contains the factor scores through time.\n",
"- $E=R_c-FB^\\top$ contains the residual stock-level shocks.\n",
"\n",
"Then we generate many alternate return panels, rerun a compact version of the momentum backtest on each one, and compare the generated alphas to the real-panel alpha.\n",
"\n",
"We use two generators:\n",
"1. **Block bootstrap:** resample time blocks from the observed factor/residual rows. This is the result we trust most.\n",
"2. **Conditional VAE:** a small neural generator for factor scores. This is included as a cautionary example because it can create artificial momentum if factor scores and residuals are stitched together poorly.\n",
"\n",
"### Terms used in this notebook\n",
"\n",
"| Term | Meaning |\n",
"|------|---------|\n",
"| **Truncated factor model** | $R\\approx FB^\\top+E$, a low-rank approximation plus residuals |\n",
"| **Loadings** $B$ | Stock exposures to the retained PCA directions |\n",
"| **Factor scores** $F$ | Time series of factor realizations, one row per month |\n",
"| **Residuals** $E$ | Return components not captured by the retained PCA factors |\n",
"| **Block bootstrap** | Resample neighboring time blocks rather than individual months |\n",
"| **Tail share** | Fraction of synthetic alphas greater than or equal to the real alpha |\n",
"| **Path dependence** | Dependence on the specific order of historical months |\n",
"\n",
"## Outputs\n",
"\n",
"- `synthetic_backtest_results.csv`\n",
"- Bootstrap and VAE alpha distribution plots\n",
"\n",
"## Notebook Structure\n",
"1. [Setup and Factor Model](#setup-and-factor-model)\n",
"2. [Backtest Baseline](#backtest-baseline)\n",
"3. [Block-Bootstrap Generator](#block-bootstrap-generator)\n",
"4. [Conditional VAE Generator](#conditional-vae-generator)\n",
"5. [Results and Interpretation](#results-and-interpretation)\n",
"6. [Conclusion](#conclusion)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "bd2a00cd",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-31T11:11:27.660596Z",
"iopub.status.busy": "2026-07-31T11:11:27.659904Z",
"iopub.status.idle": "2026-07-31T11:11:28.975793Z",
"shell.execute_reply": "2026-07-31T11:11:28.975192Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Returns: (251, 501) | FF: (257, 5)\n"
]
}
],
"source": [
"\"\"\"\n",
"==================================\n",
"Setup and imports\n",
"==================================\n",
"\"\"\"\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import os\n",
"from sklearn.decomposition import PCA\n",
"import statsmodels.api as sm\n",
"\n",
"RANDOM_STATE = 3\n",
"np.random.seed(RANDOM_STATE)\n",
"\n",
"os.makedirs('../images/06_synthetic_markets', exist_ok=True)\n",
"os.makedirs('../data/processed', exist_ok=True)\n",
"\n",
"df_returns = pd.read_csv('../data/processed/returns_monthly.csv', index_col=0, parse_dates=True)\n",
"df_ff = pd.read_csv('../data/raw/ff_factors.csv', index_col=0, parse_dates=True)\n",
"\n",
"print(f\"Returns: {df_returns.shape} | FF: {df_ff.shape}\")"
]
},
{
"cell_type": "markdown",
"id": "262a6ed0",
"metadata": {},
"source": [
"## Setup and Factor Model\n",
"\n",
"We rebuild the notebook 05 factor model on a balanced panel. The steps are:\n",
"\n",
"1. Choose stocks with enough history and drop remaining missing rows.\n",
"2. Center each stock's return series by subtracting its time-series mean.\n",
"3. Estimate $k$ with the Marchenko-Pastur cutoff.\n",
"4. Keep the top-$k$ PCA loading vectors in $B$.\n",
"5. Compute factor scores $F=X_cB$.\n",
"6. Compute residuals $E=X_c-FB^\\top$.\n",
"7. Align the Fama-French factors to the same months.\n",
"\n",
"The centered panel is what gets decomposed. The mean vector is added back when we reconstruct synthetic returns."
]
},
{
"cell_type": "markdown",
"id": "b7ee87ef",
"metadata": {},
"source": [
"### Small Example: What Are $R$, $F$, $B$, and $E$?\n",
"\n",
"Suppose we only had $T=3$ months, $N=4$ stocks, and kept $k=2$ PCA factors.\n",
"\n",
"A return matrix might look like this:\n",
"\n",
"$$\n",
"R=\\begin{bmatrix}\n",
"0.042 & 0.009 & 0.031 & 0.038\\\\\n",
"-0.010 & -0.018 & -0.001 & 0.009\\\\\n",
"-0.006 & 0.025 & 0.047 & -0.006\n",
"\\end{bmatrix}.\n",
"$$\n",
"\n",
"Rows are months; columns are stocks. First subtract the column mean vector $\\bar r$ to get $X_c=R-\\mathbf{1}\\bar r^\\top$.\n",
"\n",
"Now imagine PCA gives two loading vectors. Put them into\n",
"\n",
"$$\n",
"B=\\begin{bmatrix}\n",
"0.5 & 0.5\\\\\n",
"0.5 & -0.5\\\\\n",
"0.5 & -0.5\\\\\n",
"0.5 & 0.5\n",
"\\end{bmatrix}.\n",
"$$\n",
"\n",
"The first column is a market-like direction: all four stocks move together. The second column is a spread direction: stocks 1 and 4 move opposite stocks 2 and 3.\n",
"\n",
"For three months of factor realizations, suppose\n",
"\n",
"$$\n",
"F=\\begin{bmatrix}\n",
"0.04 & 0.02\\\\\n",
"-0.03 & 0.01\\\\\n",
"0.01 & -0.04\n",
"\\end{bmatrix}.\n",
"$$\n",
"\n",
"The first month has a positive market shock and a positive spread shock. Multiplying $F$ by $B^\\top$ maps those factor shocks back into stock returns:\n",
"\n",
"$$\n",
"FB^\\top=\\begin{bmatrix}\n",
"0.03 & 0.01 & 0.01 & 0.03\\\\\n",
"-0.01 & -0.02 & -0.02 & -0.01\\\\\n",
"-0.015 & 0.025 & 0.025 & -0.015\n",
"\\end{bmatrix}.\n",
"$$\n",
"\n",
"That low-rank matrix will not match every stock return exactly, so the residual matrix stores the leftover stock-specific pieces:\n",
"\n",
"$$\n",
"E=X_c-FB^\\top.\n",
"$$\n",
"\n",
"The bootstrap generator resamples matching rows of $F$ and $E$. If it draws month indices $[3,1,2]$, the synthetic centered panel is\n",
"\n",
"$$\n",
"X_{\\text{synth}}=\n",
"\\begin{bmatrix}\n",
"F_3B^\\top+E_3\\\\\n",
"F_1B^\\top+E_1\\\\\n",
"F_2B^\\top+E_2\n",
"\\end{bmatrix},\n",
"$$\n",
"\n",
"and the final synthetic return panel is\n",
"\n",
"$$R_{\\text{synth}}=X_{\\text{synth}}+\\mathbf{1}\\bar r^\\top.$$\n",
"\n",
"The key rule is that the same time index is used for $F$, $E$, and the benchmark factors. That keeps each synthetic month internally consistent."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "d334f4f7",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-31T11:11:28.977654Z",
"iopub.status.busy": "2026-07-31T11:11:28.977462Z",
"iopub.status.idle": "2026-07-31T11:11:29.009004Z",
"shell.execute_reply": "2026-07-31T11:11:29.008602Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Panel (240, 394) | k=9 | F (240, 9) | E (240, 394) | FF (240, 5)\n",
"Top-9 PCs explain 53.0% of variance\n"
]
}
],
"source": [
"\"\"\"\n",
"==================================\n",
"Truncated-SVD factor model: R ≈ F Bᵀ + E (mirrors NB05)\n",
"==================================\n",
"\"\"\"\n",
"panel = df_returns.dropna(thresh=240, axis=1).dropna() # balanced panel -> maximize T\n",
"tickers = panel.columns.tolist()\n",
"X = panel.values\n",
"T, N = X.shape\n",
"mean_r = X.mean(axis=0)\n",
"Xc = X - mean_r\n",
"\n",
"pca_full = PCA(n_components=min(T, N)).fit(Xc)\n",
"eigvals = pca_full.explained_variance_\n",
"q = T / N\n",
"sigma_sq = eigvals.sum() / N\n",
"lam_plus = sigma_sq * (1 + 1 / q + 2 * np.sqrt(1 / q))\n",
"k = max(int((eigvals > lam_plus).sum()), 1) # MarchenkoPastur signal count\n",
"B = pca_full.components_[:k].T # (N, k) loadings\n",
"F = Xc @ B # (T, k) factor scores\n",
"E = Xc - F @ B.T # (T, N) residuals\n",
"\n",
"# FamaFrench factors aligned to these T months (RangeIndex for positional work below)\n",
"ff = df_ff[['Mkt-RF', 'SMB', 'HML', 'Mom', 'RF']].copy()\n",
"ff.index = ff.index.to_period('M')\n",
"panel_pm = panel.copy(); panel_pm.index = panel_pm.index.to_period('M')\n",
"ff = ff.reindex(panel_pm.index).dropna().reset_index(drop=True)\n",
"\n",
"print(f\"Panel {X.shape} | k={k} | F {F.shape} | E {E.shape} | FF {ff.shape}\")\n",
"print(f\"Top-{k} PCs explain {pca_full.explained_variance_ratio_[:k].sum()*100:.1f}% of variance\")"
]
},
{
"cell_type": "markdown",
"id": "e2139982",
"metadata": {},
"source": [
"## Backtest Baseline\n",
"\n",
"For an apples-to-apples comparison we run a **compact version of the notebook 04 pipeline** on the *real* panel: re-derive the raw 12-1 momentum signal (rolling 11-month sum, shifted), form the top-decile equal-weight long-only book, and regress its excess returns on the FamaFrench factors. (This simplified path — no winsorize/neutralize — is what we re-run inside every synthetic market, so real and synthetic share the exact same pipeline. Notebook 04's headline 5.97% used the full pipeline.)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "6a3dd658",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-31T11:11:29.011598Z",
"iopub.status.busy": "2026-07-31T11:11:29.011414Z",
"iopub.status.idle": "2026-07-31T11:11:29.136737Z",
"shell.execute_reply": "2026-07-31T11:11:29.136054Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Real-panel raw-momentum alpha: 4.49%/yr (t = 2.59)\n",
"(Notebook 04 full-pipeline headline: 5.97%/yr, t = 3.98)\n"
]
}
],
"source": [
"\"\"\"\n",
"==================================\n",
"Backtest primitives + real-panel baseline alpha\n",
"==================================\n",
"\"\"\"\n",
"def block_indices(T, L=15, rng=np.random):\n",
" \"\"\"Stationary block bootstrap: T time indices resampled in variable-length blocks.\"\"\"\n",
" idx = []\n",
" while len(idx) < T:\n",
" start = rng.randint(T)\n",
" blen = rng.geometric(1.0 / L)\n",
" idx.extend((start + np.arange(blen)) % T)\n",
" return np.array(idx[:T])\n",
"\n",
"def momentum_signal(ret_df):\n",
" \"\"\"12-1 momentum: rolling 11-month sum, shifted to avoid look-ahead.\"\"\"\n",
" return ret_df.rolling(11).sum().shift(1)\n",
"\n",
"def decile_long_returns(signal_df, ret_df, decile=0.1):\n",
" \"\"\"Top-decile equal-weight long-only monthly returns (signal at t, return at t+1).\"\"\"\n",
" out, ix = [], []\n",
" for i in range(len(signal_df) - 1):\n",
" s = signal_df.iloc[i].dropna()\n",
" if len(s) < 50:\n",
" continue\n",
" n = max(int(len(s) * decile), 1)\n",
" long = s.sort_values(ascending=False).head(n).index\n",
" out.append(ret_df.iloc[i + 1][long].mean())\n",
" ix.append(i + 1)\n",
" return pd.Series(out, index=ix, dtype=float)\n",
"\n",
"def ff_alpha(long_ret, ff_df):\n",
" \"\"\"Annualized FF 4-factor alpha (and t-stat) for a long-only return series.\"\"\"\n",
" a = pd.concat([long_ret.rename('r'), ff_df[['Mkt-RF', 'SMB', 'HML', 'Mom', 'RF']]], axis=1).dropna()\n",
" y = a['r'] - a['RF']\n",
" Xf = sm.add_constant(a[['Mkt-RF', 'SMB', 'HML', 'Mom']])\n",
" m = sm.OLS(y.values, Xf.values).fit()\n",
" return m.params[0] * 12.0, m.tvalues[0]\n",
"\n",
"# Real-panel baseline (apples-to-apples with the synthetic loop below)\n",
"ret_real = pd.DataFrame(X, columns=tickers)\n",
"real_alpha, real_t = ff_alpha(decile_long_returns(momentum_signal(ret_real), ret_real), ff)\n",
"print(f\"Real-panel raw-momentum alpha: {real_alpha*100:.2f}%/yr (t = {real_t:.2f})\")\n",
"print(f\"(Notebook 04 full-pipeline headline: 5.97%/yr, t = 3.98)\")"
]
},
{
"cell_type": "markdown",
"id": "cbdb1675",
"metadata": {},
"source": [
"## Block-Bootstrap Generator\n",
"\n",
"The block bootstrap resamples time indices in short runs rather than one month at a time. With $T\\approx240$, the average block length is about $\\sqrt{T}\\approx15$ months.\n",
"\n",
"For a generated index sequence `idx`, we reconstruct synthetic returns as\n",
"\n",
"$$R_{\\text{synth},t}=F_{\\mathrm{idx}_t}B^\\top+E_{\\mathrm{idx}_t}+\\bar r.$$\n",
"\n",
"We use the same `idx` for the Fama-French factor rows. This matters: if the stock return panel is pretending that month 37 came next, the benchmark factor panel should also use month 37.\n",
"\n",
"This generator tests **path dependence**. It asks whether the strategy needed the exact historical order of regimes, crashes, rebounds, and quiet periods."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "2aa45300",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-31T11:11:29.138516Z",
"iopub.status.busy": "2026-07-31T11:11:29.138286Z",
"iopub.status.idle": "2026-07-31T11:12:06.129556Z",
"shell.execute_reply": "2026-07-31T11:12:06.128901Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 50/300 paths done\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 100/300 paths done\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 150/300 paths done\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 200/300 paths done\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 250/300 paths done\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 300/300 paths done\n",
"\n",
"Bootstrap: mean synth alpha 4.85%/yr | P(>= real 4.49%) = 56.3%\n"
]
}
],
"source": [
"\"\"\"\n",
"==================================\n",
"Block bootstrap: 300 synthetic markets\n",
"==================================\n",
"\"\"\"\n",
"N_PATHS = 300\n",
"L = 15\n",
"rng = np.random.RandomState(RANDOM_STATE)\n",
"boot_alphas = []\n",
"for p in range(N_PATHS):\n",
" idx = block_indices(T, L, rng)\n",
" R_synth = F[idx] @ B.T + E[idx] + mean_r\n",
" ret_s = pd.DataFrame(R_synth, columns=tickers)\n",
" long_s = decile_long_returns(momentum_signal(ret_s), ret_s)\n",
" a, _ = ff_alpha(long_s, ff.iloc[idx].reset_index(drop=True))\n",
" boot_alphas.append(a)\n",
" if (p + 1) % 50 == 0:\n",
" print(f\" {p+1}/{N_PATHS} paths done\")\n",
"boot_alphas = np.array(boot_alphas)\n",
"p_boot = np.mean(boot_alphas >= real_alpha)\n",
"print(f\"\\nBootstrap: mean synth alpha {boot_alphas.mean()*100:.2f}%/yr | \"\n",
" f\"P(>= real {real_alpha*100:.2f}%) = {p_boot*100:.1f}%\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "eb0bb233",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-31T11:12:06.131528Z",
"iopub.status.busy": "2026-07-31T11:12:06.131300Z",
"iopub.status.idle": "2026-07-31T11:12:06.745422Z",
"shell.execute_reply": "2026-07-31T11:12:06.744889Z"
}
},
"outputs": [
{
"data": {
"image/png": "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tz0ZIBlzdXXF1q1bsXDhQuTm5sLb21s/OZi9vb2lw6NakJmZiZiYmNuqm0dEREQNj5+fH5YvX47MzExLh9JoJCcn44svvkCvXr0sHQpRjWN5BCIiIiIiIiIiIiIrwutiiYiIiIiIiIiIiKwIk7ZEREREREREREREVoRJWyIiIiIiIiIiIiIr0mAmItNoNEhJSYGLiwtkMpmlwyEiIiIiMwkhkJubi8DAQMjlHFtgCs95iYiIiOq36p7zNpikbUpKCmdBJyIiImoALl++jODgYEuHYZV4zktERETUMFR1zttgkrYuLi6A9gW7urrW+v40Gg0yMjLg4+PDkSANEPu34WLfNlzs24aN/dtwle3bvLw8hISE6M/ryFhdn/OWx8+idWK/WJ866ZPPpwJ5NwFnT+C5L2pnHw0MPyvWif1ifdgntSsnJ6da57wNJmmruzzM1dW1zpK2RUVFcHV15Ru4AWL/Nlzs24aLfduwsX8bLlN9y8v+K1bX57zl8bNondgv1qdO+sTeDii1lW4t8PugPuJnxTqxX6wP+6RuVHXOyyNPREREREREREREZEWYtCUiIiIiIiIiIiKyIkzaEhEREREREREREVmRBlPTtjo0Gg1KSkpqbFulpaUoKipifY8GSNe/arWa/UtERERERERENUKtVqO0tNTSYVSKOa87Y2trCxsbmzveTqNJ2paUlCAhIQEajaZGtieEgEajQW5uLifLaIDK9q+Hhwf8/f3Zz0RERERERER0W4QQSEtLQ1ZWlqVDqRJzXnfO3d39jnNJjSJpK4RAamoqbGxsEBISUiP/JRBCQKVSQaFQ8A3cAAkhUFpaipKSEmRkZAAAAgICLB0WEREREREREdVDuoStr68vHB0drTqXxJzX7RNCoKCgAOnp6cAd5pIaRdJWpVKhoKAAgYGBcHR0rJFt8g3csAkhoFAo4OLiAplMhvT0dPj6+tbI8HYiIiIiIiIiajzUarU+Yevl5WXpcKrEnNedcXBwAIA7ziU1isIUarUaAGBnZ2fpUKge0iX6rb3mDBERERERERFZH10+oaYGEpL1q4lcUqNI2urwvwN0O/i+ISIiIiIiIqI7xfxC41ETfd2okrZERERERERERERE1o5J20YmMTERMpkM8fHxlg6FiIiIiIiIiIgaIeanqsakLREREREREREREVmtp556CjKZDAsXLqz2OqtWrYJMJsPw4cMNlufm5mLatGkIDQ2Fg4MDevTogUOHDhm0+fDDD+Hn5wc/Pz988sknBs8dOHAAd911l34OrdqiqNWtU40qKSnhZGpERERERERERGQRlshNbdiwAQcOHEBgYGC110lKSsKMGTNw9913Gz03efJk/Pfff/jxxx8RGBiIn376CQMGDMCpU6cQFBSEEydO4K233sLvv/8OIQSGDh2KgQMHIjo6GqWlpXj66afxzTffwMbGpoZfqSGOtLViffr0wdSpUzF9+nR4e3tj4MCBOHXqFO699144OzvDz88PY8eOxfXr1/XrbN68Gb169YK7uzu8vLwwdOhQXLx40aKvg4iIiIiIiIiI6h9TuSkAdZafunr1KqZOnYrly5fD1ta2Wuuo1Wo8+uijmDNnDiIiIgyeKywsxNq1a7FgwQL07t0bzZo1w+zZsxEeHo5FixYBAE6fPo22bduiX79+6N+/P9q2bYvTp08DAD744AP07t0bnTt3Nvu1mKtRJm2FECgqUVnkRwhhVqxLly6FQqHAvn378N577yEmJgbt27fH4cOHsXnzZly7dg2jRo3St8/Pz8f06dNx6NAh7NixA3K5HA888AA0Gk0tHEkiIiKqMaXFQH6OpaMgIiIiIjJQNjf19ddfIzU1tU7yUxqNBmPHjsVLL72E1q1bV3u9uXPnwsfHB5MmTTJ6TqVSQa1Ww97e3mC5g4MD9u7dCwBo06YNzp07h+TkZCQlJeHcuXOIjo7GhQsXsGTJErzzzjvVjuVONMryCMWlatz//haL7PvXVwbB3q76h71Zs2ZYsGABAOCtt95Cx44d8e677+qf/+GHHxASEoJz584hKioKI0aMMFj/+++/h6+vL06dOoXo6OgafCVERERUo7YuARJPAo++Abj7WjoaIiIiIqptX88A8rLqdp/O7sBTH5q1StncFOowP/X+++9DoVDg+eefr3as+/btw/fff1/hBGcuLi7o3r073n77bbRs2RJ+fn5YuXIlDhw4gMjISABAy5Yt8e677+pHFc+fPx8tW7bEgAEDsGDBAmzZsgWzZ8+Gra0tPv30U/Tu3bva8ZmjUSZt65NOnTrp7x85cgR//fUXnJ2djdpdvHgRUVFRuHjxIt58803s378f169f1/8HIzk5mUlbIiIia1VaIiVsNWog5SKTtkRERESNQV4WkHvD0lFU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2Vekq3juueeYNWsWixcv5siRIxQXFzf6EhERERFxhDZbiExEROSUDONY0jZlEqycB4U58M2/oLbaXJjsigdANSbPmmEY9nq2StqKHDNp0iQAzj///EbtWohMRERERBxJSVsREXGc/ENQchRc3CCuL+Skw4YcOHLY3D98qhK2reRwQTk5hRW4Wi0MitMiZCINfvzxRy0+JiIiIiJOR0lbERFxnH2bzce4vuDmAfEDYcMCsy04CuIHODS8jq6kooaXv9pCWKAXPh5uAPSL6YaXu779izSYOHGio0MQEREREWlCP7WJiIhjGAbsWWduJw02HyMTwMsXKkph2IVgVen1s/HlmnSW7cpu1JaSoNIIIsdLSEjgtttu49ZbbyU2NtbR4YiIiIiIgBYiExERh8nNgKI8cHWHxGSzzeoCU++Cc6+HnkMcHWGHVmez8e3GgwCEBXjZ24f3CHNgVCLOZ+bMmXz55ZckJiYyefJk5s6dS1VVlaPDEhEREZEuTklbERFxjN1rzMeEgeDueay9ew8YME61bM/Sqj255JdUEuDtzpv3TOCZ64fzxDVD6RkZ4OjQRJzK/fffz/r161m/fj39+vXjgQceIDIykvvuu48NGzY4OjwRERER6aKUtBURkfZnq4M9683t3sMdHU2n9NX6AwBcMDgGd1cXhvcIY0zvCEeHJeK0kpOT+etf/0pmZiZPPPEE//73vxk+fDjJycm89dZbGIbh6BBFREREpAtRTVsREWl/B3dDRQl4+kBsP0dH0+lkHiljQ1o+FuCiIarRKdISNTU1fP7558yZM4f58+czatQo7rjjDg4fPszjjz/OggUL+PDDDx0dpoiIiIh0EUraiohI+6gohRVfmIna3AyzredQcHFxdGSdzrcbzdd3WI9QIrp5OzocEae2YcMG5syZw0cffYSLiws333wzf/nLX+jTp4+9z5QpUxg/frxD4xQRERGRrkVJWxERaR+bF8GOlY3bVBqhTezKLARgQr8oR4ci4vSGDx/O5MmTee2117j88stxc3Nr0qdfv35cd911DolPRERERLomJW1FRKR9HNpjPnbvBTVVEBwJEQmOjqpTyi4sByAqSLNsRU4lLS2NuLi4k/bx8fFhzpw57RaTiIiIiIiStiIi0vaqqyB7v7l9/o0QEOLoiDqtmjob+cWVAESqNILIKVmtVg4dOkR0dDQA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3/DQQw/x6quvEhUVxSuvvMKVV17ZFuGJE7H+rGbxsKRQXvvFObzw5WbW7csjPNCLhy9JJjm++TIZIiIiIiIiIiIinU2bLUR2zz33cM899zS77+23327SNmHCBDZs2NBW4UgHEujjwf+7fjipWUXEhfrZa9uKiIiIiIiIiIh0BW2WtBU5G1aLhd5RgY4OQ0REREREREREpN1piV4RERERERERERERJ6KZtiIiIiIi0iH939y1jg5BREQ6GGf93uFccRkEWKsosmXw9HUjHB1Ms1rz9Xr6uuGtdq7WpJm2IiIiIiIiIiIiIk5ESVsRERERERERERERJ6KkrYiIiIiIiIiIiIgTUdJWRERERERERERExIkoaSsiIiIiIiIiIiLiRJS0FREREREREREREXEiStqKiIiIiIiIiIiIOBElbUVERERERERERESciJK2IiIiIiIiIiIiIk5ESVsRERERkXb0j3/8g4SEBDw9PRk6dChLly51dEgiIiIi4mSUtBURERERaScff/wxDz74II8//jgbN27knHPOYerUqWRkZDg6NBERERFxIkraioiIiIi0k5deeok77riDO++8k759+/Lyyy8TExPDa6+95ujQRERERMSJKGkrIiIiItIOqqurWb9+PVOmTGnUPmXKFFasWOGwuERERETE+bg6OoDWYhgGAMXFxe1yPZvNRklJCZ6enlityn13Nhrfzktj23lpbDs3jW/ndfzYlpaWwnGf6zqb/Px86urqCA8Pb9QeHh5OdnZ2s8dUVVVRVVVlf15UVARAYWEhNputjSM+Lo7yEvt2pbWKKltNu11bWkbj4nzaekyKK6ux1NVQXFvd6D0qJ6f3inPSuDifhjEpLCx0dCjNas3/99r7Hhtyl6f6zNtpkrYlJeZgxcTEODoUERERETkLJSUlBAQEODqMNmOxWBo9NwyjSVuD2bNn89RTTzVpj4uLa7P4RKRjeL7Rs48dFoeIdG7P3+HoCNqeo+7xVJ95O03SNioqioMHD+Ln53fCD72tqbi4mJiYGA4ePIi/v3+bX0/al8a389LYdl4a285N49t5HT+2fn5+lJSUEBUV5eiw2kRISAguLi5NZtXm5uY2mX3b4LHHHmPmzJn25zabjaNHjxIcHNwun3l/Tu9F56RxcT4aE+ekcXFOGhfnozFpW4ZhtOgzb6dJ2lqtVqKjo9v9uv7+/voH3IlpfDsvjW3npbHt3DS+nVfD2HbmGbbu7u4MHTqU+fPnc8UVV9jb58+fz2WXXdbsMR4eHnh4eDRqCwwMbPNYT0XvReekcXE+GhPnpHFxThoX56MxaTst+czbaZK2IiIiIiLObubMmdx8880MGzaM0aNH88Ybb5CRkcHdd9/t6NBERERExIkoaSsiIiIi0k6uvfZajhw5wtNPP01WVhYDBgzgm2++UY1aEREREWlESdsz5OHhwRNPPNHkz9Wkc9D4dl4a285LY9u5aXw7r644tvfccw/33HOPo8M4I11xvDoCjYvz0Zg4J42Lc9K4OB+NiXOwGIZhODoIERERERERERERETFZHR2AiIiIiIiIiIiIiByjpK2IiIiIiIiIiIiIE1HSVkRERERERERERMSJKGl7hv7xj3+QkJCAp6cnQ4cOZenSpY4OSU7Tk08+icViafQVERFh328YBk8++SRRUVF4eXkxceJEtm/f7tCYpXk//fQTl1xyCVFRUVgsFr744otG+1syllVVVdx///2EhITg4+PDpZdeyqFDh9r5TqQ5pxrfW2+9tcl7edSoUY36aHyd0+zZsxk+fDh+fn6EhYVx+eWXs3v37kZ99P7tmFoytnrvdkz6DOw8WvI+E8ebPXs2FouFBx980NGhdHmZmZncdNNNBAcH4+3tzeDBg1m/fr2jw+qyamtr+f3vf09CQgJeXl4kJiby9NNPY7PZHB1al9IaP0tL21HS9gx8/PHHPPjggzz++ONs3LiRc845h6lTp5KRkeHo0OQ09e/fn6ysLPvX1q1b7fuef/55XnrpJf7+97+zdu1aIiIimDx5MiUlJQ6NWZoqKysjOTmZv//9783ub8lYPvjgg3z++efMnTuXZcuWUVpaysUXX0xdXV073ok051TjC3DhhRc2ei9/8803jfZrfJ3TkiVLuPfee1m1ahXz58+ntraWKVOmUFZWZu+j92/H1JKxRe/dDkefgZ1LS99n4jhr167ljTfeYNCgQY4OpcsrKChg7NixuLm58e2337Jjxw5efPFFAgMDHR1al/Xcc8/x+uuv8/e//52dO3fy/PPP88ILL/C3v/3N0aF1Ka3xs7S0IUNO24gRI4y77767UVufPn2M3/72tw6LSU7fE088YSQnJze7z2azGREREcaf/vQne1tlZaUREBBgvP766+0YpZwu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IiIiIiJORElbERERERERERERESeipK2IiIiIiIiIiIiIE1HSVkRERERERERERMSJKGkrIiIiIiIiIiIi4kSUtBURERERERERERFxIkraioiIiIiIiIiIiDgRJW1FREREREREREREnIiStiIiZ2n//v1YLBY2bdrU6ud+++23CQwMbPXzOsrixYuxWCwUFhY6OhQRERGRLu3nnzOffPJJBg8e3KbXnDhxIg8++GCbXuN0ncl9t+V9/Pjjj/Tp0webzXbG5/jqq69ISUk5q3OIiOMpaSsichpuvfVWLr/88jY5d3x8PC+//HKjtmuvvZY9e/a0yfXamjN+KBcRERFpaytWrMDFxYULL7zQ0aGclkceeYSFCxc6NIa3334bi8XS5Ovf//53i/Z3BrNmzeLxxx/HajXTNRs3biQlJQVfX18uvfRSCgoK7H1ra2sZMmQIa9eubXSOiy++GIvFwocfftju8YtI61HSVkTEiXl5eREWFuboMERERESkhd566y3uv/9+li1bRkZGhqPDaTFfX1+Cg4MdHQb+/v5kZWU1+rrxxhtbvL8jW7FiBampqVx99dX2tjvvvJPzzjuPDRs2UFhYyLPPPmvf9+c//5lx48YxfPjwJue67bbb+Nvf/tZusYtI61PSVkQ6lf/+978MHDgQLy8vgoODmTRpEmVlZfz000+4ubmRnZ3dqP/DDz/M+PHj4bg/Efv+++/p27cvvr6+XHjhhWRlZUH9n0698847fPnll/bf6i9evNh+rrS0NM4991y8vb1JTk5m5cqVja61YsUKxo8fj5eXFzExMTzwwAOUlZVB/azUAwcO8NBDD9nPzQnKI8ybN49hw4bh6elJSEgI06dPP+Hr0fDnXm+99RaxsbH4+vryq1/9irq6Op5//nkiIiIICwvjj3/8Y6PjMjIyuOyyy/D19cXf359rrrmGnJycJud97733iI+PJyAggOuuu46SkhKon5G8ZMkS/vrXv9rvZ//+/fbj169fz7Bhw/D29mbMmDHs3r27xWMsIiIi4qzKysr45JNP+NWvfsXFF1/M22+/3Wh/Q6mohQsXnvCz0Kk+Z3GCv9AaPHgwTz75pP35Sy+9xMCBA/Hx8SEmJoZ77rmH0tLSE8b+8zIBzc1ojY+Pt+/fsWMH06ZNw9fXl/DwcG6++Wby8/MbvRa33HILvr6+REZG8uKLL7bo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3s/bT3aO04np56+ViIiISEf05ptvUltbS/fu3e1thmHg5uZGQUGBfSIBLfgsdKrPWVartcln1OPrtB44cIBp06Zx99138//+3/8jKCiIZcuWcccdd5y0nuvPvf/++/zlL39h8eLFREdH29ttNhuXXHIJzz33XJNjIiMjSU1NbfE1fs5qtdKjR48z3n+8VatWcd111/HUU09xwQUXEBAQwNy5c1tcX/fnWvpZ+Exf/5CQEAoKCk4aw0MPPcSDDz5IdHQ0ixcv5plnnsHHx4eLLrqIxYsXN0raHj16lNDQ0DO6VxFxPCVtRaRTsVgsjB07lrFjx/J///d/xMXF8fnnnzNz5kyoX331uuuuIzo6mqSkJMaOHXta53d3d6euru604xoyZAjbt28/6QfMlpx70KBBLFy4sFEd3tbWr18/MjIyOHjwoH227Y4dOygqKmrxjGDO4rUSERER6Whqa2t59913efHFF5kyZUqjfVdeeSUffPCBfS2D1hAaGtpoDYTi4mLS09Ptz9etW0dtbS0vvviifSbqJ598clrXWLlyJXfeeSf//Oc/GTVqVKN9Q4YM4dNPPyU+Ph5X16ZphR49euDm5saqVavsExQKCgrYs2cPEyZMOO37PVPLly8nLi6Oxx9/3N524MCBUx63efNmKioq7BMmVq1aha+vb6PE9cmc6eufkpJiX2isOQsXLmTXrl32Be7q6ursSeCfJ4MrKyvZt28fKSkpLYpZRJyPFiITkU5j9erVPPvss6xbt46MjAw+++wz8vLyGiUaG37D/swzz5xR4jM+Pp4tW7awe/du8vPzWzxT4Te/+Q0rV67k3nvvZdOmTaSmpjJv3jzuv//+Ruf+6aefyMzMbLTy7vGeeOIJPvroI5544gl27tzJ1q1bef7550/7Pk5m0qRJDBo0iBtvvJENGzawZs0abrnlFiZMmHDKRc+OFx8fz+rVq9m/fz/5+fmaSSsiIiKd1ldffUVBQQF33HEHAwYMaPR11VVX8eabb7bq9c477zzee+89li5dyrZt25gxYwYuLi72/UlJSdTW1vK3v/2NtLQ03nvvPV5//fUWnz87O5srrriC6667jgsuuIDs7Gyys7PJy8sD4N577+Xo0aNcf/31rFmzhrS0NH744Qduv/126urq8F/ch58AAAN+SURBVPX15Y477uDRRx9l4cKFbNu2jVtvvfWUpQxaW48ePcjIyGDu3Lns27ePV155hc8///yUx1VXV3PHHXewY8cOvv32W5544gnuu+++Fsd/pq//BRdcwLJly5rdV1FRwb333ssbb7xhj2Ps2LG8+uqrbN68mU8//bTRhJRVq1bh4eHRqESFiHQsStqKSKfh7+/PTz/9xLRp0+jVqxe///3vefHFF5k6daq9j9Vq5dZbb6Wuro5bbrnltK9x11130bt3b4YNG0ZoaCjLly9v0XGDBg1iyZIlpKamcs4555CSksIf/vAHew0zgKeffpr9+/eTlJR0wj9jmjhxIv/5z3+YN28egwcP5rzzzmP16tWnfR8nY7FY+OKLL+jWrRvjx49n0qRJJCYm8vHHH5/WeR555BFcXFzo168foaGhZGRktGqcIiIiIs7izTffZNKkSQQEBDTZd+WVV7Jp06ZGdVjP1mOPPcb48eO5+OKLmTZtGpdffnmjdRkGDx7MSy+9xHPPPceAAQP44IMPmD17dovPv2vXLnJycnjnnXeIjIy0fzWsbRAVFcXy5cupq6vjggsuYMCAAfz6178mICDAnlB84YUXGD9+PJdeeimTJk1i3LhxDB06tNVeg5a47LLLeOihh7jvvvsYPHgwK1as4A9/+MMpjzv//PPp2bMn48eP55prruGSSy7hySefbPF1z/T1v+mmm9ixYwe7d+9usu/pp5/m4osvZvDgwfa2V155hU2bNtn/LVx55ZX2fR999BE33nhjo9q8ItKxWIyWFmsUEekk7rrrLnJycpg3b56jQxERERERESdy6623UlhYyBdffOGQ68+aNYuioiL++c9/nvE58vLy6NOnD+vWrSMhIaFV4xOR9qOZtiLSZRQVFbFgwQI++OCDRmUJREREREREnMHjjz9OXFzcWa0NkZ6ezj/+8Q8lbEU6OM20FZEuY+LEiaxZs4Zf/vKX/OUvf3F0OCIiIiIi4mQcPdNWRKSBkrYiIiIiIiIiIiIiTkTlEURERERERERERESciJK2IiIiIiIiIiIiIk5ESVsRERERERERERERJ6KkrYiIiIiIiIiIiIgTUdJWRERERERERERExIkoaSsiIiIiIiIiIiLiRJS0FREREREREREREXEiStqKiIiIiIiIiIiIOBElbUVEREREREREREScyP8HNoyBTQm6YgkAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1400x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\"\"\"\n",
"==================================\n",
"Bootstrap: one path + alpha distribution\n",
"==================================\n",
"\"\"\"\n",
"fig, axes = plt.subplots(1, 2, figsize=(14, 5))\n",
"\n",
"ax = axes[0]\n",
"ax.plot((1 + X.mean(axis=1)).cumprod() - 1, color='steelblue', label='real')\n",
"idx0 = block_indices(T, L, rng)\n",
"R0 = F[idx0] @ B.T + E[idx0] + mean_r\n",
"ax.plot((1 + R0.mean(axis=1)).cumprod() - 1, color='coral', alpha=0.85, label='one synthetic')\n",
"ax.set_title('Real vs one synthetic market (equal-weight cumulative)')\n",
"ax.set_xlabel('synthetic month'); ax.legend(); ax.grid(alpha=0.3)\n",
"\n",
"ax = axes[1]\n",
"ax.hist(boot_alphas * 100, bins=30, color='steelblue', alpha=0.7)\n",
"ax.axvline(real_alpha * 100, color='coral', linewidth=2, label=f'real {real_alpha*100:.2f}%')\n",
"ax.set_xlabel('Annualized FF alpha (%)'); ax.set_ylabel('# synthetic markets')\n",
"ax.set_title(f'Block-bootstrap alpha (p = {p_boot*100:.1f}%)')\n",
"ax.legend(); ax.grid(alpha=0.3)\n",
"\n",
"plt.tight_layout()\n",
"plt.savefig('../images/06_synthetic_markets/bootstrap_alpha.png', dpi=150, bbox_inches='tight')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "17f709e9",
"metadata": {},
"source": [
"## Conditional VAE Generator\n",
"\n",
"The VAE section is intentionally more cautious. A small conditional variational autoencoder tries to model factor-score transitions:\n",
"\n",
"$$f_{t-1}\\rightarrow f_t.$$\n",
"\n",
"The encoder maps the previous and current factor score to latent parameters, samples a latent vector $z$, and the decoder tries to reconstruct the next factor score. After training, we sample new factor paths one step at a time.\n",
"\n",
"This is interesting, but it creates a serious validation problem. To reconstruct stock returns we still need residual rows $E_t$. If generated factor scores are paired with independently sampled residuals, we may create combinations that never existed in the real data. That can accidentally create cross-sectional persistence, which is exactly what a momentum strategy profits from.\n",
"\n",
"So the VAE is included as a warning: generative finance models can look sophisticated while quietly injecting the signal being tested."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "844c73c3",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-31T11:12:06.747247Z",
"iopub.status.busy": "2026-07-31T11:12:06.747003Z",
"iopub.status.idle": "2026-07-31T11:12:09.315924Z",
"shell.execute_reply": "2026-07-31T11:12:09.315412Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"VAE trained | recon 0.0096 | kl 7.69\n"
]
}
],
"source": [
"\"\"\"\n",
"==================================\n",
"Conditional VAE on the factor scores F (autoregressive)\n",
"==================================\n",
"\"\"\"\n",
"import torch\n",
"import torch.nn as nn\n",
"torch.manual_seed(RANDOM_STATE)\n",
"\n",
"Ft = torch.tensor(F, dtype=torch.float32) # (T, k)\n",
"cond, target = Ft[:-1], Ft[1:] # f_{t-1} -> f_t\n",
"d = 4 # latent dim\n",
"\n",
"class CVAE(nn.Module):\n",
" def __init__(self, k, d):\n",
" super().__init__()\n",
" self.enc = nn.Sequential(nn.Linear(2*k, 32), nn.ReLU(), nn.Linear(32, 2*d))\n",
" self.dec = nn.Sequential(nn.Linear(k+d, 32), nn.ReLU(), nn.Linear(32, k))\n",
" self.d = d\n",
" def encode(self, c, x):\n",
" h = self.enc(torch.cat([c, x], -1)); return h[..., :self.d], h[..., self.d:]\n",
" def decode(self, c, z):\n",
" return self.dec(torch.cat([c, z], -1))\n",
"\n",
"model = CVAE(k, d)\n",
"opt = torch.optim.Adam(model.parameters(), lr=1e-2)\n",
"for epoch in range(300):\n",
" mu, logvar = model.encode(cond, target)\n",
" z = mu + torch.randn_like(mu) * torch.exp(0.5 * logvar)\n",
" recon = model.decode(cond, z)\n",
" recon_loss = ((recon - target) ** 2).mean()\n",
" kl = -0.5 * (1 + logvar - mu**2 - torch.exp(logvar)).sum(-1).mean()\n",
" loss = recon_loss + 1e-3 * kl\n",
" opt.zero_grad(); loss.backward(); opt.step()\n",
"print(f\"VAE trained | recon {recon_loss.item():.4f} | kl {kl.item():.2f}\")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "bf811200",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-31T11:12:09.318171Z",
"iopub.status.busy": "2026-07-31T11:12:09.317809Z",
"iopub.status.idle": "2026-07-31T11:12:51.102586Z",
"shell.execute_reply": "2026-07-31T11:12:51.101852Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" VAE 50/300 paths done\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" VAE 100/300 paths done\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" VAE 150/300 paths done\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" VAE 200/300 paths done\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" VAE 250/300 paths done\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" VAE 300/300 paths done\n",
"\n",
"VAE: mean synth alpha 14.46%/yr | P(>= real 4.49%) = 99.7%\n"
]
}
],
"source": [
"\"\"\"\n",
"==================================\n",
"VAE: ancestral-sample 300 synthetic markets, run the backtest\n",
"==================================\n",
"\"\"\"\n",
"def sample_path(model, T, k, d, f0):\n",
" f = [f0]\n",
" with torch.no_grad():\n",
" for _ in range(T - 1):\n",
" z = torch.randn(d)\n",
" f.append(model.decode(f[-1], z))\n",
" return torch.stack(f).numpy()\n",
"\n",
"vae_alphas = []\n",
"for p in range(N_PATHS):\n",
" F_synth = sample_path(model, T, k, d, Ft[0]) # (T, k)\n",
" idx = rng.randint(0, T, size=T) # iid residual draw\n",
" R_synth = F_synth @ B.T + E[idx] + mean_r\n",
" ret_s = pd.DataFrame(R_synth, columns=tickers)\n",
" long_s = decile_long_returns(momentum_signal(ret_s), ret_s)\n",
" a, _ = ff_alpha(long_s, ff.iloc[idx].reset_index(drop=True))\n",
" vae_alphas.append(a)\n",
" if (p + 1) % 50 == 0:\n",
" print(f\" VAE {p+1}/{N_PATHS} paths done\")\n",
"vae_alphas = np.array(vae_alphas)\n",
"p_vae = np.mean(vae_alphas >= real_alpha)\n",
"print(f\"\\nVAE: mean synth alpha {vae_alphas.mean()*100:.2f}%/yr | \"\n",
" f\"P(>= real {real_alpha*100:.2f}%) = {p_vae*100:.1f}%\")"
]
},
{
"cell_type": "markdown",
"id": "diag-vae",
"metadata": {},
"source": [
"### Why the VAE Overstates the Alpha\n",
"\n",
"The VAE synthetic markets produce alphas well above the real raw-momentum baseline. I would not treat that as evidence of a better stress test. It is more likely an artifact of how the synthetic return rows are assembled.\n",
"\n",
"| reconstruction of $R$ | mean synthetic alpha |\n",
"|---|---:|\n",
"| $F[\\mathrm{idx}]B^\\top+E[\\mathrm{idx}]$ with the **same** time index | about 5% |\n",
"| generated $\\hat F$ plus independently resampled $E$ | often 10-25% |\n",
"\n",
"The second construction breaks the observed relationship between common factor shocks and stock-specific residual shocks. That can manufacture momentum-like structure.\n",
"\n",
"The lesson is practical: when stress-testing a signal, preserving the joint distribution matters more than using a fancier generator. For this project, the row/block bootstrap is the result to rely on."
]
},
{
"cell_type": "markdown",
"id": "b3574655",
"metadata": {},
"source": [
"## Results and Interpretation\n",
"\n",
"The plot compares the real-panel alpha to two synthetic-alpha distributions.\n",
"\n",
"The number labeled as a bootstrap tail share is the fraction of synthetic markets with alpha greater than or equal to the real-panel alpha. A value near 50% means the real result is close to the middle of the synthetic distribution. A value near 5% would mean the real history was unusually favorable compared with the generated histories.\n",
"\n",
"Because the bootstrap keeps the same loadings $B$ and resamples observed factor/residual rows, it does **not** test whether momentum exists from first principles. It tests whether the observed alpha is unusually dependent on the order in which historical months happened."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "43719fe4",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-31T11:12:51.104749Z",
"iopub.status.busy": "2026-07-31T11:12:51.104514Z",
"iopub.status.idle": "2026-07-31T11:12:51.528711Z",
"shell.execute_reply": "2026-07-31T11:12:51.528086Z"
}
},
"outputs": [
{
"data": {
"image/png": "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7FnTv39/89FHH5nvvvvOLFu2zIwcOdJ4eXmZOXPm2G1LkilevLipUaOGmT9/vvnuu+/Mr7/+avbt22ckmddff90YY8yZM2dMixYtTHh4uNmyZYtt/UceecT4+PiYp59+2ixbtszMnz/fVKpUyYSFhZljx47ZPuPGjRub8PBw275bv379dffByy+/bN58802zdOlSs2bNGjN9+nQTHR1tWrRokem+ulpUVJQpXry4KVWqlJk5c6b55ptvzH333Wf3fowxZvXq1ba+dt9995mlS5eaTz75xJQqVcqUL1/epKam2upOmzbNTJgwwXz11Vdm7dq1Zs6cOaZmzZqmYsWKGfq8JNOsWTOHP+eoqCjzzDPPmLi4OLN48WKH96szcWXWR691+fJlExoaau67774My+644w5Tp04d2+uKFSuacuXKmY8++sisXbvWfPHFF+bpp582q1evvu57fu+994wk07NnT7NkyRIzb948U6FCBRMVFWWioqJs9dLS0kz79u1NwYIFTWxsrImLizMffvihKV68uKlSpYq5cOGCra4rj3VjjK3vFy9e3LRo0cL897//NStWrDD79u1z+Nhav3698ff3Nx07drT1999++82pOC5cuGAqV65sgoODzdtvv22WL19unnjiCVOqVCkjycyaNeu6+zr9My9Tpox5/PHHzfLly82HH35oChcunOE4atasmV2f/eSTT2zn9RUrVpiVK1ea6dOnmyeeeMIYY0x8fLwZP3687dyd/h7j4+ONMca2rE+fPmbp0qVm7ty5pkyZMiY4ONj8+eeftu3069fP+Pj4mNKlS5sJEyaYVatWmeXLl9uWXd0njIPHxblz50zRokVNvXr1zGeffWbWrl1rPv30UzN48GCza9eu6+4zAHkbSTeAXOvkyZOmSZMmRpKRZHx8fEyjRo3MhAkTTFJSkl3dZs2amVq1atmVPfbYYyYoKMiuriQTFhZmEhMTbWXHjh0zXl5eZsKECbay119/PctEIioqyuTPn98cOHDAVpacnGyKFCliBg0aZCsbNGiQCQgIsKtnjDFvvPGGkWT7onzixAkjyYwdOzbDtq5NaJKSkkxQUJBp0qSJsVqtDu7J/5eejE2aNMmuvFatWrYfGdJdvnzZhISEmB49emTZXmpqqrl8+bIZOHCgqV27tt0ySSY4ONicPn3arvzqpHvfvn2mSpUqpkqVKmb//v22OuvXr880zkOHDhl/f38zevRoW9ldd92V4Qu0o6xWq7l8+bJZu3atkWR+/vln27Kskm6LxWJ27NhhV96mTRsTFBRkzp8/b8xVSXfHjh3t6n322WdGUpY/DKTHc+DAASPJfPnll3bL8+XLZ1q2bHnD95Ue+4svvmhX7sx+dTQuR5JuY4wZMWKE8ff3N2fPnrWV7dq1y0gyb7/9tjFXjnlJZsqUKTd8j1dLS0sz4eHhpkGDBnblBw4cMD4+Pnb9Iz3pu/rHJGOM2bx5s5Fk3n33XVuZq4/19L5ftmzZLH9ETHe9Y6tgwYKmX79+GdZxNI5p06Zl2r8eeeQRp5Lua3/omzhxopFkjh49aiu7NukeNmyYKVSo0HXb//zzz42kDD+0nDlzxvaDw9UOHjxo/Pz8TN++fW1l/fr1M5LMzJkzM7R/bdLt6HGxZcsWI8n2AxYApGN4OYBcq2jRovrhhx+0efNmvfrqq+ratav+/PNPPfvss6pevbrdMNcnn3xSO3bs0E8//SRJSkxM1EcffWQbsny1Fi1aKDAw0PY6LCxMoaGhOnDggMOx1apVS6VKlbK9zp8/vypUqGDXxpIlS9SiRQtFRkYqNTXV9tehQwdJ0tq1a53eJ+vWrVNiYqKGDBmS5TBqY4zd9q4dViopw+zrlStXlsViscUmSd7e3ipXrlyG/fL555+rcePGCggIkLe3t3x8fDRjxowMwzt1ZXh/4cKFM41z27ZtuvPOOxUWFqaffvpJUVFRtmVLliyRxWLR/fffb/c+wsPDVbNmzUwnnXPU33//rb59+yo8PFz58uWTj4+PmjVrJkmZvodrVa1aVTVr1rQr69u3rxITE7Vt2za78i5duti9rlGjhiTZ7dP4+HgNHjxYJUuWtO3P9H1xbTypqamZDtHOSs+ePe1eO7NfnYnLEQ899JCSk5PtJkGcNWuW/Pz81LdvX0lSkSJFVLZsWb3++uuaPHmytm/fLqvVesO2//jjDx07dkz33nuvXXmpUqXUuHHjDPugUKFC6ty5s90+qFWrlsLDwzP0LXcc6126dJGPj0+G9+HMsZUZR+NYvXq1AgMDM/TP9M/BUY7072vdcccdOnv2rPr06aMvv/zSqdsV1q9fr+TkZNvtN+lKliypli1bZnpsXHsMZMbR46JcuXIqXLiwnnnmGU2fPl27du1yOHYAeRtJN4Bcr169enrmmWf0+eef659//tFTTz2l/fv3291v3LVrV5UuXVr/+c9/pCv3BZ4/f15Dhw7N0F7RokUzlPn5+Sk5OdnhmBxp4/jx4/r666/l4+Nj95d+j3l27o1Nv+e0RIkSWdZZu3Zthm1ee094kSJF7F77+vqqQIECyp8/f4byqyc/W7hwoe69914VL15cH3/8sdavX6/NmzfroYceynSStOvNuh4XF6fjx4/r4YcfVqFCheyWHT9+XMYYhYWFZXgvGzZsyPb9zufOndO//vUvbdy4Ua+88orWrFmjzZs3a+HChZLkUB8IDw/PsuzUqVN25df2k/TJstK3Y7Va1bZtWy1cuFCjR4/WqlWrtGnTJm3YsMHheK7n2v3v6H51R1xVq1ZV/fr1NWvWLOnKBGIff/yxunbtauuP6fd9t2vXThMnTlSdOnUUEhKiJ554QklJSVm2nb7fw8LCMiy7tuz48eM6e/asfH19M+yDY8eOZehb7jjWMzsunD22MuNoHKdOncp0X2XWt6/nRv07Mw888IBmzpypAwcOqGfPngoNDVWDBg0UFxd3w+2lf86Z7b/IyMgMx1+BAgUUFBR0w3YdPS6Cg4O1du1a1apVS88995yqVq2qyMhIjR07VpcvX77hdgDkXcxeDiBP8fHx0dixY/Xmm2/q119/tZV7eXlp6NCheu655zRp0iS9++67atWqlSpWrOixWIsVK6YaNWpo3LhxmS6PjIx0us30SdeuN2lP3bp1tXnz5pveVmY+/vhjRUdH69NPP7W70p6SkpJp/etNajZq1Cj99ddfevDBB5WamqoHH3zQtqxYsWKyWCz64YcfMp3VObszPX/33Xf6559/tGbNGtvVbUlOPRous8mm0ssyS9Cu59dff9XPP/+s2bNnq1+/frbyvXv3OtVOVq7d/47uV3fFNWDAAA0ZMkS7d+/W33//raNHj2rAgAF2daKiojRjxgxJ0p9//qnPPvtMMTExunTpkqZPn55pu+n7/fjx4xmWXft5pU/6tWzZskzbunoUjKOcPdYzOy6cPbZuJo6iRYtq06ZNGZY7O5Fadg0YMEADBgzQ+fPn9f3332vs2LHq1KmT/vzzT7sRL9dK/5yPHj2aYdk///yjYsWK2ZXdaFLFdM6cb6pXr64FCxbIGKNffvlFs2fP1ksvvSR/f3/9+9//dmh7APIekm4AudbRo0czvaKRPtTy2i+yDz/8sGJiYnTffffpjz/+0GuvvZbtbTtyxeZGOnXqpG+++UZly5bNcoi1s9tq1KiRgoODNX36dPXu3TvTL5WBgYGqV69etuO+HovFIl9fX7vtHjt2LNPZy2/Ey8tL7733ngICAtS/f3+dP39ejz32mHRl37366qs6cuRIhiHD13JmlEJ63Nd+sX7vvfccjvu3337Tzz//bDfEfP78+QoMDFSdOnUcbsdV8TjD0f3qrrj69OmjESNGaPbs2fr7779VvHhxtW3bNsv6FSpU0PPPP68vvvgiw9D9q1WsWFHh4eH67LPPNGLECFv5wYMHtW7dOrtzRadOnbRgwQKlpaWpQYMGN/V+rm7TkWP9epw5trLq847G0aJFC3322Wf66quv7IaIz58/P1uxZ1fBggXVoUMHXbp0Sd26ddNvv/2mqKioLM+JDRs2lL+/vz7++GPbDOe68iPkd999p7vvvjtbcThzvklnsVhUs2ZNvfnmm5o9e/Z1+yeAvI+kG0Cu1a5dO5UoUUKdO3dWpUqVZLVatWPHDk2aNEkBAQF68skn7eoXKlRIDz74oKZNm6aoqCh17tw529uuXr26JGnq1Knq16+ffHx8VLFiRaeugr300kuKi4tTo0aN9MQTT6hixYq6ePGi9u/fr2+++UbTp09XiRIlFBgYqKioKH355Zdq1aqVihQpomLFimV4pI0kBQQEaNKkSXr44YfVunVrPfLIIwoLC9PevXv1888/65133sn2e3ZEp06dtHDhQg0ZMkR33323Dh06pJdfflkRERHas2dPttqcNGmSAgMDNWTIEJ07d06jRo1S48aN9eijj2rAgAHasmWLmjZtqoIFC+ro0aP68ccfVb16dVuCXr16dS1cuFDTpk1T3bp15eXlleWPDo0aNVLhwoU1ePBgjR07Vj4+Ppo3b55+/vlnh+ONjIxUly5dFBMTo4iICH388ceKi4vTa6+95vRzsCtVqqSyZcvq3//+t4wxKlKkiL7++ussh9p6e3urWbNmTt3XfTVH96uzcTmqUKFC6t69u2bPnq2zZ89q5MiRdo//++WXXzRs2DDdc889Kl++vHx9ffXdd9/pl19+ue5VRC8vL8XGxmrQoEG6++679dBDD+ns2bOKjY1VRESE3TZ69+6tefPmqWPHjnryySd1xx13yMfHR4cP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od1//PGHzp49q6pVq8rb21uVK1fW+vXrNWDAANt6GzduVOXKlR2OO3/+/LJarRn2YVBQkLp3767u3btr2LBhqly5snbv3q06derI19fXdiX+6ngz+yx+/PFH/ec//1Hnzp0lSYcOHdLJkydt+/bq/X/1+9i0aZNq1aqV5Wdbp04dzZs3z255+giFLVu2qEyZMtKVZHnPnj2qUqVKlm05MrzcmT526tQpHTp0SMWLF5e3t7fKlSunyMhI7d27166dvXv3qn379k7338uXL2e6zqhRozR8+HCVLl1a27dvV2pqqq1eamqqLBaL7fXu3btVokSJDLcIXP1+vby8VLRoUdtV8XTXvs6Kx5PuaxljsryJPf1Di4iIyHJ9Pz+/TIeee3l55Zr/oVssllwVL26d7PQJ+hNcjT51DXd/n87j+5n+BFfzVJ/y8vKye8zt1fHcStnZ3qFDh/T0009r0KBB2rZtm9555x1NmjQpw/uwWCxq06aNatSoofvvv19TpkxRamqqhgwZombNmtlmhx47dqxatWqlsmXLqnfv3kpNTdW3335rd0XbYrGoUaNG+vbbb22J99XPVb72Pfn4+OiJJ57QW2+9JR8fHw0bNkx33nmnbWj8qFGjdO+996pu3bpq1aqVvv76ay1cuFArV650OO7o6Gjt27dPP//8s0qUKKGAgADNmzdPxhjdeeedKlCggD7++GP5+/urdOnSslgsKl26tH744Qf16dNHfn5+KlasmG2/XftZlCtXTh9//LHq16+vxMREjRo1Sv7+/hn6zH//+1/Vr19fTZo00bx587Rp0ybNmDEjy8+2ffv2eu6553T27FkVLlzYbtsvv/yyihUrprCwMI0ZM0bFihVT9+7ds2yrRIkSDvWZzJw7d04xMTHq2bOnIiIitH//fj333HO22evT3+eoUaM0duxY1apVS7Vq1dKcOXP0+++/67///a8trlatWtl+5JCk5557Th06dFDJkiWVlJSkBQsWaM2aNVq2bFmG9xIXF6c9e/Zo7ty5slgsatCggX7//XctW7ZMhw4dUr58+VSpUiXbej/++KPatm2b5T5Jjzuz84qj5xmPJt3X23nX+9C6d+/uybABAACAPOPBBx9UcnKy7rjjDuXLl0+PP/64Hn300UzrWiwWLV68WI8//riaNm0qLy8vtW/fXm+//batTvPmzfX555/r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Y8eO6/7Vq1cvy/XbtWunyZMna8+ePbJarYqLi9OXX36po0ePSpICAwPVsGFDvfzyy/rnn3+Ulpamjz/+WBs3brTVuZGjR4/q22+/tdsnFotFn332mV5++WVVqVJFtWvX1kMPPaRXX31VrVq1kr+/vxo3bqyKFSvqnXfesWuvYMGCKlSoUKajDpCzMJEakMM9+uijng4BAADkUZUqVVKjRo00c+ZMtWjRQn/99Zd++OEHrVixwlZnxowZateunW2oeMeOHTVw4ECtXLlSbdu2tdWrWLGivvrqK7v2AwMDs9x2cnJyhivH6Ro2bJjh9Y4dO7Jsq0iRIipSpIgD7zhzU6dO1SOPPKJKlSrJYrGobNmy6t+/v93Q+48++kgPPfSQihcvrnz58qlOnTrq27evtm3b5tA2Zs+erUKFCqlbt2525U2aNNHmzZttr//880999NFH2r59u5o2barhw4erffv2qlatmpo2baoaNWrY6vr7++vChQvZft+4NbjSDQAAANzGBg4cqC+++EKJiYmaNWuWoqKi1KpVK0lSWlqa5s6dq6VLl8rb21ve3t4qUKCATp8+nWFCNV9fX5UrV87uLywsLMvtFitWTGfOnHE4TovFkuWymx1eHhISosWLF+v8+fM6cOCAfv/9dwUEBKh06dK2OmXLltXatWt17tw5HTp0SJs2bdLly5cVHR19w9iNMZo5c6YeeOAB28zkWdV79NFHNWnSJFmtVm3fvl133323QkND1axZM61du9au/unTpxUSEnLD7cOzuNINAAAA3MbuvfdePfnkk5o/f77mzJmjRx55xJbgfvPNN0pKStL27dvt7i3+/fffdd999+nUqVMqWrRotrZbu3ZtHTt2TGfOnLENZU+3YcMGPfjgg3ava9eunWVbgwcP1r333nvd7RUvXvyGMeXPn1/FixfX5cuXtXDhQvXs2TNDnYIFC6pgwYI6c+aMli9frokTJ96w3bVr12rv3r12k9NlZsaMGSpatKi6dOli+0Hi8uXLtv+mpaXZ6v7111+6ePHidfcLcgaSbiCHO3r0qNLS0pQvXz5FRER4OhwAAJDHBAQEqFevXnruueeUkJCg/v3725bNmDFDd911l2rWrGm3TtWqVTV8+HB9/PHHttm1U1NTdezYMbt6Fosly6vdtWvXVkhIiH766Sd16tTJbtnnn3+uevXqqUmT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",
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Real alpha : 4.49%/yr (t = 2.59)\n",
"Block bootstrap (300) : mean 4.85% | median 4.81% | p = 56.3%\n",
"VAE (300) : mean 14.46% | median 14.12% | p = 99.7%\n"
]
}
],
"source": [
"\"\"\"\n",
"==================================\n",
"Compare bootstrap vs VAE alpha distributions\n",
"==================================\n",
"\"\"\"\n",
"fig, ax = plt.subplots(figsize=(10, 5))\n",
"ax.hist(boot_alphas * 100, bins=30, alpha=0.6, color='steelblue',\n",
" label=f'block bootstrap (p = {p_boot*100:.1f}%)')\n",
"ax.hist(vae_alphas * 100, bins=30, alpha=0.6, color='coral',\n",
" label=f'VAE (p = {p_vae*100:.1f}%)')\n",
"ax.axvline(real_alpha * 100, color='black', linewidth=2, linestyle='--',\n",
" label=f'real {real_alpha*100:.2f}%')\n",
"ax.set_xlabel('Annualized FF alpha (%)'); ax.set_ylabel('# synthetic markets')\n",
"ax.set_title('Synthetic-market alpha: real vs generated histories')\n",
"ax.legend(); ax.grid(alpha=0.3)\n",
"plt.tight_layout()\n",
"plt.savefig('../images/06_synthetic_markets/vae_vs_bootstrap.png', dpi=150, bbox_inches='tight')\n",
"plt.show()\n",
"\n",
"print(f\"Real alpha : {real_alpha*100:.2f}%/yr (t = {real_t:.2f})\")\n",
"print(f\"Block bootstrap (300) : mean {boot_alphas.mean()*100:.2f}% | \"\n",
" f\"median {np.median(boot_alphas)*100:.2f}% | p = {p_boot*100:.1f}%\")\n",
"print(f\"VAE (300) : mean {vae_alphas.mean()*100:.2f}% | \"\n",
" f\"median {np.median(vae_alphas)*100:.2f}% | p = {p_vae*100:.1f}%\")"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "a0fe42d5",
"metadata": {
"execution": {
"iopub.execute_input": "2026-07-31T11:12:51.530423Z",
"iopub.status.busy": "2026-07-31T11:12:51.530244Z",
"iopub.status.idle": "2026-07-31T11:12:51.536802Z",
"shell.execute_reply": "2026-07-31T11:12:51.536199Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saved ../data/processed/synthetic_backtest_results.csv\n"
]
}
],
"source": [
"\"\"\"\n",
"==================================\n",
"Save synthetic-market results\n",
"==================================\n",
"\"\"\"\n",
"pd.DataFrame({'bootstrap_alpha': boot_alphas, 'vae_alpha': vae_alphas}).to_csv(\n",
" '../data/processed/synthetic_backtest_results.csv', index=False)\n",
"print(\"Saved ../data/processed/synthetic_backtest_results.csv\")"
]
},
{
"cell_type": "markdown",
"id": "610b2bc9",
"metadata": {},
"source": [
"## Conclusion\n",
"\n",
"The stress test asks whether the raw-momentum alpha is a path-dependent fluke. The block bootstrap result says it probably is not: the real-panel alpha sits near the middle of the synthetic distribution rather than in an extreme right tail.\n",
"\n",
"- **Block bootstrap:** trustworthy for this purpose because it resamples matched rows of factor scores, residuals, and benchmark factors. It preserves the joint structure of the return panel while changing the order of market history.\n",
"- **Conditional VAE:** useful as a cautionary example, not as the headline result. Generating factor paths and attaching independent residuals can create artificial momentum.\n",
"\n",
"The honest scope is narrower than “we proved momentum works.” The bootstrap keeps the same factor structure and loadings, so it asks whether the strategy is unusually lucky conditional on that structure. It does not test a null world where the momentum premium has been removed.\n",
"\n",
"The next steps beyond this project would be a survivorship-free universe, real fundamental data for value and quality, and a cleaner null model that explicitly removes momentum before running the stress test."
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"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.14.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}