▲ Work in progress. This site is built and researched in the open: pages, numbers and findings may change or be wrong, and the record has gaps. Not advice. More

The Lab

Ideas traders use, put to the record

← the Lab · models explained · write-up

#52 Hidden order in crypto prices? The BDS test, before and after a volatility model

Past prices; no real orders were placed.
Last checked: 18 October 2026.

Where the idea comes from

The question

Are crypto returns independent from one period to the next? If not, does a standard volatility model explain the dependence, or is something left over?

How we tested

The maths, step by step

1. Coming back close. Take the series 1, 2, 1, 2 and call two values close if they differ by less than 0.5.

2. Today's spread from yesterday's (GARCH). The model's variance for today is a small constant, plus a times yesterday's surprise squared, plus b times yesterday's variance.

3. What is left. Divide each return by the spread the model predicted. A 6% fall on a day when the model expected a 3% spread becomes −2. If the model has caught all the dependence, these leftovers should look independent.

What we found

1. Raw returns are not independent, on every series.

daily4-hour
Bitcoin6.5841.2
Ether7.9637.9
Solana9.1530.7

The scores are the largest of the 16. Each beat all 200 shuffles, while 95% of the shuffles scored under 2.5 to 2.7.

2. Daily: the volatility model explains most of it.

3. Every 4 hours, it doesn't. What was left scored 16.0 (Bitcoin), 13.0 (Ether) and 5.8 (Solana). Each beat all 200 chance copies, while 95% of the copies scored under 2.5 to 2.8.

4. Part of it is the calendar. Two checks we added after seeing finding 3, so they weren't part of the test set in advance:

How much dependence the BDS test finds, before and after a volatility model
↑ BDS score
010203040Bitcoin, a dayraw returns, Bitcoin, a day: 6.581after GARCH(1,1), Bitcoin, a day: 1.17995% of chance copies scored under, Bitcoin, a day: 2.041Ether, a dayraw returns, Ether, a day: 7.958after GARCH(1,1), Ether, a day: 3.04395% of chance copies scored under, Ether, a day: 2.674Solana, a dayraw returns, Solana, a day: 9.151after GARCH(1,1), Solana, a day: 2.16195% of chance copies scored under, Solana, a day: 2.651Bitcoin, 4 hraw returns, Bitcoin, 4 h: 41.23after GARCH(1,1), Bitcoin, 4 h: 16after GARCH, the week's rhythm taken out, Bitcoin, 4 h: 8.00295% of chance copies scored under, Bitcoin, 4 h: 2.678Ether, 4 hraw returns, Ether, 4 h: 37.86after GARCH(1,1), Ether, 4 h: 12.98after GARCH, the week's rhythm taken out, Ether, 4 h: 7.57995% of chance copies scored under, Ether, 4 h: 2.755Solana, 4 hraw returns, Solana, 4 h: 30.67after GARCH(1,1), Solana, 4 h: 5.756after GARCH, the week's rhythm taken out, Solana, 4 h: 3.495% of chance copies scored under, Solana, 4 h: 2.48
returns →
— raw returns— after GARCH(1,1)— after GARCH, the week's rhythm taken out— 95% of chance copies scored under

The volatility model brings the daily scores down near the chance level (Ether just above it), while at 4 h they stay far above it even with the week's rhythm out.

What it means

Limits

Credits

← How the coins were pickedHow our backtester works →

Educational research from public market data; any trading discussed is paper, never real. Nothing here is advice. The full notice.