The thesis
Dual-momentum is one of the oldest ideas in systematic trading, and this implementation keeps it honest: hold the strongest trending names by 60-day return, and exit the moment a trend breaks. The universe is 24 large-cap US names spanning tech, financials, healthcare, staples, and energy — enough breadth to rotate between leaders without drifting into illiquid territory. It is a classic "cut losers, ride winners" design, and the headline numbers look the part.
The backtest
Over 451 trading days the strategy returned 23.5%, finishing at $12,349.63 on a $10k base — a 12.52% CAGR. The Sharpe of 0.95 is respectable but not spectacular, and the 15.67% max drawdown is a real reminder that trend-following pays for its upside with sharp pullbacks when leadership rotates.
Two figures deserve a hard look. The win rate is just 28.79% across 136 trades. That is not a flaw — it is the signature of momentum, where a minority of large winners carry the book — but it means the equity curve depends on letting those few trades run. The second is turnover of 2,638%, which is aggressive. Fees were modest here ($136, no FX cost), but in a higher-friction or wider-spread environment that churn would bite.
Validation: the part that fails
This is where balance matters. Our walk-forward gate did not pass. Across four folds, three were positive, but fold 2 (Jan–Jul 2025) lost 7.31% with a −1.05 Sharpe and a 17.15% drawdown across 60 trades — the strategy got whipsawed badly in that regime. Folds 3 and 4 recovered strongly (25.59% and 13.34%), so the out-of-sample return of 13.34% and OOS Sharpe of 2.15 are encouraging.
The statistical picture is mixed. The Probabilistic Sharpe Ratio is a healthy 0.893, but the Deflated Sharpe Ratio is only 0.476 — and once you account for the 6 trials behind this result, that DSR says we cannot confidently rule out luck. A strong PSR alongside a weak DSR is the textbook footprint of a strategy that looks good in-sample but may be partly a selection artifact.
Right now: fully in cash
The last six scheduled runs (Oct 15–22) all report 0 executed, 0 rejected, total $10,000 — the strategy is sitting entirely in cash. For a trend-follower this is not a malfunction; it means no name currently clears the 60-day momentum threshold, so it is correctly standing aside rather than forcing trades. The flip side is that it is contributing nothing while it waits, and we have no fresh fills to judge its live behaviour against the backtest.
Verdict
The engine is sound and the design is disciplined — the flat-cash posture is evidence the exit logic works. But the failed validation gate, the fragile fold 2, and the sub-0.5 DSR mean this stays a watch, not a conviction strategy. We would want to see it deploy capital and survive at least one live regime shift before trusting the backtest's 23.5% at face value.