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.
Backtest covers 32.5 years of SPY β’ Daily (SPDR S&P 500) data, from January 29, 1993 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.
So, we have backtested Range breakout on 32.5 years of SPY β’ Daily candles.Β This backtest resulted in 86 positions, with the average win rate of 49% and reward-risk ratio of 2.25.Β If you assume that 2.25 reward-to-risk ratio holds, you need a minimum win rate of 30.8 to be profitable. So you're looking good so far.Β However, 86 positions is a small sample size, so take the results with a huge grain of salt.Β The key metrics are as follows:
With that exposure in mind, you can tell that for 22% time-in-market, you get 6.70% of the asset upside potential, and 28.04% of the asset downside potential.
All of the following: # Papa D Chart(high) > D Range (20, 0), High (1 candles ago) All of the following: (within 5 candles) D Relative Volume (20, SMA, 1) > 1.5
All of the following: # Delta D Chart(close) < D Range (20, 0), Middle
The strategy looks quite underwhelming when compared to buy and hold. With only 90.1% profit over 32.5 years versus 1344.4% for buy and hold, I would not consider this strategy viable in its current form.
However, there are some interessting aspects in the metrics. The risk/reward ratio of 2.25 is actually quite good, and the win rate of 49% is sufficient given this ratio - as evidenced by the healthy win rate leeway of 48.69%. The low market exposure of 22.3% could be seen as positive from risk management perspective, but it also explains the significant underperformance versus buy and hold. What worries me most is the very low trading frequency - only 0.4 trades per month is statisticly not significant enough over such long timeframe.
I would suggest to optimize the entry conditions to generate more trading signals while maintaining the good risk/reward characteristics. Maybe reducing the relative volume threshold from 1.5 could help. Also the negative Sharpe and Sortino ratios are concerning and should be addressed. The strategy seems to have a solid foundation with its breakout logic, but needs refinement to be viable.
Total Trades | 86 | Net Profit | 90.1% | Buy & Hold Profit | 1344.4% |
Win Rate | 49% | Reward/Risk Ratio | 2.25 | Max Drawdown | -15.9% |
Asset Max Drawdown | -56.7% | Exposure | 22.3% | Avg Candles in Position | 20.2 |
Sharpe Ratio | -0.37 | Sortino Ratio | -0.19 | Realized Volatility | 4.15% |
Max Winning Streak | 11 | Avg Winning Streak | 2.5 | Max Losing Streak | 9 |
Avg Losing Streak | 2.6 | Avg Trades per Month | 0.4 | Avg Trades per Day | 0.0 |
Return Std Dev | 3.0 | Loss Std Dev | 1.0 | Win Std Dev | 2.7 |
Expectancy | 0.6 | Beta | 0.09 |
backtest | exposure | peformance vs asset | drawdown vs asset | win% | reward/risk |
---|---|---|---|---|---|
BTCUSDT β’ 1 Minute | 26% | (0.4%/-0.5%) -0.80x | (-2.3%/-4.5%) 0.51x | 46 | 1.3 |
EURUSD β’ 1 Minute | 22% | (-0.5%/0.9%) -0.56x | (-0.6%/-0.7%) 0.86x | 22 | 2.8 |
GLD β’ 1 Minute | 32% | (0.6%/-1.4%) -0.43x | (-1.9%/-4.1%) 0.46x | 38 | 1.8 |
NVDA β’ 1 Minute | 25% | (7.8%/20.4%) 0.38x | (-3.7%/-5.3%) 0.70x | 34 | 3.0 |
PLTR β’ 1 Minute | 28% | (1.3%/15.0%) 0.09x | (-5.4%/-12.9%) 0.42x | 36 | 1.9 |
SPY β’ 1 Minute | 32% | (1.6%/6.6%) 0.24x | (-1.1%/-1.5%) 0.73x | 35 | 2.4 |
TSLA β’ 1 Minute | 26% | (0.7%/-0.2%) -3.50x | (-12.8%/-19.2%) 0.67x | 35 | 1.9 |
WMT β’ 1 Minute | 31% | (-0.5%/3.3%) -0.15x | (-3.2%/-5.1%) 0.63x | 32 | 2.0 |
BTCUSDT β’ 10 Minutes | 33% | (10.5%/14.3%) 0.73x | (-4.9%/-12.1%) 0.40x | 36 | 2.4 |
EURUSD β’ 10 Minutes | 23% | (1.1%/1.8%) 0.61x | (-1.2%/-4.3%) 0.28x | 39 | 1.8 |
GLD β’ 10 Minutes | 38% | (9.4%/35.8%) 0.26x | (-5.4%/-8.3%) 0.65x | 37 | 2.2 |
NVDA β’ 10 Minutes | 30% | (19.8%/37.4%) 0.53x | (-28.5%/-42.8%) 0.67x | 46 | 1.4 |
PLTR β’ 10 Minutes | 31% | (43.5%/467.7%) 0.09x | (-32.3%/-46.5%) 0.69x | 40 | 1.9 |
SPY β’ 10 Minutes | 33% | (5.1%/13.1%) 0.39x | (-9.7%/-20.7%) 0.47x | 39 | 1.8 |
TSLA β’ 10 Minutes | 28% | (30.7%/25.4%) 1.21x | (-21.4%/-55.3%) 0.39x | 40 | 1.9 |
WMT β’ 10 Minutes | 32% | (23.2%/39.5%) 0.59x | (-5.3%/-23.8%) 0.22x | 41 | 2.1 |
BTCUSDT β’ 1 Hour | 34% | (0.5%/70.3%) 0.01x | (-18.7%/-30.6%) 0.61x | 34 | 2.0 |
EURUSD β’ 1 Hour | 30% | (1.6%/7.1%) 0.23x | (-6.8%/-9.0%) 0.76x | 34 | 2.1 |
GLD β’ 1 Hour | 38% | (39.3%/122.5%) 0.32x | (-19.5%/-22.2%) 0.88x | 39 | 2.2 |
NVDA β’ 1 Hour | 44% | (555.6%/3243.4%) 0.17x | (-52.5%/-68.0%) 0.77x | 46 | 2.1 |
PLTR β’ 1 Hour | 38% | (449.7%/1466.7%) 0.31x | (-56.3%/-86.6%) 0.65x | 43 | 2.4 |
SPY β’ 1 Hour | 36% | (28.0%/107.0%) 0.26x | (-17.4%/-35.1%) 0.50x | 40 | 2.0 |
TSLA β’ 1 Hour | 39% | (1353.0%/1305.7%) 1.04x | (-40.8%/-75.1%) 0.54x | 39 | 3.1 |
WMT β’ 1 Hour | 33% | (60.9%/145.2%) 0.42x | (-15.7%/-26.9%) 0.58x | 39 | 2.4 |
BTCUSDT β’ Daily | 35% | (549.0%/1346.8%) 0.41x | (-54.7%/-76.6%) 0.71x | 47 | 3.3 |
GLD β’ Daily | 32% | (83.3%/592.8%) 0.14x | (-21.7%/-45.3%) 0.48x | 48 | 1.8 |
NVDA β’ Daily | 32% | (6469.1%/396269.9%) 0.02x | (-55.8%/-90.0%) 0.62x | 50 | 2.7 |
SPY β’ Daily | 22% | (90.1%/1344.4%) 0.07x | (-15.9%/-56.7%) 0.28x | 49 | 2.3 |
TSLA β’ Daily | 30% | (2791.1%/24273.6%) 0.11x | (-42.7%/-75.0%) 0.57x | 42 | 4.8 |
WMT β’ Daily | 30% | (30.4%/10116.3%) 0.00x | (-67.6%/-50.6%) 1.34x | 39 | 1.8 |