Trend-Following Backtester · Guide · Assets 한국어
Assets
Apple (AAPL) backtest
Over forty years of daily bars, spanning several crashes and recoveries — enough history to see how a strategy behaves when things break.
Results by strategy
1 of 10 beat buy and hold (CAGR 18.6%, drawdown -82.2%). Sorted by CAGR.
| Strategy · parameters | CAGR | Max drawdown | Sharpe | Calmar | Total return | Trades | Time in market |
|---|---|---|---|---|---|---|---|
| Donchian channel breakout entryN=19, exitN=26 |
20.1% | -53.6% | 0.74 | 0.37 | 4287.1x | 211 | 64% |
| Supertrend period=26, mult=3.4 |
18.1% | -55.7% | 0.72 | 0.33 | 2038.6x | 280 | 57% |
| EMA crossover fast=3, slow=130 |
17.5% | -79.3% | 0.68 | 0.22 | 1615.4x | 237 | 64% |
| SMA crossover fast=6, slow=80 |
17.2% | -73.8% | 0.67 | 0.23 | 1439.5x | 253 | 61% |
| Parabolic SAR step=0.005, maxStep=0.04 |
17.2% | -63.7% | 0.69 | 0.27 | 1420.3x | 308 | 57% |
| Bollinger band breakout n=38, k=1.5 |
16.2% | -64.8% | 0.71 | 0.25 | 957.7x | 302 | 45% |
| ROC momentum n=39, threshold=-0.04 |
15.9% | -83.2% | 0.61 | 0.19 | 857.9x | 561 | 70% |
| Keltner channel breakout emaPeriod=43, atrPeriod=16, mult=2.8 |
12.5% | -55.1% | 0.63 | 0.23 | 215.3x | 202 | 37% |
| ADX / DI directional period=40, threshold=15 |
11.2% | -48.9% | 0.60 | 0.23 | 128.1x | 198 | 30% |
| MACD fast=16, slow=58, signal=23 |
10.1% | -65.5% | 0.48 | 0.15 | 82.9x | 454 | 52% |
| Buy & hold | 18.6% | -82.2% | 0.61 | 0.23 | 2402.1x | 1 | 100% |
The rules, strategy by strategy
Donchian channel breakout
A new high means a trend starting; a new low means it’s over (turtle-trading style).
- Buy Buy on a breakout above the highest high of the last 19 days
- Sell Sell when price breaks below the lowest low of the last 26 days
- CAGR
- 20.1%
- Max drawdown
- -53.6%
- Sharpe
- 0.74
- Trades
- 211
- Time in market
- 64%
- Win rate
- 51%
Supertrend
Trades the direction of a volatility-based trend line that trails below/above price.
- Buy Buy when price moves above the trend line (flips up) — 26-day volatility, 3.4× band
- Sell Sell when price drops below the trend line (flips down)
- CAGR
- 18.1%
- Max drawdown
- -55.7%
- Sharpe
- 0.72
- Trades
- 280
- Time in market
- 57%
- Win rate
- 51%
EMA crossover
Uses two exponential averages (more weight on recent prices) and trades their crossover.
- Buy Buy when the 3-day EMA crosses above the 130-day EMA
- Sell Sell when the 3-day EMA falls below the 130-day EMA
- CAGR
- 17.5%
- Max drawdown
- -79.3%
- Sharpe
- 0.68
- Trades
- 237
- Time in market
- 64%
- Win rate
- 51%
SMA crossover
When the short average rises above the long average, it reads that as an uptrend starting.
- Buy Buy when the 6-day average price crosses above the 80-day average
- Sell Sell (to cash) when the 6-day average falls below the 80-day average
- CAGR
- 17.2%
- Max drawdown
- -73.8%
- Sharpe
- 0.67
- Trades
- 253
- Time in market
- 61%
- Win rate
- 51%
Parabolic SAR
Trades around the Parabolic SAR dots that accelerate toward price.
- Buy Buy when price rises above the SAR dots
- Sell Sell when price falls below the SAR dots
- CAGR
- 17.2%
- Max drawdown
- -63.7%
- Sharpe
- 0.69
- Trades
- 308
- Time in market
- 57%
- Win rate
- 51%
Bollinger band breakout
Breaking above the upper band (average plus a multiple of volatility) signals a strong move up.
- Buy Buy when the close breaks above the upper band of the 38-day average (1.5× volatility)
- Sell Sell when the close falls back to the 38-day middle average
- CAGR
- 16.2%
- Max drawdown
- -64.8%
- Sharpe
- 0.71
- Trades
- 302
- Time in market
- 45%
- Win rate
- 51%
ROC momentum
Rides the trend when recent return (momentum) over a window is above a threshold.
- Buy Buy when the last 39-day return is greater than -4%
- Sell Sell when the 39-day return drops to -4% or below
- CAGR
- 15.9%
- Max drawdown
- -83.2%
- Sharpe
- 0.61
- Trades
- 561
- Time in market
- 70%
- Win rate
- 50%
Keltner channel breakout
Breaking above the channel top (average plus a multiple of volatility) signals an upside breakout.
- Buy Buy when the close breaks above the 43-day average + 2.8× volatility (Keltner top)
- Sell Sell when the close falls back to the 43-day average
- CAGR
- 12.5%
- Max drawdown
- -55.1%
- Sharpe
- 0.63
- Trades
- 202
- Time in market
- 37%
- Win rate
- 51%
ADX / DI directional
Looks at both the direction and the strength of the trend; holds only in a strong uptrend.
- Buy Buy when up-direction (+DI) beats down-direction (−DI) and trend strength (ADX, 40-day) is ≥ 15
- Sell Sell when direction flips or the trend weakens (ADX < 15)
- CAGR
- 11.2%
- Max drawdown
- -48.9%
- Sharpe
- 0.60
- Trades
- 198
- Time in market
- 30%
- Win rate
- 51%
MACD
Looks at the gap (MACD) between a short and long average crossing its own signal line.
- Buy Buy when the MACD line (16/58) crosses above its 23-day signal line
- Sell Sell when the MACD line crosses back below the signal line
- CAGR
- 10.1%
- Max drawdown
- -65.5%
- Sharpe
- 0.48
- Trades
- 454
- Time in market
- 52%
- Win rate
- 50%