Barrier Touch Probability Calculator
OPTIONS · FIRST PASSAGE UNDER GEOMETRIC BROWNIAN MOTION
The chance that price touches a target or stop level at any time within N days, next to the chance of finishing beyond it.
A barrier above spot is an up-touch, below spot a down-touch. Volatility is annualized, in percentage points. Drift is the expected price drift per year, 0 by default.
Touching a level is not the same as finishing beyond it
"Will BTC reach $110,000 this month?" and "Will BTC be above $110,000 at month end?" are two different questions. The first is a touch: the price only has to get there once, at any moment, and may fall back afterwards. The second is a finish: only the last price counts. A trader who prices a target or a stop with the finish probability understates the touch by roughly a factor of two.
The formula
The price follows geometric Brownian motion. With x = |ln(barrier / spot)|, s = vol × √(days / 365) and a log-drift v = drift − vol²/2 (sign flipped for a barrier below spot), the reflection principle gives:
- P(touch) = N((−x + v·T) / s) + exp(2·v·x / vol²) · N((−x − v·T) / s)
- P(finish beyond) = N((−x + v·T) / s)
With no log-drift the touch is exactly twice the finish. With the default price drift of 0 the log-drift is slightly negative: the ratio is a little above two for a target above the price and a little below two for a stop below it.
Worked example
BTC at $100,000, a level at $110,000, 30 days, 60% volatility, no drift:
- Touch $110,000 at any time within 30 days: 55.18%
- Be at or above $110,000 on day 30: 26.11%
What it assumes
The price is watched continuously, at every instant. A level checked on daily closes, or on candle highs, is touched less often than this says. The year is 365 days. Volatility is one constant number you supply: real markets jump and change volatility, so treat the result as a model figure, not a forecast. It was checked against an independent scipy implementation and a path simulation with a Brownian-bridge crossing correction.
Where to go next
Sizing the trade that goes with that target or stop? Run it through the Pre-Trade Check. Pricing an option on the same level? Use the Black-Scholes Calculator.
Use via API or MCP
This calculation is available as a deterministic API call: useful for bots or AI agents that need the chance of a target or stop being hit without approximating it.
EMBED ON YOUR SITE
<!-- TradingCalc widget: please keep the link below exactly as given (address and words) --> <div class="tradingcalc-widget" data-widget="barrier-touch-calculator"><a href="https://tradingcalc.io/barrier-touch-calculator?utm_source=embed&utm_medium=backlink&utm_campaign=barrier-touch-calculator">Barrier Touch Probability Calculator by TradingCalc.io</a></div> <script async src="https://tradingcalc.io/embed.js"></script>
Free, no signup. Keep the text link in the code exactly as given, with its address and its words: it is the attribution and it points visitors to the full calculator. Change colors, size and start values or read the installation guide and FAQ.
What is the difference between touching a level and finishing beyond it?
A touch counts if the price reaches the level at any moment inside the window, even if it falls back before the end. A finish counts only the last price of the window. Touching is always at least as likely as finishing beyond, and with no log-drift it is exactly twice as likely.
Why is the touch probability about double the finish probability?
By the reflection principle: every path that finishes beyond the level must have crossed it, and for each such path there is a mirror path that crossed and came back. Both count as a touch, only one counts as a finish.
Does it work for a stop-loss below the current price?
Yes. A level below spot is treated as a down-touch, the mirror image of the up-touch formula, and the drift sign is flipped accordingly.
Is a touch on daily closes or candle highs the same thing?
No. This calculator watches the price at every instant. A level checked only on daily closes is touched less often, and one checked on candle highs sits between the two. That discretely monitored figure is not computed here.
How accurate is it for real markets?
The arithmetic is exact for the stated model, and it was checked against an independent implementation and a path simulation. The model itself assumes constant volatility and no jumps, so the result is a model probability, not a forecast.