This commit is contained in:
2026-07-03 08:41:22 -04:00
parent ee85b04b00
commit 572fd0e47d
6 changed files with 31 additions and 31 deletions
+6 -6
View File
@@ -18,13 +18,13 @@
"\n",
"\n",
"The main goals in this notebook are:\n",
"1. To construct top-decile long and long-short portfolions (spare weight vectors) from the momentum signal.\n",
"2. To track **turnover** explicitly: $\\|w_t - w_{t-1}|\\|_1$ (the $\\ell^1$ distance between consecutive weights).\n",
"1. To construct top-decile long and long-short portfolios (sparse weight vectors) from the momentum signal.\n",
"2. To track **turnover** explicitly: $\\|w_t - w_{t-1}\\|_1$ (the $\\ell^1$ distance between consecutive weights).\n",
"3. To apply realistic transaction costs: $c \\cdot \\|w_t - w_{t-1}\\|_1$.\n",
"4. To compute performance metrics: Sharpe, Sortino, max drawdown, Calmar.\n",
"5. To run walk-forward analysis: split into 5-year windows and verify performance is consistent across subperiods (not just one lucky stretch).\n",
"6. To regress portfolio returns on Fama-French benchmark factors (OLS projection) to extract alpha (the orthogonal residual).\n",
"7. To test survivorship bias sensitivity: how much return drag from missing/delisted stocks would it take to erate the alpha?\n",
"7. To test survivorship bias sensitivity: how much return drag from missing/delisted stocks would it take to erase the alpha?\n",
"\n",
"### Terms used in this notebook\n",
"\n",
@@ -320,8 +320,8 @@
"## Portfolio Formation\n",
"\n",
"At each rebalance date, we rank stocks by the momentum signal (the vector $c_t$) and form two portfolios:\n",
"- **Long-only**: equal-weight the top declide (top 10% of stocks by momentum score). This is a sparse weight vector with $w_i = 1/k$ for the top $k$ stocks and $w_i = 0$ for the rest.\n",
"- **Long-short (comparison)**: long the top declide, short the bottom decile, equal-weighted on each side with $\\sum w_i = 0$ (dollar-neutral).\n",
"- **Long-only**: equal-weight the top decile (top 10% of stocks by momentum score). This is a sparse weight vector with $w_i = 1/k$ for the top $k$ stocks and $w_i = 0$ for the rest.\n",
"- **Long-short (comparison)**: long the top decile, short the bottom decile, equal-weighted on each side with $\\sum w_i = 0$ (dollar-neutral).\n",
"\n"
]
},
@@ -1089,7 +1089,7 @@
"source": [
"## Walk-Forward Analysis\n",
"\n",
"A single full-sample Sharpe ration doesn't quite tell us whether we have a robust strategy. Walk-forward analysis plits the sample into non-overlapping 5-year windows and computes performance metric in each. A strategy that's positive in *every window* is far more convincing than one that earned all its returns in one lucky period.\n",
"A single full-sample Sharpe ratio doesn't quite tell us whether we have a robust strategy. Walk-forward analysis splits the sample into non-overlapping 5-year windows and computes performance metrics in each. A strategy that's positive in *every window* is far more convincing than one that earned all its returns in one lucky period.\n",
"\n",
"This is pure consistency checking; we're not optimizing any parameters or anything."
]