Does a Stochastic oversold bounce work as a swing trade entry?
Across 214 of 220 tickers between 2015-01-01 and 2024-12-31, average return was 0.46%, average max drawdown -5.48%.
A thin edge: +0.46% mean return across 214 tickers, with -5.48% average drawdown — the edge is too small to call a live signal.
What we tested
We want to catch short-term bounces in stocks that are still in a long-term uptrend, using the Stochastic oscillator to time the entry. Compute the 14 period Stochastic %K and its 3 period simple moving average as %D. Enter long when %K crosses above %D while both are below 20 (an oversold crossover), and the close is above the 200 day simple moving average. On the entry bar, measure the 14 period ATR and place a protective stop 1.5 ATR below the entry price. Size the position so that hitting that stop loses exactly 1 percent of account equity. Round down to a whole number of shares. Take profit at 1.5R, that is one and a half times the distance between entry and stop, placed above the entry. If %K crosses back above 80 before either level is hit, exit at the next open. If the position has been held for 20 trading days without resolving, exit at the next open as well. Long only. One open position per ticker at a time. No leverage and no pyramiding.
- Window
- 2015-01-01 → 2024-12-31
- Universe
- 220 tickers
- Ranking metric
- return_pct

Overall results
Aggregated across 214 runsEqual-weighted mean of total return across symbols that completed. · 2 codegen refinements on pilot
Unweighted mean across successful runs.
214 completed · 6 failed
Mean of worst peak-to-trough per symbol.
Aggregate gross profit ÷ gross loss.
Summed over successful symbols.
Return distribution
How the 214 tickers split up across return_pct buckets. Reads left to right from worst to best.
- ≤ -10%3 (1.4%)
- -10% to -5%31 (14.5%)
- -5% to -1%49 (22.9%)
- −1% to +1%37 (17.3%)
- +1% to +5%53 (24.8%)
- +5% to +10%30 (14.0%)
- > +10%11 (5.1%)
By sector
Top and flop names per GICS sector, ranked by return_pct.
Communication Services
18 / 20 completed- NFLX8.60%
- OMC6.61%
- EA5.30%
- FOXA2.42%
- T2.26%
- DIS-6.10%
- PINS-5.05%
- WBD-4.69%
- TMUS-3.56%
- MTCH-3.49%
Consumer Discretionary
20 / 20 completed- HLT14.78%
- MCD9.35%
- ORLY8.07%
- GM6.23%
- NKE1.33%
- F-9.86%
- ULTA-9.37%
- ROST-8.27%
- CMG-8.13%
- HD-6.87%
Consumer Staples
20 / 20 completed- PG5.86%
- KR1.66%
- WMT1.52%
- CLX1.23%
- PM0.94%
- STZ-9.03%
- MO-7.77%
- CL-6.84%
- COST-6.80%
- SYY-5.20%
Energy
17 / 20 completed- FANG4.38%
- VLO3.88%
- DVN2.85%
- CVX2.83%
- XOM2.76%
- OXY-10.58%
- PSX-7.71%
- WMB-6.21%
- APA-6.02%
- BKR-5.76%
Financials
19 / 20 completed- JPM14.61%
- SCHW8.53%
- GS4.23%
- MCO2.96%
- C2.64%
- BLK-8.42%
- BAC-6.57%
- WFC-5.46%
- ICE-4.53%
- PNC-4.39%
Health Care
20 / 20 completed- VRTX23.07%
- ISRG5.79%
- CVS3.98%
- ABT3.48%
- UNH3.26%
- AMGN-10.20%
- REGN-9.72%
- MDT-4.97%
- ABBV-4.49%
- TMO-2.77%
Industrials
20 / 20 completed- CAT6.66%
- FDX5.84%
- NOC5.31%
- ROK4.57%
- GD4.52%
- UNP-6.73%
- LMT-6.02%
- EMR-5.41%
- CMI-4.69%
- ITW-3.77%
Information Technology
20 / 20 completed- AVGO17.27%
- AMAT15.32%
- ACN13.09%
- CRM11.79%
- TXN11.02%
- IBM-7.71%
- AAPL-2.81%
- MSFT-2.36%
- AMD0.35%
- CSCO0.62%
Materials
20 / 20 completed- FMC12.61%
- LIN11.26%
- STLD7.42%
- MLM6.76%
- DD6.56%
- PPG-10.90%
- SHW-9.57%
- LYB-5.92%
- VMC-3.38%
- FCX-2.79%
Real Estate
20 / 20 completed- INVH9.26%
- WELL8.79%
- ARE6.75%
- CCI6.07%
- ESS5.80%
- PSA-8.65%
- VTR-8.28%
- VICI-5.75%
- EXR-4.50%
- SPG-2.99%
Utilities
20 / 20 completed- DUK9.05%
- XEL6.12%
- AEP5.26%
- CMS2.65%
- NEE2.62%
- SRE-9.41%
- PEG-7.67%
- AEE-4.03%
- EIX-3.25%
- EXC-2.75%
Disclaimer
Past performance does not predict future results. This is a backtest over a fixed historical window and it does not model execution costs, borrowing, taxes, or survivorship of the universe. Nothing here is investment advice.
Generated Jul 29, 2026 · slug stochastic-oversold-bounce