SpreadAtlas

The stochastic oscillator lost on every bar length

None of the 12 settings made money after costs on any bar length from 1 minute to 4 hours. On 4-hour bars they won a median 54% of their trades and still had a median of −30.4% a year.

How it works

The stochastic oscillator shows where the close sits within the range of the last n bars, from 0 at the low to 100 at the high. %K is that reading and %D is its 3-bar average. The textbook signal buys when %K crosses above %D below 20, oversold, and sells above 80.

What we tested

Every setting was run on eight bar lengths, from 1 minute to 4 hours, on Upbit's Korean-won market: 12 large coins from January 2024 to October 2026 (from January 2025 on 5- and 10-minute bars; 8 coins from April 2026 on 1- and 3-minute bars). Signals are taken at a bar's close and filled at the next bar's open, spot buying only, with equal money in each coin. Every trade pays Upbit's 0.05% fee plus one price tick of slippage. That makes 12 single-indicator settings, and 0 more combinations where the best of them were given a filter or an exit rule. Full method.

Results by setting and bar length

Each cell is the yearly return after costs over the whole period. An outlined cell passed the two-period test: at least +10% a year in both the first and the second period, with the second keeping at least half of the first.

Return per year after costs, %

Sea level (0) is break-even after costs: blue is under water, green to brown is land.

No setting was above water after costs on any bar length. None passed the two-period test.

Setting1m3m5m10m15m30m1h4h
Stochastic(5,3) buy %K cross up below 20, sell above 70−100.0−98.2−94.3−74.8−59.2−43.1−21.6−13.8
Stochastic(5,3) buy %K cross up below 20, sell above 80−100.0−98.0−93.2−73.7−58.0−39.6−21.9−15.8
Stochastic(5,3) buy %K cross up below 30, sell above 70−100.0−100.0−99.8−96.7−88.7−70.8−48.5−29.8
Stochastic(5,3) buy %K cross up below 30, sell above 80−100.0−100.0−99.7−96.2−87.2−66.2−44.9−30.9
Stochastic(9,3) buy %K cross up below 20, sell above 70−100.0−98.5−94.8−79.5−59.5−42.8−30.9−23.2
Stochastic(9,3) buy %K cross up below 20, sell above 80−100.0−98.1−94.2−77.9−56.6−38.9−31.3−23.6
Stochastic(9,3) buy %K cross up below 30, sell above 70−100.0−100.0−99.7−96.6−86.6−68.1−50.0−35.9
Stochastic(9,3) buy %K cross up below 30, sell above 80−100.0−99.9−99.6−95.9−84.6−63.1−48.4−34.4
Stochastic(14,3) buy %K cross up below 20, sell above 70−100.0−97.6−94.3−77.6−57.9−42.6−35.0−29.1
Stochastic(14,3) buy %K cross up below 20, sell above 80−100.0−97.2−93.1−75.2−55.4−41.0−37.6−31.8
Stochastic(14,3) buy %K cross up below 30, sell above 70−100.0−99.9−99.5−94.8−81.5−63.7−51.3−37.7
Stochastic(14,3) buy %K cross up below 30, sell above 80−100.0−99.8−99.3−93.3−79.2−59.8−51.9−39.5

What we learned

Questions

Does the stochastic oscillator work for crypto?

Not as a buy-the-dip signal in our tests: every setting lost after costs on every bar length from 1 minute to 4 hours.

Why does a high win rate not mean profit?

Because profit is the win rate times the average win minus the loss rate times the average loss, minus costs. A rule that wins 54% of the time but loses more on its losing trades than it gains on its winners loses money. More on win rate against expectancy.

Every setup with this indicator in the explorer: 4h 1h 30m 15m

Related research