Range breakoutlong
Backtest Results @ SPY β€’ 1 Hour

This strategy enters once price action beraks through the range of the last 20 candles, while accompanied with elevated trading volume. It exits once price closes below an SMA(20). The idea is to follow trends, riding momentum confirmed by volume.

Equity Curve

Backtest covers 5.7 years of SPY β€’ 1 Hour (SPDR S&P 500) data, from November 8, 2019 to July 25, 2025.

Equity curve is the strategy's performance over time. You should compare it to the asset's Buy & Hold performance. In general, you want the blue area to be well above the gray area.

Drawdown is how much losses (realized or unrealized) the strategy has had if compared to the highest equity peak. Compare this to the asset's drawdown to see whether your strategy does a decent job of isolating you from downside volatility. In general, the red area must be well within the gray area.

Equity Curve
Strategy
Asset
Strategy Drawdown
Asset Drawdown

So, we have backtested Range breakout on 5.7 years of SPY β€’ 1 Hour candles.Β This backtest resulted in 183 positions, with the average win rate of 40% and reward-risk ratio of 1.96.Β If you assume that 1.96 reward-to-risk ratio holds, you need a minimum win rate of 33.8 to be profitable. So you're looking good so far.Β The key metrics are as follows:

  1. Total Return: Total Return: 28.00% vs 107.00% for the asset
  2. Max Drawdown: Max Drawdown: -17.40% vs -35.10% for the asset
  3. Exposure: Exposure: 36.30% time in the market
  4. Win Rate: Win Rate: 40.0%, vs 33.8% minimum
  5. Reward/Risk Ratio: Reward/Risk Ratio: 1.96

With that exposure in mind, you can tell that for 36% time-in-market, you get 26.17% of the asset upside potential, and 49.57% of the asset downside potential.

Range breakout: enter a position when

All of the following: # Papa
  60min Chart(high) > 60min Range (20, 0), High (1 candles ago)
  All of the following: (within 5 candles)
      60min Relative Volume (20, SMA, 1) > 1.5

Range breakout: exit a position when

All of the following: # Delta
  60min Chart(close) < 60min Range (20, 0), Middle

Range breakout @ SPY β€’ 1 Hour (28.0%) backtest results explained by Alex C

Alex C

Author

The backtest results show some interesting patterns, but I am not completely convinced about the strategy. The win rate of 40% with a risk/reward ratio of 1.96 is mathematically viable - this reflects in the positive expectancy of 0.2. However, the strategy significantly underperforms buy & hold (28% vs 107%), which makes me skeptical about its real-world application.

What concerns me most is the high maximum drawdown of 17.4% relative to the total profit. This suggests the strategy might be too risky for its returns. The Sharpe ratio of 0.28 is quite low - I would normally want to see at least 0.5 for a strategy to be considered. The volatility metrics show that while the strategy reduces overall volatility compared to the underlying asset (7.79% vs 17.55%), it doesn't compensate enough in terms of returns.

The one positive aspect I see is the healthy win rate leeway of 39.66% above the minimal required win rate. This suggests the strategy has some robustness against deteriorating market conditions. But with a maximum losing streak of 8 trades, one needs significant psychological strength and capital to survive such periods. I would recommend to either adjust the exit conditions to reduce the maximum drawdown or look for additional filters to improve the entry precision.

Tabular metrics of Range breakout backtested on SPY β€’ 1 Hour

Total Trades183Net Profit28.0%Buy & Hold Profit107.0%
Win Rate40%Reward/Risk Ratio1.96Max Drawdown-17.4%
Asset Max Drawdown-35.1%Exposure36.3%Avg Candles in Position18.8
Sharpe Ratio0.28Sortino Ratio0.47Realized Volatility7.79%
Max Winning Streak3Avg Winning Streak1.4Max Losing Streak8
Avg Losing Streak2.1Avg Trades per Month5.3Avg Trades per Day0.2
Return Std Dev1.4Loss Std Dev0.6Win Std Dev1.3
Expectancy0.2Beta0.18

All backtests for Range breakout

backtestexposurepeformance vs assetdrawdown vs assetwin%reward/risk
BTCUSDT β€’ 1 Minute
26%(0.4%/-0.5%) -0.80x(-2.3%/-4.5%) 0.51x461.3
EURUSD β€’ 1 Minute
22%(-0.5%/0.9%) -0.56x(-0.6%/-0.7%) 0.86x222.8
GLD β€’ 1 Minute
32%(0.6%/-1.4%) -0.43x(-1.9%/-4.1%) 0.46x381.8
NVDA β€’ 1 Minute
25%(7.8%/20.4%) 0.38x(-3.7%/-5.3%) 0.70x343.0
PLTR β€’ 1 Minute
28%(1.3%/15.0%) 0.09x(-5.4%/-12.9%) 0.42x361.9
SPY β€’ 1 Minute
32%(1.6%/6.6%) 0.24x(-1.1%/-1.5%) 0.73x352.4
TSLA β€’ 1 Minute
26%(0.7%/-0.2%) -3.50x(-12.8%/-19.2%) 0.67x351.9
WMT β€’ 1 Minute
31%(-0.5%/3.3%) -0.15x(-3.2%/-5.1%) 0.63x322.0
BTCUSDT β€’ 10 Minutes
33%(10.5%/14.3%) 0.73x(-4.9%/-12.1%) 0.40x362.4
EURUSD β€’ 10 Minutes
23%(1.1%/1.8%) 0.61x(-1.2%/-4.3%) 0.28x391.8
GLD β€’ 10 Minutes
38%(9.4%/35.8%) 0.26x(-5.4%/-8.3%) 0.65x372.2
NVDA β€’ 10 Minutes
30%(19.8%/37.4%) 0.53x(-28.5%/-42.8%) 0.67x461.4
PLTR β€’ 10 Minutes
31%(43.5%/467.7%) 0.09x(-32.3%/-46.5%) 0.69x401.9
SPY β€’ 10 Minutes
33%(5.1%/13.1%) 0.39x(-9.7%/-20.7%) 0.47x391.8
TSLA β€’ 10 Minutes
28%(30.7%/25.4%) 1.21x(-21.4%/-55.3%) 0.39x401.9
WMT β€’ 10 Minutes
32%(23.2%/39.5%) 0.59x(-5.3%/-23.8%) 0.22x412.1
BTCUSDT β€’ 1 Hour
34%(0.5%/70.3%) 0.01x(-18.7%/-30.6%) 0.61x342.0
EURUSD β€’ 1 Hour
30%(1.6%/7.1%) 0.23x(-6.8%/-9.0%) 0.76x342.1
GLD β€’ 1 Hour
38%(39.3%/122.5%) 0.32x(-19.5%/-22.2%) 0.88x392.2
NVDA β€’ 1 Hour
44%(555.6%/3243.4%) 0.17x(-52.5%/-68.0%) 0.77x462.1
PLTR β€’ 1 Hour
38%(449.7%/1466.7%) 0.31x(-56.3%/-86.6%) 0.65x432.4
SPY β€’ 1 Hour
36%(28.0%/107.0%) 0.26x(-17.4%/-35.1%) 0.50x402.0
TSLA β€’ 1 Hour
39%(1353.0%/1305.7%) 1.04x(-40.8%/-75.1%) 0.54x393.1
WMT β€’ 1 Hour
33%(60.9%/145.2%) 0.42x(-15.7%/-26.9%) 0.58x392.4
BTCUSDT β€’ Daily
35%(549.0%/1346.8%) 0.41x(-54.7%/-76.6%) 0.71x473.3
GLD β€’ Daily
32%(83.3%/592.8%) 0.14x(-21.7%/-45.3%) 0.48x481.8
NVDA β€’ Daily
32%(6469.1%/396269.9%) 0.02x(-55.8%/-90.0%) 0.62x502.7
SPY β€’ Daily
22%(90.1%/1344.4%) 0.07x(-15.9%/-56.7%) 0.28x492.3
TSLA β€’ Daily
30%(2791.1%/24273.6%) 0.11x(-42.7%/-75.0%) 0.57x424.8
WMT β€’ Daily
30%(30.4%/10116.3%) 0.00x(-67.6%/-50.6%) 1.34x391.8