The stochastic oscillator is one of the first indicators most traders meet, and the %K/%D crossover is its signature signal: when the faster %K line crosses the slower %D line while both are deep in oversold territory, you buy; the mirror in overbought, you sell. Adding the zone filter is supposed to be the disciplined version — only act on a crossover when the oscillator is already stretched — rather than trading every wiggle in the middle of the range.
We pinned that disciplined reading and ran it mechanically: long when %K crosses %D inside the oversold zone, short when %K crosses %D inside the overbought zone, with a 1.5×ATR(14) stop and a 1.5R target, on hourly candles from 12 months of real Binance 1-minute data on BTC and ETH — around the clock, both directions, 1% risk, 0.05% commission per side, the same deterministic engine behind Secuora’s AI backtester. The headline is honest and unsurprising for a counter-trend oscillator: the rule lost on both symbols, BTC by less and ETH by more, with win rates in the high 30s to low 40s that a 1.5R target cannot quite carry once fees are charged. Full numbers below.
Verified Result
Weak: the mechanical version barely cleared, or failed to clear, the fee hurdle.
| Market | TF | Trades | Win | PF | Max DD | Net |
|---|---|---|---|---|---|---|
| BTC | 1h | 509 | 41.5% | 0.86 | 41.4% | -38.0% |
| ETH | 1h | 506 | 37.2% | 0.76 | 59.5% | -54.2% |
How the SVS 34 breaks down ▾
12 months of real 1-minute data, fees on (0.05%/side), $10k start, 1% risk. How the score works →
The exact rules we tested
- Compute the stochastic oscillator (%K and its %D signal line) on hourly candles.
- Long when %K crosses above %D while both are inside the oversold zone (below 20).
- Short when %K crosses below %D while both are inside the overbought zone (above 80).
- Stop 1.5×ATR(14) from entry; target 1.5R.
- No session filter — crypto trades 24/7, so every qualifying zone-crossover is taken, both directions.
- Risk 1% of equity per trade; 0.05% commission per side; 10× max notional leverage.
Results
Binance spot 1-minute klines (data-api.binance.vision), aggregated per strategy timeframe · starting balance $10,000 · risk 1%/trade · Commission 0.05% per side; no spread/slippage modeled (BTC/ETH spot spreads are sub-basis-point); position size capped at 10× notional leverage. Generated 2026-06-12 by the Secuora ai-strategy deterministic runner (same engine as the in-app AI backtester).
| Month | Trades | Win rate | Net P&L |
|---|---|---|---|
| 2025-06 | 42 | 48% | $159 |
| 2025-07 | 49 | 37% | −$1,148 |
| 2025-08 | 37 | 38% | −$630 |
| 2025-09 | 46 | 48% | $67 |
| 2025-10 | 46 | 46% | $107 |
| 2025-11 | 36 | 44% | $72 |
| 2025-12 | 37 | 49% | $333 |
| 2026-01 | 39 | 26% | −$1,592 |
| 2026-02 | 38 | 42% | −$61 |
| 2026-03 | 50 | 42% | −$150 |
| 2026-04 | 43 | 42% | −$223 |
| 2026-05 | 46 | 37% | −$734 |
| Month | Trades | Win rate | Net P&L |
|---|---|---|---|
| 2025-06 | 44 | 45% | $238 |
| 2025-07 | 49 | 22% | −$2,290 |
| 2025-08 | 49 | 33% | −$925 |
| 2025-09 | 38 | 39% | −$282 |
| 2025-10 | 47 | 32% | −$822 |
| 2025-11 | 46 | 39% | −$247 |
| 2025-12 | 36 | 42% | −$71 |
| 2026-01 | 30 | 33% | −$438 |
| 2026-02 | 45 | 42% | −$21 |
| 2026-03 | 35 | 34% | −$365 |
| 2026-04 | 41 | 44% | $4 |
| 2026-05 | 46 | 41% | −$197 |
Assumptions (how loose terms were pinned down)
- %K crosses %D inside the oversold (long) or overbought (short) zone; 1.5x ATR stop; 1.5R
A 1.5R target sets the breakeven win rate — and the cross misses it
The arithmetic frames the whole result before the data arrives. A 1.5R target needs roughly 40% winners just to break even before costs; charge 0.05% per side and the bar moves a little higher. The zone-filtered stochastic cross landed right on that line — win rates in the high 30s to low 40s across the two symbols — and once the fee column was paid, both finished negative. BTC, with a slightly higher win rate, lost less; ETH, with a lower one and a deeper drawdown, lost more. Neither cleared its costs, which is the recurring shape of counter-trend oscillator signals: they catch turns often enough to look promising and miss them often enough, with a fixed reward multiple, to bleed after fees.
There is also a definitional trap worth naming. "Stochastic strategy" can mean the zone-filtered crossover we tested, a bare crossover anywhere on the chart, an overbought/oversold level-touch with no crossover at all, or a divergence read — and the four produce completely different trade counts and stats. Ours is the disciplined zone-crossover, pinned in the rules above. The honest use of an oscillator is rarely as a standalone entry engine but as a timing layer on top of a directional bias — only take the oversold cross while a higher-timeframe trend is up — and that combination is one prompt away in the AI backtester.
How to backtest the stochastic cross on Secuora
The stochastic oscillator is a built-in primitive of the AI backtester, so the crossover-in-zone rule automates end to end — and the replay terminal covers the discretionary half.
- Open /backtest/ai and describe it in plain English: "long when stochastic %K crosses above %D below 20, short when %K crosses below %D above 80, 1.5×ATR stop, 1.5R target, hourly candles." It compiles to the same engine that produced this page.
- Run it on BTC and ETH with costs on and confirm you reproduce the losing result above — and note how close the win rate sits to the 40% breakeven line a 1.5R target requires.
- Change one variable per run: only take the long cross while a higher-timeframe trend is up, widen the target to 2R, or tighten the oversold/overbought thresholds — and watch the win rate and expectancy move together.
- Sign up free and use the replay terminal — add the stochastic indicator (the free plan includes two indicators), and replay a trending month bar by bar to feel how the oscillator stays pinned and every cross-back is an early entry.
- Journal the variants you would actually trade, with the confluence and rules-followed fields filled in, so your tested edge and your live edge are the same strategy.
Methodology, in one paragraph
Data: Binance spot 1-minute klines (data-api.binance.vision), aggregated per strategy timeframe, June 1, 2025 – June 1, 2026 (12 months). Execution: Secuora’s deterministic strategy runner (the same engine behind the in-app AI backtester) — single position at a time, entries at the close of the signal candle, commission 0.05% per side; no spread/slippage modeled (btc/eth spot spreads are sub-basis-point); position size capped at 10× notional leverage, starting balance $10,000, 1% risk per trade. Swings are confirmed fractals with no look-ahead. These are mechanical results: no discretion, every signal taken. Past performance does not predict future results; this is research, not financial advice.
Frequently asked questions
What is the stochastic %K/%D crossover strategy?
The stochastic oscillator has a fast line (%K) and a slower signal line (%D). The crossover signal buys when %K crosses above %D and sells when it crosses below; the disciplined version we tested only acts on the crossover when both lines are already in the oversold (below 20) or overbought (above 80) zone, so you trade stretched conditions rather than every mid-range wiggle.
What win rate does the stochastic cross have?
In our 12-month hourly test the win rate ran in the high 30s to low 40s on BTC and ETH. With a 1.5R target you need roughly 40% winners just to break even before costs, so that win rate is borderline — and once 0.05%-per-side commission was charged, both symbols finished negative. The exact figures are in the results table above.
Does the stochastic oscillator work on crypto?
As a standalone zone-crossover entry, not in our test — it lost on both BTC and ETH over 12 months after costs. That is typical of counter-trend oscillators traded raw. The more defensible use is as a timing layer on top of a directional bias (only take the oversold cross when the higher-timeframe trend agrees), which this unfiltered baseline gives you something honest to compare against.
How do I backtest a stochastic strategy myself?
Two ways on Secuora: describe the crossover-in-zone rule in plain English at /backtest/ai — the stochastic oscillator is a built-in primitive that compiles to the same deterministic engine used here — or sign up free, add the stochastic indicator in the replay terminal, and trade the signals bar by bar with simulated stop-loss and take-profit orders.
