Method
Rule / pseudocode
_The original post documented that holding momentum positions through earnings events caused sharp reversals even on beats. Sector ETFs (XLK, XLF, XLE, XLV, XLI, XLY, XLU, XLRE, XLB, XLC) experience clustered earnings in Jan/Apr/Jul/Oct. Filtering the two sectors with the most earnings concentration during those months may preserve momentum while shedding binary event risk. Original poster had live data validating the effect in two XGBoost models._
Out-of-sample equity curve
Out-of-sample performance
Hypothesis
A monthly-rebalance 12-1 momentum strategy on US sector ETFs that avoids the two sectors in peak earnings season (XLK & XLF in Jan/Apr/Jul/Oct) achieves better OOS Sharpe than unfiltered sector momentum.
Method
Entry: Monthly rebalance: long top-3 sectors by 12-1 momentum, short bottom-3 · Exit: Monthly rebalance · Train/test split: 70/30 date-ordered (IS through 2019-12, OOS 2020-01 onward) · Costs (bps): 10
Results
Out-of-sample Sharpe was -1.22, versus -1.83 in-sample. A bootstrap test returned p = 1.000 (not significant). Walk-forward Sharpe stayed positive in 0 of 5 folds. Worst out-of-sample drawdown was -80.92%.
Analysis
The corrected backtest uses a daily mark-to-market equity curve for this continuously-invested long-short strategy: long the top three SPDR sector ETFs by 12-1 momentum, short the bottom three, rebalanced monthly with XLK and XLF excluded from ranking in January, April, July and October. Data runs from 2005 to May 2026, split 70/30 by date (IS through December 2019, OOS from January 2020 onward). Costs of 10 bps are deducted on the first trading day of each calendar month to reflect round-trip rebalance frictions.
Both sample periods produced deeply negative returns. In-sample Sharpe was -1.826 with a near-total drawdown of -98.6%; out-of-sample Sharpe was -1.215 with a drawdown of -80.9% and an annualised loss of 19.4%. The marginal OOS improvement over IS is not a sign of robustness — the signal is directionally wrong in both periods, and the OOS win rate of 48% confirms the strategy loses more on down days than it gains on up days.
The walk-forward validation ran five expanding folds across the full dataset. Every fold produced a negative Sharpe: -1.18, -1.93, -3.00, -1.66 and -1.54. OOS consistency is 0% — there is no sub-period in the 21-year history where this construction was profitable. The combined walk-forward Sharpe of -1.46 is worse than the headline OOS figure, suggesting the strategy deteriorates further when evaluated in strict rolling fashion.
The corrected block-bootstrap significance test (demeaned returns, zero-edge null, block size 5) returns a p-value of 1.0: every one of the 1,000 simulated zero-edge portfolios outperformed the observed Sharpe of -1.27. The original buggy test reported p ≈ 0.5 because it resampled raw returns without demeaning, centring the null distribution on the observed Sharpe — a tautology that renders the test uninformative. With the corrected method, the result is unambiguous: this strategy generates reliably negative returns, not noise.
The fundamental problem is that 12-1 momentum at the US sector ETF level appears mean-reverting over this period rather than trend-following. The strategy systematically goes long sectors that have recently outperformed (and subsequently revert) and short sectors that have recently underperformed (and subsequently recover). The earnings-season filter for XLK and XLF does not address this structural issue. Verdict: REJECTED.
Source
Originated from discussion on r/manual.
Evidence
Walk-forward Sharpe by fold
---
_Generated by labs-algo-trading. Automated research — not financial advice. Backtests overfit; treat verdicts as hypotheses._