▲ 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 · grids · write-up

#13 First passage: the chance a price touches a level

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

Under the textbook model of prices, the price wanders at random, by about the same amount each hour. (Its name is geometric Brownian motion. Louis Bachelier first modelled prices as Brownian motion in 1900; the "geometric" form became the standard after Paul Samuelson's 1965 paper.) Under that model there is an exact formula for the chance a price touches a level within a given time. That level could be a grid rung, a take-profit or a liquidation price.

The formula needs three numbers: how far away the level is, how long you wait, and how much the price is moving these days. It folds them into one number, called z: how many "typical moves" away the level is.

The next section works one example through by hand.

The maths, step by step

The example: BTC is at 60,000. Will it touch 63,000 (3,000 higher) within one day? Say BTC typically moves 3% in a day these days.

  1. The distance, in percent: 3,000 is 5% of 60,000. The formula measures it as a growth rate, which makes it a little smaller: 4.88%.
  2. The volatility, called σ (sigma): how much the price typically moves in a set time, up or down. Here it is 3% a day.
    • In the tests it was measured from the last few days of hourly moves, with the newest hours counting most (an exponentially weighted average, as in J.P. Morgan's RiskMetrics). It looks back about four days.
  3. The volatility over the wait grows with the square root of the time, written √time.
    • Over one day: 3% × √1 = 3%.
    • Over four days: 3% × √4 = 3% × 2 = 6%, not 12%. Up days and down days partly cancel, so the spread grows more slowly than the time.
  4. z = distance ÷ volatility over the wait. For one day: 4.88 ÷ 3 = 1.63. The level is 1.63 typical moves away.
  5. The bell curve, called N (the normal distribution), describes where the price ends up under this model. Most endings are near the start, and fewer are far out. The share of the curve beyond 1.63 typical moves is 5.2%. That is the chance BTC ends the day above 63,000.
  6. Double it for a touch: 2 × 5.2% = 10.4%, written 2·N(−z).
    • Why double: a price that touches 63,000 and falls back has a mirror image that went on up and ended above it. The two are equally likely.
    • So touches are twice the "ends above" share.
  7. Drift is any steady lean up or down. We assumed none. The exact formula still carries a tiny lean from the maths of percentages. It gives 10.1% in place of 10.4%; over a day the difference is small.

The same level, waited four days: z = 4.88 ÷ 6 = 0.81, and the chance rises to 42% (41% with the tiny lean).

What "fat tails" means: big moves happen more often in crypto than the bell curve allows. So the curve's thin far end underprices far levels. That is what the test below found.

The repair, the market's own curve: take each coin's first year. Sort every test by its z, and count how often levels at each z were really touched. For example, of all the tests with z between 2 and 3, what share touched? Then use that table in place of the bell curve.

The score: each prediction is scored by the square of its miss.

The test

How: BTC, ETH and SOL hourly candles from Bybit, October 2022 to October 2026. We started a test every two hours, with waits of 4 hours, a day, 3 days and a week, and levels from 0.5% to 12% above and below the price. That made about 2.9 million predictions. First, on a fake market built to follow the formula's own assumptions, its predictions matched within a point or two.

What the real market did:

The repair that worked on unseen years: the market's own curve. From each coin's first year, learn how often levels were really touched at each z. Use that in place of the formula. On the next three years, which it never saw, its odds were right to within 2.5 points in every band. It matched or beat the formula on every coin in every year.

How much does today's volatility add? We compared the own curve with simply knowing each level's usual touch rate on that coin. Knowing today's volatility lowered the score (the average squared miss) by only 0.4–7.6%, with no pattern from year to year:

year 2year 3year 4
BTC+3.3%+1.5%+2.2%
ETH+3.4%+7.6%+5.0%
SOL+3.3%+0.4%+7.0%

What it means:

Update, 16 October 2026: a clarification

Added after this page was published. The text above is left as it was.

Update, 18 October 2026: a chart

The test's main finding as a picture: how often a level was really touched at each z, against what the formula says. The numbers are the same run's (October 2022 to October 2026, about 2.9 million predictions), counted again in narrower steps of z.

How often a level was touched, against what the bell-curve formula says
↑ share touched (log scale: each line down is 10 times smaller)
0.00010.0010.010.112345what happenedthe formula, 2N(−z)
z: distance in typical moves over the wait →
— what happened- - the formula, 2N(−z)

Near the price real touches ran a little below the formula, and from about z = 2 far above it: about 12 times at z = 3 and over 200 times at z = 4.

Update, 21 October 2026: plain words

Added after this page was published. The text above is left as it was, except the explanations this lists.

Update, 27 October 2026: where the idea comes from

Added after this page was published. The text above is left as it was.

Credits

← Market moods and bot lossesGrid bots, followed up →

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