Research project
Systematic swing-trading research
Turning a discretionary swing-trading process (buying oversold dips in large US companies and scaling in and out over one week to three months) into a testable system, then trying hard to prove it wrong.
Everything here is real and unedited. Every number on these pages is generated automatically by the live system and published as it is: losses, mistakes and bad days included. Nothing is selected, smoothed, back-filled or hidden, and nothing is changed by hand to make it look better. The money is simulated (paper trading); the market data, the news and the AI agents' decisions are real. This is a personal research project, not a trading service, and nothing here is investment advice. The research results below are copied from the project's write-up, including the test the strategy failed.
Method
What was built
Point-in-time S&P 500 membership, so the backtest never buys a stock before it joined the index, with split-adjusted prices and checks for reused tickers.
An event-driven backtester with next-day fills, trading costs, stops that gap, buying and selling in steps, and idle cash parked in Treasury bills.
Signals from price trends, sector and market comparisons, beta-adjusted dip sizing, point-in-time analyst consensus, a DCF model built from SEC filings with bear, base and bull cases, and AI classification of why each news-driven drop happened.
The rule
Every idea had to earn its place
Each component had to beat random picks from the same setups, and help in both halves of the 2015–2021 development period, before it was kept.
2022–2026 was held back and run once, after every choice was fixed. 2006–2014 was never looked at during development.
Results
Held-out test, 2022–2026
Run once, with idle cash in Treasury bills.
| Yearly return | Sharpe | Worst drop | |
|---|---|---|---|
| Strategy (v2) | 12.2% | 1.17 | −10.6% |
| S&P 500 (SPY) | 12.3% | 0.76 | −24.5% |
| Random picks from the same setups (median) | 0.5% | 0.10 | −16.8% |
About the same yearly return as the index, with a higher Sharpe ratio and less than half the worst drop, and far ahead of random dip-buying.
But it failed the untouched 2006–2014 test
| Yearly return | Sharpe | Worst drop | |
|---|---|---|---|
| Strategy (v2) | 3.3% | 0.34 | −44.4% |
| Random picks from the same setups (median) | 8.2% | 0.66 | – |
| S&P 500 (SPY) | 7.7% | 0.46 | −55.2% |
The selection score did worse than random, mostly in the 2008 crash and the 2009 rebound, which was led by the lowest-quality stocks: the opposite of what the score prefers. The edge is concentrated in the post-2015 market it was developed on, so the results do not justify trading real money. That is the main finding, and why live paper trading is the next test.
Rejected
Ideas that failed
Regime switching. More positions in rising markets looked better on every measure in 2015–2021 and collapsed in 2022–2026: overfitting to a handful of market cycles.
Picking dips by DCF value. It made results worse: the cheapest stocks had the worst losses (value traps). Only a narrow margin-of-safety rule was kept.
Others. A quality filter on cash flow and debt was worse in every period. A news filter, a breadth rule and a long-term DCF sleeve were also rejected.
Limits
What the data can't rule out
Survivorship bias. Free price data is missing for many companies that later failed (only 55–67% of 2005–2010 index members), so older results are likely too optimistic.
Reused test periods. Sectors are today's classifications, and 2022–2026 has since been used to check later ideas, so it is no longer untouched.
Live test
Paper trading since 12 October 2026
As of 2026-10-30.
A few weeks of live results say almost nothing about skill. This is the start of an honest out-of-sample record.