S&P500 Trading Strategy · Strategy Report

AVALONPLUS — Strategy Report

By Trading Garden

How these figures are calculated
Contents
1.Who is AVALONPLUS suitable for?2.Live trades3.Risk4.Performance5.What it takes6.Where the rest is
Backtest 2000–today at a glance · MES Futures · $10K starting capital · Costs ON
32.5%
CAGR (Reinvest)
–27.7%
Max DD peak equity (Reinvest)
–27.5%
Max DD worst entry
1.18
Calmar (worst entry)
71%
Win Rate (2000–today)
87
Trades 2000–today · 203 since 1963
2–5
Trades per year

1. Who is AVALONPLUS suitable for?

This is a high-risk strategy.

It can be highly profitable — and it carries the risks shown throughout this report. Position sizing is leveraged and derived from your Max-DD setting.

AVALONPLUS is a rule-based, end-of-day strategy for MES and ES futures, with signals derived from the S&P 500 Index (SPX). All examples refer to the MES Future ($5 point value) for simplicity. The system generates approximately 2–5 trades per year.

Net profit, backtest 2000–today$10,000$100,000
With reinvest$18,208,848$19,878,526
Without reinvest$194,217$2,175,482

The difference between the two scenarios arises solely from growing position size and the normalization of position size to realistic values — not from better signals.

Two ways to use it — both tested here
  • Build wealth from a small stake — the highest growth comes from compounding a small account (the $10,000 examples).
  • A rules-based component in a larger portfolio — low correlation and bounded risk, for accounts of $100,000 and above. Judged on risk-adjusted return (Calmar, drawdown) rather than raw CAGR.
Whichever way you use it, a working knowledge of futures, leverage, margin and contract rolls helps. A paper-trading account is a good place to try the signals first.
Suitable if:
  • You would use only capital you can afford to lose entirely.
  • You have at least approximately $10,000 of starting capital for the MES-based allocation, including reserve.
  • You are comfortable with futures, leverage, margin and a suitable broker account.
  • You follow the rules mechanically, even through deep drawdowns.
  • You are patient with low activity, about two to five trades a year.
  • You can hold that discipline over years, not months.
Not suitable if:
  • You may need the money within five to ten years.
  • You would be unable or unwilling to continue after a drawdown of approximately 30%.
  • You plan to withdraw profits regularly.
  • You want daily activity, or you prefer a set-and-forget ETF.
  • You would override or skip signals.

EOD strategy: signal check once daily after market close, approximately two to five minutes of work.

2. Live trades

AVALONPLUS itself went live in May 2026. Its live-trade count is 1. Every completed trade is listed in the Trade Journal.

From AVALON to AVALONPLUS

Its predecessor AVALON ran as a NinjaTrader plugin and has been traded live since March 2020. Its very first live trade was a short into the COVID crash: entered March 6, 2020, closed April 3 at +14.85%. It never ran more than 1.07% against the position. That one was live, not a backtest. Six years of live experience produced AVALONPLUS, rebuilt for Android. The “Plus” stands for improved entry and exit signals and lower drawdown and MAE. AVALONPLUS is the successor to AVALON: the same principle, refined with the insights of the last six years.

AVALON vs. the S&P 500 ETF, 2020 to today

Backtester settings: Reinvest on · Transaction Costs on · Interest on Cash on · Pos. Size 50/50 off · Annual Adjustments off · Normalize Positions on.

AVALONAVALONPLUSS&P 500 ETF
Window2020-01-01 – 2026-09-04
Starting capital$10,000
Trades2526—
Win rate68%69%—
PnL$354,717$2,472,538$16,088
CAGR71.4%/yr128.5%/yr15.5%/yr
Max DD50.3%17.5%34.3%

AVALONPLUS' 26 trades here are a backtest of its current ruleset over this same window — not its live record, which only started in May 2026.

At about 2–5 trades a year, a statistically solid out-of-sample test (100+ trades) would need decades set aside and never touched. See why that isn't practical here and what is used instead.

3. Risk

7 out of 7. On the European risk scale a plain S&P 500 ETF is 4 out of 7. Any product where you can lose more than the amount you invested is 7 — the top class, whatever its volatility. Futures are such a product: an opening gap can jump straight past a protective stop.

You could lose your entire investment. A large gap could cause losses beyond the amount invested.

What the rules actually did — 63 years of backtest with the configuration this app ships. Prices are real ES/MES quotes from 2000 and a reconstruction from the SPX index before that

Full size50/50S&P 500 ETF
Starting capital$25,000$25,000$25,000
Deepest decline, worst entry date, 2000–today−29.5 %−15.5 %−55.8 %
Lowest account balance$17,710$21,236$11,011
Emergency stop triggerednever, in 114 L1 tradesneverno stop exists

What a triggered stop would cost — none of this happened to the backtest

Full size50/50S&P 500 ETF
Starting capital$25,000$25,000—
One stop, by the arithmetic−61 % of the account−30.6 %—
Worked example: August 2011 1−68.5 %−37.9 %—
Lowest account balance$7,854$15,452—
An opening gap jumps the stopmore than the accountmore than half of it—

1 AVALONPLUS produced no signal that week and was flat — the volatility brake missed its threshold by 0.45 points. These figures are a configuration one parameter step away that did enter and was stopped out on August 8, 2011. Real prices, real event, different parameters.

Losses do not add up. Every position is sized from the capital left, so a 28.8 % decline followed by a 61 % stop is 68.5 %, not 90 %.

Position size carries a 3 % gap buffer on top of the worst historical open loss — designed for futures, whose largest weekend gap was −2.98 %.

The parameters were chosen with hindsight. Like any backtested rule set, the indicator periods were selected on the history shown here — not confirmed on data nobody had looked at. The full test is in Methodology & Validation.

To start: $10,000 at full size, $25,000 at 50/50.

Stop Triggers · MES · 1963–2026

L1 Stop triggered
0/114
S1 Stop triggered
0/8
L2 Stop triggered
2/7
L3 Stop triggered
0/74

An L1 stop (–11%) has not been triggered in 63 years (114 trades); nor was the L3 stop (–5.6%) in 74 trades. A first trigger would cost approximately –61% of the trade capital deployed, not of the total account. The L2 stop (–1.5%) was triggered twice, in May 2010 and September 2015 — the only two trades in the whole history that ended at a stop. On SPX prices the stop level is slightly different, so the second one falls a few days later; the count is the same.

Time to Recover

How long a loss lasts before the account is back at its old high is what the app's backtester reports as Time to Recover.

The ETF's longest stretch below a previous high ran 6.0 years (2000-09-19 to 2006-09-18), and it was down 45.6% along the way. For AVALONPLUS the longest such stretch was 3.0 years (2000-08-17 to 2003-08-26). The account stood 2.7% below its previous high in full size and 1.4% in 50/50. Over that period the model took just one trade.

For most of those 1,104 days the account held no position at all and simply earned the cash rate.

The same backtester also runs 14 published S&P 500 rule sets on the same price series and the same costs: S&P 500 trading strategies compared.

Risk comparison

Backtester settings for every figure below: preset 2000 to Date · MES · Reinvest profits on · Transaction Costs on · Interest on Cash on · Annual Adjustments off · Normalize Positions on · prices through 2026-09-18.

ETF
$25,000
50/50
$25,000
full size
$25,000
CAGR8.3%27.2%28.2%
Max DD (worst entry, backtest)55.8%14.2%28.7%
Max DD (catastrophe sim.)55.8%43.0%89.0%
Longest Time to Recover6.0 years3.0 years3.0 years
DD during that recovery45.6%1.4%2.7%
Accounts that can no longer trade—0 in 8,639494 in 8,639

The catastrophe row is not from the backtester. It comes from breaking the strategy on purpose. 105 price series were built in which every second bar was moved by up to a quarter of its average true range, enough that the model picks different trades. Each series was entered on every possible day: 8,639 accounts per mode. The 27 neighbouring parameter sets were run too; their returns stay within 1.5% of each other while their drawdowns spread from 30.9% to 86.4%. The ETF is not distorted, because buy and hold makes no decision that noise could change; its worst case is the entry date instead. The last row counts how many accounts end up below the ~$7,000 a contract needs ($14,000 in 50/50) — below that there is no next trade. The smallest account each mode can be run on is $10,000 for full size and $25,000 for 50/50.

4. Performance

Performance — Three Time Windows

Normalize Positions on — as it is traded; position size stops growing at 500 contracts
PeriodSizingCAGRMax DDSortinoWin rateTrades
Last 3 yearsFull size104.1%19.5%3.3264.3%14
50/5047.1%7.6%4.10
Long Only (ETF)21.1%18.4%~0.30n/a
Last 10 yearsFull size81.1%11.1%6.9876.5%34
50/5048.7%9.9%3.79
Long Only (ETF)15.5%34.3%~0.30n/a
2000 to todayFull size28.2%13.7%3.5771.3%87
50/5027.2%14.9%3.17
Long Only (ETF)8.3%55.8%~0.30n/a
Normalize Positions off — the same trades without that limit; theoretical. Everything else unchanged: Transaction Costs on · Interest on Cash on · Pos. Size 50/50 off · Annual Adjustments off · Normalize Positions off · prices through 2026-09-18
PeriodSizingCAGRMax DDSortinoWin rateTrades
Last 3 yearsFull size104.1%19.5%3.3264.3%14
50/5047.1%7.6%4.10
Last 10 yearsFull size101.1%20.2%4.1676.5%34
50/5048.7%9.9%3.79
2000 to todayFull size64.9%28.9%3.7371.3%87
50/5033.5%14.9%3.33

All three start from the same $25,000, so the columns are comparable — 50/50 cannot be run on less. MES futures · profits reinvested · costs and interest on idle cash included · before tax · Sortino annualized, risk-free rate 4 % p.a.

Sortino is shown instead of Sharpe. The system trades 2–5 times a year, so most months return exactly 0 % and inflate the standard deviation that Sharpe divides by. Sortino counts only downside moves. The win rate is one figure per window — 50/50 changes the size of each position, not which trades are taken.

The two tables show the same trades. The first has Normalize Positions on — the app's default: position size stops growing once it reaches 500 contracts. That is how the strategy is actually traded, and it is why the long windows look tamer than they are. The second has Normalize Positions off, which is not tradable in Micro contracts but shows what the rules did on their own. An account that large would move to the full-size E-mini, where the same exposure needs a tenth of the contracts — see MES or ES.

Max DD here is the deepest peak-to-valley of one path. Risk shows a different figure: the worst of 87 runs, each starting at a different trade.

Full size, 50/50 and a buy-and-hold S&P 500 ETF from $25,000: account value on a log scale with the drawdown of each below

Logarithmic scale — on a linear one the ETF would be a flat line. The lower panel is sampled at trade exits, so it misses lows in between; the dotted lines mark each one’s true maximum.

The same three from $25,000 without the 500-contract limit

The same trades without the 500-contract limit. Not tradable in Micro contracts — an account that size moves to the full-size E-mini.

5. What it takes

A futures account, one order after the close when a signal fires, and enough capital to carry a single contract.

One contract therefore ties up $7,000 at the current index level (7,681). The smallest account this strategy can be run with is $10,000. At the worst entry date in the test data the balance fell to $7,137, only $216 above the cost of the next contract. 50/50 needs $25,000. One contract becomes possible at $13,900. Only from $25,000 did the account survive the worst stretch in the test data, the August 2011 downgrade, which took a full-size account down 68 %. The calculation is constrained by four inputs: the stop distance (worst MAE + gap buffer), the margin, the price floor and the 500-contract limit of Normalize Positions. Anyone who wants to risk 1 % per trade cannot trade this strategy with a small account at all — the smallest possible position already risks far more.

6. Where the rest is

How the position size is derived, how the entry date changes the outcome, what the bias tests checked, what Normalize Positions costs, and the full glossary: Methodology & Validation.