Scenario simulator
A Monte-Carlo what-if tool for stress-testing exit targets, stops, and position size. Live at /scenario.
The model
The simulator runs 10,000 hypothetical price paths under Geometric Brownian Motion (GBM), the same stochastic process that backs Black-Scholes options pricing. Each path takes daily steps; at each step the price drifts by your annual-drift assumption and gets randomly shocked by your volatility.
S_{t+1} = S_t · exp((μ - σ²/2)·dt + σ·√dt·Z)
Z ~ N(0,1)
μ = annual drift
σ = annual volatility
dt = 1/365After all 10k paths complete, prices are sorted by day and the 10th, 50th, and 90th percentiles are extracted to draw the cone. The terminal-day distribution becomes the histogram.
The four assumptions
Spot price
Starting value at t = 0. Whatever current price you want to anchor on. Treated as a unit: for BTC at $100k, set spot to 100,000. For an alt at $0.42, set spot to 0.42.
Volatility
Annualized standard deviation, in percent. The single most important knob. Anchors: BTC roughly 60 to 80%, ETH 70 to 90%, SOL, SUI, and other alts 90 to 120%, blue-chip equities 15 to 25%, the S&P 500 about 15%. Pull from realized 30-day or 90-day vol on TradingView; bump it up if recent action has been wilder than the average.
Annual drift
Your thesis: the expected log-return per year, in percent. 0% = flat market, +10% = mild bull (S&P-ish), +30% = strong bull, +50% = aggressive bull, -20% = bear. Crypto needs much higher drift than blue chips to overcome volatility drag (see below).
Horizon
Days forward, 7 to 180. How far you're projecting. The cone widens with √(time), so doubling the horizon means a roughly 1.4x wider P10 to P90 spread. Match this to your trade window, not your conviction window.
Reading the chart
- Blue solid (P50): the median outcome. Half of paths end above, half below. Not the same as the average; for log-normal distributions the mean sits above the median.
- Green dashed (P90): the bull case. 10% of paths end above this.
- Orange dashed (P10): the bear case. 10% of paths end below this.
- The fill between P10 and P90 is your 80% confidence band.
- Histogram: the same terminal-day data as a distribution. Right-skewed because GBM is log-normal; price cannot go negative, but can blow up to the upside.
Volatility drag
The most non-obvious property of GBM: P50 sits below spot at high vol, even when drift is positive. That is volatility drag.
Why: the median grows at μ - σ²/2 per year, which is annual drift minus half the variance. With σ = 0.40 (40% vol), that is a built-in -8% per year headwind on the median. To get P50 at par with spot you need drift = σ²/2 = 8%; to get P50 above spot, even more.
This is the math reason a low-vol asset compounding at 8% a year outperforms a high-vol asset compounding at 8% a year. It is why leverage that survives upside whipsaws still bleeds capital. And it is why “expected return” alone is a misleading measure for size and stop decisions.
How to use it
Is my exit target realistic?
Set spot to current price, vol to the asset's realized 30/90-day vol, drift to your thesis, horizon to your intended trade window. If your target sits above the P90 line, you are betting on a top-decile outcome. Not impossible, but be honest about the odds.
Where should my stop go?
P10 at your horizon is roughly the 1-in-10 bear case for normal market noise. If your stop sits above the P10 line, you will get stopped out by noise more often than by an actual thesis break. Drop the stop below P10, or accept higher false-stop frequency as a cost.
Should I lever up this trade?
If the P10 terminal price puts you below your liquidation price for the size you're considering, no. Run the simulation at your worst-case-vol assumption, not the current value; vol can spike without warning.
Is buying the top half of this range a coin flip?
No, because of skew. The median is below the arithmetic mean of terminal prices. Buying at P50 means more than half your future paths end below P50. That sounds tautological but it's worth saying out loud.
Caveats
GBM is a useful approximation, not reality. Things it does NOT model:
- Fat tails. Real crypto has way more 5σ days than a normal distribution predicts. P10 is too optimistic about downside.
- Jump risk. No LUNA-style instant collapse, no exchange insolvency, no rug pull. Do not trust the cone for tail-event sizing.
- Path dependency. “If price hits X first then Y” requires path-aware simulation; this is endpoint-only.
- Correlation. Single asset only. A bear case in BTC is usually a worse bear case in your alts.
- Regime changes. Volatility clusters; recent vol is a better predictor of next-week vol than long-run vol. The model uses one constant σ.
Use as a sanity check on size, target, and stop math, not as a forecast.