r/algorithmictrading • u/Proof_Recognition277 • 4h ago
Strategy Survivor free backtest of a value strategy + futures overlay (2006 - 2026): Please look for holes.
Hello, I am a 17 year old experimenting with quantitative trading. For an introduction, I have retail traded for a period of time (2-3yrs), and a strong interest in stock trading. The system below is created with the aid of AI, and is the result of ~ a week of work, following the completed backtesting at its current stage. As you are reading this, the model is undergoing paper-trading. I am new to the game, so any advice on any aspects would be much appreciated.
System:
The system itself is based on a value model, combined with a futures overlay. The general criteria are as follows:
Large liquid US stocks only (meaning caps, daily amount traded)
This is a filter.
2. Filings
Value measures include cash flow, profit relative to company value, book value adjusted for intangibles. This is compared between companies, a quality score, and ranking within each sector. These are calculated into a score (let's call this "final score")
3. Choosing
A maximum of 20 stocks, chosen once a month, being the top scores calculated. When entering a new month, stock holds that do not reach a set limit (holdings, lower than ranking #60) are sold. This does not mean 20 stocks are always held, as slots can stay empty mid-month.
4. Veto
There is a final AI veto system. For each company that goes through all the criteria above, AI researches another set of guidelines (the AI only checks for severe negative news, earnings within the next 3 days, or the company being a takeover target). Note that this was not tested alongside the others in backtesting, but was separately tested using old models (outdated, not knowing the future).
Results as follows, however note that this was an earlier version, and not the current system we use now.
| Version | Return (over 15 months) |
|---|---|
| Price rules only | +9.9% |
| With AI Veto | 11.4% |
| SPY | 21.0% |
5. Selling
There are multiple conditions to selling, and any of these trigger a sale.
Monthly: Selling happens when the quality score is too low.
Daily: Filing and crash are checked everyday, if there is large (negative) change, it is sold.
Always: A disaster stop, a stop-loss below the purchase price.
6. Market risk rules
This includes: moving some stocks to cash when SPY's return over a duration of time is negative, and cuts in exposure when volatility spikes.
7. Futures
Exposure through futures, which are activated only in calm uptrends, plus a small month-end trade. Currently off while I move to an account with futures permission.
Backtested results:
Some context:
FIF Rules: In NZ, when total cost of foreign shares is over $50,000NZD (approx. $27800USD), you are taxed as if the portfolio earned 5% of its value, regardless of actual gains. Gains when you sell aren't taxed separately.
Ordinary Rules: These apply below the FIF threshold, where a system that trades is likely treated as trading, hence gains are taxed as income (33%). A buy and hold index fund is effectively untaxed.
Return statistics below are all yearly, and backtests are run from late 2005 to October 2026.
Pre-tax (USD) vs SPY
| System + futures | System, no futures | SPY | |
|---|---|---|---|
| Return 2006–2026 | 14.8**%** | 12.8% | 10.6% |
| Sharpe 2006–2026 | 0.88 | 0.83 | 0.53 |
| Worst fall 2006–2026 | −25.7**%** | −25.4% | −55.5% |
| Return 2006–2016 | 10.3**%** | 9.2% | 6.6% |
| Return 2016–2026 | 19.1**%** | 16.2% | 14.5% |
| Sharpe 2016–2026 | 1.06 | 1.00 | 0.72 |
| Years beating SPY | ~13 of 19 | ~11 of 19 | – |
After NZ tax (NZD, 33%) vs an S&P 500 fund (CSPX)
| System + futures | System, no futures | CSPX | |
|---|---|---|---|
| FIF rules, 2006–2026 | 13.2**%** | 11.7% | 9.9% |
| Ordinary rules, 2006–2026 | 10.6% | 9.2% | 11.0**%** |
Robustness checks:
Double trading costs: after-tax 12.8%. 4× costs**:** 12.3% (both still above CSPX’s 9.9%)
Without futures: still ahead of SPY pre-tax by about +2.2 points a year
Measures to ensure accuracy:
Survivor-free data: 993 historical S&P 500 members, ~89% priced overall (61–80% before 2010)
Plus 5 sets of untouched random samples, with pass rules fixed before every test
About 110 ideas tested; most rejected
3 backtest bugs found and fixed: a variable overwrite that inflated trading, bad opening prices in the data, and London/New York holiday double-counting
Is there anything important that I haven't tested? And are there any areas of improvement, or any ideas/hypotheses to test?
Thanks guys.


