SpreadAtlas

Rate of change on crypto: only slow momentum held up

Holding coins while they were up over the last 96 four-hour bars, about 16 days, made a median +37.8% a year after costs. 12 of 15 settings made money on 4-hour bars, none on 1-hour bars or shorter, and none passed the two-period test.

How it works

Rate of change is the percentage change in price over the last n bars. A momentum rule holds a coin while its ROC is above a threshold, on the idea that what has been rising tends to keep rising for a while.

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 15 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.

Settings above water after costs: 12 of 15 on 4-hour bars, and none on 1-hour bars or shorter. None passed the two-period test.

Setting1m3m5m10m15m30m1h4h
ROC(6) above 0%−100.0−100.0−100.0−100.0−100.0−99.9−97.1−31.8
ROC(6) above +0.5%−100.0−100.0−100.0−100.0−100.0−99.8−95.9−22.0
ROC(6) above +1%−100.0−100.0−100.0−100.0−99.6−97.8−90.3−13.7
ROC(12) above 0%−100.0−100.0−100.0−100.0−100.0−99.6−90.4+3.5
ROC(12) above +0.5%−100.0−100.0−100.0−100.0−100.0−99.2−88.7+7.4
ROC(12) above +1%−100.0−100.0−100.0−100.0−99.7−97.1−81.8+7.3
ROC(24) above 0%−100.0−100.0−100.0−100.0−100.0−97.4−77.5+17.3
ROC(24) above +0.5%−100.0−100.0−100.0−100.0−99.9−96.8−75.3+17.5
ROC(24) above +1%−100.0−100.0−100.0−100.0−99.6−93.0−71.4+21.1
ROC(48) above 0%−100.0−100.0−100.0−100.0−99.7−90.9−53.4+18.0
ROC(48) above +0.5%−100.0−100.0−100.0−100.0−99.6−90.3−50.3+17.6
ROC(48) above +1%−100.0−100.0−100.0−100.0−98.7−87.4−45.2+20.0
ROC(96) above 0%−100.0−100.0−100.0−100.0−97.8−75.2−33.8+37.4
ROC(96) above +0.5%−100.0−100.0−100.0−100.0−97.5−72.8−32.0+37.8
ROC(96) above +1%−100.0−100.0−100.0−99.8−96.4−69.5−30.1+39.0

What we learned

Questions

Does momentum trading work on crypto?

Slow momentum did in this backtest: on 4-hour bars, lookbacks of 24 to 96 bars all made money after costs. Fast momentum on short bars lost everywhere.

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

Related research