Created by Dr. Pedram Jahangiry | Enhanced with Claude
Stock prices are often described as a random walk: each trading day the price moves by a small expected drift plus a surprise nobody can predict. This tool simulates exactly that model as price paths you can add one at a time, with sliders for annual drift, volatility, horizon, and the shape of the daily shocks (Gaussian, fat-tailed Student-t, a plain coin flip, or uniform). A forecast cone shows how uncertainty grows with the square root of time, the returns strip shows the noise that produces every apparent trend, and the histogram shows the spread of final prices across paths.
Interactive teaching tool: why stock prices look the way they do
Each trading day the price moves by a drift μ plus a surprise ε. The surprise averages zero and has no memory: yesterday's surprise tells you nothing about today's. That one assumption produces everything on this page.
log Pt = log Pt−1 + μ + εt ⇔ Pt = Pt−1 · eμ + εt ⇔ daily return rt = μ + εt
The random walk lives in log prices, so returns compound and the price can never go negative. Flip on Log scale and the same path becomes the plain additive random walk with drift that you meet in every time-series course. The sliders are annual; the tool converts them to daily values: μday = μ / 252 and σday = σ / √252. At the defaults (8% and 20%) that is about +0.03% of drift against 1.26% of noise every day, so the daily surprise is roughly 40 times the daily drift. That ratio is why tomorrow looks unpredictable even when the long-run drift is real.
The sliders re-price the paths already on screen using the same random surprises. Drag drift or volatility and you can watch what each parameter does to a path without the randomness changing under you.
If today's price already reflects what is known, only new information can move it, and news is by definition not predictable from the past. Returns then behave like ε: noise with no pattern. Prices are the running sum of that noise, and running sums of noise wander, form apparent trends, and never revert to anything. Bachelier wrote this down in 1900, Samuelson and Fama turned it into the efficient-market benchmark, and Malkiel gave it its popular name. Real markets show small departures (volatility clustering, fat tails, faint short-horizon predictability), but the random walk remains the benchmark that any forecast, chart pattern, or trading rule has to beat.
A random walk is the simplest process with a unit root: it is not stationary, its variance grows without bound, and its first difference (the return) is white noise. That is why ARIMA models for prices use d = 1, why forecasting textbooks treat "tomorrow = today" as the baseline, and why so much of financial econometrics is about testing whether returns carry any structure at all. To see stationarity itself, continue with the Stationarity Visualizer.