Technical

From Smooth Noise to Sudden Shocks: The Merton Jump-Diffusion Model

Written by
Tsvetomir Novak
-
April 19, 2026
<style> .math-block { margin: 1.5em 0; text-align: center; } .math-block mjx-container { max-width: 100% !important; overflow-x: hidden !important; } .math-block mjx-container svg { max-width: 100%; height: auto; } .figure-block { margin: 2em 0; text-align: center; } .figure-caption { font-size: 0.9em; color: #666; margin-top: 8px; } </style> <p>In the previous AQS article, we discussed Geometric Brownian Motion and applied it to a simple strategy called delta hedging, attempting to eliminate the randomness in a derivative position. If you were to try this strategy in reality, however, you would quickly notice that it falls apart, often deviating from what the model predicts almost immediately. Why does this happen? Is the model wrong? In truth, no equation can perfectly describe the market, but some models bring us closer than others. In this article, we will discuss market jumps, how they are modeled, and how they allow us to improve the original GBM framework.</p> <h3>The Opening Bell</h3> <p>You finish the trading day on Friday, August 2, 2024, with the kind of confidence every new trader mistakes for skill. Just before the close, you buy Tesla at a market still trading as if Monday will be just another continuation of the week before. The stock settles at 207.67, and you head into the weekend with a position on and a model in mind.</p> <p>Then the market closes, but price discovery does not. Over the weekend, macro fears intensified, global equities sold off, and by the time U.S. markets prepare to reopen on Monday morning, the number on your screen is no longer the one that matters. This is where the opening auction begins. Before regular trading starts, participants can submit market orders, which require execution at the opening price, and limit orders, which specify the worst acceptable price at which they are willing to transact. The exchange then computes a clearing price, often called the indicative opening price, that maximizes executable volume and minimizes imbalance. Until the bell rings, you can watch that indicative price move in real time as new orders enter and old ones are canceled.</p> <!-- Figure 1: Opening Auction --> <div class="figure-block"> <svg viewBox="0 0 900 420" xmlns="http://www.w3.org/2000/svg" style="max-width:100%;height:auto;border:1px solid #ccc;border-radius:8px;background:#fafafa"> <!-- Title --> <text x="450" y="28" text-anchor="middle" font-size="16" font-weight="bold" fill="#333">Opening Auction and the Implied Gap</text> <!-- ======================== --> <!-- LEFT: ORDER BOOK TABLE --> <!-- ======================== --> <text x="50" y="58" font-size="13" font-weight="bold" fill="#333">Opening Auction Order Book</text> <!-- Table outline --> <rect x="30" y="68" width="380" height="290" fill="none" stroke="#ccc" stroke-width="1" rx="2"/> <!-- Column headers --> <rect x="30" y="68" width="380" height="28" fill="#f0f0f0" rx="2"/> <text x="90" y="87" text-anchor="middle" font-size="11" font-weight="bold" fill="#2563eb">Buy limits</text> <text x="185" y="87" text-anchor="middle" font-size="11" font-weight="bold" fill="#333">Price</text> <text x="275" y="87" text-anchor="middle" font-size="11" font-weight="bold" fill="#dc2626">Sell limits</text> <text x="365" y="87" text-anchor="middle" font-size="11" font-weight="bold" fill="#666">MKT</text> <!-- Vertical dividers --> <line x1="140" y1="68" x2="140" y2="358" stroke="#e5e5e5" stroke-width="1"/> <line x1="230" y1="68" x2="230" y2="358" stroke="#e5e5e5" stroke-width="1"/> <line x1="325" y1="68" x2="325" y2="358" stroke="#e5e5e5" stroke-width="1"/> <!-- Row 1: 222.0 --> <line x1="30" y1="96" x2="410" y2="96" stroke="#eee" stroke-width="1"/> <text x="90" y="116" text-anchor="middle" font-size="12" fill="#2563eb">0</text> <text x="185" y="116" text-anchor="middle" font-size="12" fill="#333">222.0</text> <text x="275" y="116" text-anchor="middle" font-size="12" fill="#dc2626">2100</text> <text x="365" y="116" text-anchor="middle" font-size="11" fill="#666">B: 300</text> <!-- Row 2: 220.0 --> <line x1="30" y1="133" x2="410" y2="133" stroke="#eee" stroke-width="1"/> <text x="90" y="153" text-anchor="middle" font-size="12" fill="#2563eb">200</text> <text x="185" y="153" text-anchor="middle" font-size="12" fill="#333">220.0</text> <text x="275" y="153" text-anchor="middle" font-size="12" fill="#dc2626">1700</text> <!-- Row 3: 218.0 --> <line x1="30" y1="170" x2="410" y2="170" stroke="#eee" stroke-width="1"/> <text x="90" y="190" text-anchor="middle" font-size="12" fill="#2563eb">500</text> <text x="185" y="190" text-anchor="middle" font-size="12" fill="#333">218.0</text> <text x="275" y="190" text-anchor="middle" font-size="12" fill="#dc2626">1200</text> <!-- Row 4: 216.0 — EQUILIBRIUM --> <line x1="30" y1="207" x2="410" y2="207" stroke="#eee" stroke-width="1"/> <rect x="31" y="208" width="378" height="32" fill="#ebf2fa" rx="0"/> <text x="90" y="229" text-anchor="middle" font-size="12" font-weight="bold" fill="#2563eb">950</text> <text x="185" y="229" text-anchor="middle" font-size="12" font-weight="bold" fill="#333">216.0</text> <text x="275" y="229" text-anchor="middle" font-size="12" font-weight="bold" fill="#dc2626">900</text> <text x="365" y="229" text-anchor="middle" font-size="12" font-weight="bold" fill="#333">Eq</text> <!-- Row 5: 214.0 --> <line x1="30" y1="244" x2="410" y2="244" stroke="#eee" stroke-width="1"/> <text x="90" y="264" text-anchor="middle" font-size="12" fill="#2563eb">1300</text> <text x="185" y="264" text-anchor="middle" font-size="12" fill="#333">214.0</text> <text x="275" y="264" text-anchor="middle" font-size="12" fill="#dc2626">500</text> <!-- Row 6: 212.0 --> <line x1="30" y1="281" x2="410" y2="281" stroke="#eee" stroke-width="1"/> <text x="90" y="301" text-anchor="middle" font-size="12" fill="#2563eb">1700</text> <text x="185" y="301" text-anchor="middle" font-size="12" fill="#333">212.0</text> <text x="275" y="301" text-anchor="middle" font-size="12" fill="#dc2626">150</text> <!-- Row 7: 210.0 --> <line x1="30" y1="318" x2="410" y2="318" stroke="#eee" stroke-width="1"/> <text x="90" y="338" text-anchor="middle" font-size="12" fill="#2563eb">2100</text> <text x="185" y="338" text-anchor="middle" font-size="12" fill="#333">210.0</text> <text x="275" y="338" text-anchor="middle" font-size="12" fill="#dc2626">0</text> <text x="365" y="338" text-anchor="middle" font-size="11" fill="#666">S: 300</text> <!-- Blue arrow pointing to equilibrium --> <line x1="445" y1="225" x2="415" y2="225" stroke="#2563eb" stroke-width="2.5" marker-end="url(#arrowBlue)"/> <defs><marker id="arrowBlue" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="#2563eb"/></marker></defs> <text x="450" y="221" font-size="12" font-weight="bold" fill="#2563eb">Indicative</text> <text x="450" y="237" font-size="12" font-weight="bold" fill="#2563eb">opening price</text> <!-- Annotation below table --> <line x1="100" y1="375" x2="320" y2="375" stroke="#ccc" stroke-width="0.5"/> <!-- ======================== --> <!-- RIGHT: PRICE VIEW CHART --> <!-- ======================== --> <text x="700" y="58" text-anchor="middle" font-size="13" font-weight="bold" fill="#333">Price View</text> <!-- Chart frame --> <rect x="555" y="68" width="320" height="290" fill="none" stroke="#ccc" stroke-width="1" rx="2"/> <!-- Y axis labels --> <text x="548" y="98" text-anchor="end" font-size="11" fill="#333">230</text> <text x="548" y="162" text-anchor="end" font-size="11" fill="#333">224</text> <text x="548" y="226" text-anchor="end" font-size="11" fill="#333">218</text> <text x="548" y="290" text-anchor="end" font-size="11" fill="#333">212</text> <text x="548" y="352" text-anchor="end" font-size="11" fill="#333">206</text> <!-- Horizontal grid --> <line x1="555" y1="93" x2="875" y2="93" stroke="#eee" stroke-width="0.5"/> <line x1="555" y1="157" x2="875" y2="157" stroke="#eee" stroke-width="0.5"/> <line x1="555" y1="221" x2="875" y2="221" stroke="#eee" stroke-width="0.5"/> <line x1="555" y1="285" x2="875" y2="285" stroke="#eee" stroke-width="0.5"/> <line x1="555" y1="349" x2="875" y2="349" stroke="#eee" stroke-width="0.5"/> <!-- Prev close dashed line at ~207.67 => between 206 and 212, closer to 212 --> <!-- 206=349, 212=285, so 207.67 => 349 - (207.67-206)/(212-206)*(349-285) = 349 - 17.8 = 331 --> <line x1="555" y1="140" x2="875" y2="140" stroke="#999" stroke-dasharray="4,3" stroke-width="1"/> <text x="878" y="138" font-size="10" fill="#999">Prev. close</text> <!-- Aug 4 close candle (green, near prev close) --> <!-- Wick --> <line x1="620" y1="118" x2="620" y2="170" stroke="#333" stroke-width="1.5"/> <!-- Body --> <rect x="608" y="130" width="24" height="25" fill="#22c55e" rx="1"/> <!-- Aug 5 open candle (orange, gap down) --> <!-- Wick --> <line x1="720" y1="248" x2="720" y2="320" stroke="#333" stroke-width="1.5"/> <!-- Body (open at prev close level ~140, close at ~285) --> <rect x="708" y="145" width="24" height="130" fill="#f97316" rx="1"/> <!-- First 30 min candle (red, continued selling) --> <line x1="820" y1="290" x2="820" y2="340" stroke="#333" stroke-width="1.5"/> <rect x="808" y="300" width="24" height="28" fill="#ef4444" rx="1"/> <!-- X axis labels --> <text x="620" y="385" text-anchor="middle" font-size="10" fill="#333">Aug 4 close</text> <text x="720" y="385" text-anchor="middle" font-size="10" fill="#333">Aug 5 open</text> <text x="820" y="385" text-anchor="middle" font-size="10" fill="#333">First 30 min</text> <!-- Overnight repricing arrow --> <defs><marker id="arrowOrange" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="#ea580c"/></marker></defs> <path d="M 650,142 Q 680,200 705,250" fill="none" stroke="#ea580c" stroke-width="2.5" marker-end="url(#arrowOrange)"/> <text x="770" y="92" font-size="11" fill="#ea580c">Overnight repricing</text> <text x="770" y="107" font-size="11" fill="#ea580c">through the auction</text> </svg> <div class="figure-caption">Figure 1: A stylized view of the opening auction. The exchange aggregates market and limit orders, computes an indicative opening price, and then begins continuous trading from that level.</div> </div> </div> <p>At 9:30 a.m. on August 5, TSLA does not reopen near Friday's close. It opens at 185.22. Your position has not drifted lower in the smooth, continuous way your GBM framework would suggest. It has jumped. The market did not give you time to rebalance continuously, nor did it care that your hedge looked reasonable the night before. It simply repriced. How could a model built on continuous motion ever prepare you for that?</p> <h3>Revisiting GBM</h3> <p>In the previous article, we modeled stock prices using Geometric Brownian Motion, a continuous-time process designed to capture two effects: a systematic tendency for prices to grow on average and a random component representing the constant arrival of small market fluctuations. The idea was simple. A stock does not move in a perfectly predictable way, but neither does it move in complete chaos. Instead, its motion is decomposed into a deterministic drift term, which captures average proportional growth over time, and a stochastic diffusion term, which captures the irregular shocks generated by the market. Under this framework, uncertainty enters continuously, not in isolated bursts, but through an uninterrupted stream of infinitesimal noise.</p> <div class="math-block"> $$dS_t = \mu S_t \, dt + \sigma S_t \, dW_t$$ </div> <p>Each part of this equation has a clear role. The term $\mu S_t \, dt$ represents the drift, the part of the model that pushes the stock forward according to its average proportional rate of return. If this were the only term present, the stock would evolve smoothly and predictably, like an exponential growth curve. The second term, $\sigma S_t \, dW_t$, is what makes the model sufficiently realistic to be useful: it introduces random fluctuations via Brownian motion, scaled by the current stock price and the volatility parameter $\sigma$. This means that randomness is proportional: a larger stock price naturally produces larger absolute price movements while preserving the same percentage uncertainty.</p> <p>In the previous paper, this framework was exactly what allowed us to derive the dynamics of derivative prices and motivate delta hedging in continuous time.</p> <p>The weakness of this framework is precisely what we saw in the TSLA example. Because Brownian motion has continuous sample paths, GBM does as well. Even if the stock moves violently, it must still pass through every intermediate value between one moment and the next. The overnight gap behaves differently. Between Friday's close and Monday's open, the market does not slide smoothly through all prices in between, but instead reprices discontinuously once new information is absorbed through the opening auction. That is exactly the kind of behavior the original GBM framework cannot produce, so we need a source of randomness that arrives not as a continuous stream of small fluctuations, but as discrete events occurring at random times.</p> <h3>Jumps, Intuitively</h3> <p>In real markets, some price changes do not come from the steady accumulation of many small fluctuations, but from discrete events: an earnings surprise, a central bank announcement, geopolitical news, or a sudden wave of forced liquidation. These events arrive unexpectedly, and when they do, the market may reprice almost instantly.</p> <p>To model this, we first introduce a process that counts how many such events have occurred by time $t$. Denote this process by $N_t$, where</p> <div class="math-block"> $$N_t = \text{number of jump events that have occurred up to time } t.$$ </div> <p>Unlike Brownian motion, which is continuously moving, this process stays constant for periods in which no event occurs and then increases by 1 whenever a jump event arrives. In the simplest jump models, $N_t$ is taken to be a Poisson process with intensity $\lambda > 0$, meaning that $\lambda$ describes the average rate at which jump events occur (per unit time).</p> <p>Over a very small time interval of length $h$, the Poisson assumption says that</p> <div class="math-block"> $$P(N_{t+h} - N_t = 1) \approx \lambda h, \qquad P(N_{t+h} - N_t = 0) \approx 1 - \lambda h,$$ </div> <p>while the probability of two or more jump events in that same interval is negligible. Over a longer horizon, this leads to</p> <div class="math-block"> $$N_t \sim \text{Poisson}(\lambda t).$$ </div> <p>However, knowing when a jump occurs is not enough. We must also specify how large the jump is. For that, we introduce a random variable $J$, called the jump multiplier. If a jump event occurs, then instead of moving smoothly, the stock price is instantaneously rescaled:</p> <div class="math-block"> $$S_t \to J S_t.$$ </div> <p>This means that $J$ describes the proportional size of the jump itself. If $J = 1$, there is no change. If $J > 1$, the stock jumps upward. If $0 < J < 1$, the stock jumps downward. For example, if $J = 0.90$, the stock instantly loses 10% of its value, while if $J = 1.08$, it instantly gains 8%.</p> <p>In the Merton jump-diffusion model, it is often more convenient not to model $J$ directly, but instead to model its logarithm. We therefore define</p> <div class="math-block"> $$Y = \log J, \quad \text{so that} \quad J = e^Y.$$ </div> <p>The variable $Y$ is called the log-jump size. This is useful because Merton typically assumes that $Y$ is normally distributed, which implies that $J = e^Y$ is lognormally distributed.</p> <p>We now have the two ingredients that GBM was missing. The Poisson process $N_t$ tells us when jump events occur, while the random variable $J$ tells us how severely price reacts when they do. This gives us a way to model markets in which prices do not only diffuse continuously, but occasionally move discontinuously as well. That is exactly the idea behind the Merton jump-diffusion model.</p> <p>To visualize the idea more concretely, it is helpful to look at one sample path of a jump-diffusion process. Unlike GBM, which evolves continuously at every instant, a jump-diffusion path combines two different types of movement. Most of the time, the process wanders in the familiar noisy way produced by Brownian motion. Occasionally, however, a jump event arrives, and the path shifts abruptly to a new level.</p> <!-- Figure 2: Jump-diffusion sample path --> <div class="figure-block"> <img src="https://cdn.prod.website-files.com/6913793ee068962f268ed83c/69e538714f17406ae3d784ea_jump_diffusion_sample_path.png" alt="Sample path of a jump-diffusion process" style="max-width:100%;height:auto;border:1px solid #ddd;border-radius:4px;"/> <div class="figure-caption">Figure 2: A sample path of a jump-diffusion process. Most of the motion is continuous and noisy, but occasional jump events cause abrupt discontinuous changes in level.</div> </div> </div> <h3>The Merton Jump-Diffusion Model</h3> <p>The Brownian term $W_t$ gives us the continuous background noise of the market, the Poisson process $N_t$ gives us random jump arrival times, and the jump multiplier $J$, or equivalently the log-jump size $Y$, tells us how large the price change is when such an event occurs. Merton's idea was to combine these pieces into a single model for stock prices, preserving the familiar continuous motion of GBM while adding a mechanism for sudden discontinuous repricing.</p> <p>The resulting process is called the <em>Merton jump-diffusion model</em>, and it is written as</p> <div class="math-block"> $$dS_t = \mu S_t \, dt + \sigma S_t \, dW_t + (J - 1) S_t \, dN_t.$$ </div> <p>This equation says that the stock evolves through three separate channels. The first term, $\mu S_t \, dt$, is the drift term, describing the stock's average proportional growth over a small time interval. The second term, $\sigma S_t \, dW_t$, is the diffusion term inherited from GBM, capturing the continuous stream of small random fluctuations generated by the market. The third term, $(J - 1) S_t \, dN_t$, is the new jump component. It activates only when a jump event arrives.</p> <p>To see this more clearly, observe that over an infinitesimal time interval, the Poisson increment $dN_t$ can only take the values 0 or 1 with overwhelming probability. If</p> <div class="math-block"> $$dN_t = 0,$$ </div> <p>then no jump occurs during that interval, and the model reduces locally to the usual GBM dynamics</p> <div class="math-block"> $$dS_t = \mu S_t \, dt + \sigma S_t \, dW_t.$$ </div> <p>If instead</p> <div class="math-block"> $$dN_t = 1,$$ </div> <p>then a jump event occurs, and the additional term becomes</p> <div class="math-block"> $$(J - 1) S_t.$$ </div> <p>So the stock is instantaneously pushed from $S_t$ to</p> <div class="math-block"> $$S_t + (J - 1) S_t = J S_t.$$ </div> <p>This is exactly the discontinuous repricing mechanism that GBM could never produce. Under Merton's model, the stock still diffuses most of the time, but every so often a jump event arrives and the price is rescaled in one shot.</p> <p>At this point, one could try to specify a probability distribution directly for $J$. Merton instead models the logarithm of the jump multiplier:</p> <div class="math-block"> $$Y = \log J, \qquad J = e^Y.$$ </div> <p>The reason for this choice is both mathematical and financial. First, it guarantees that $J > 0$, so the stock price remains positive after a jump. Second, it is natural to think of jumps in return terms, since $\log J$ is the instantaneous log-return generated by the jump. In the Merton model, one usually assumes that</p> <div class="math-block"> $$Y \sim \mathcal{N}(m, \delta^2),$$ </div> <p>which means that the log-jump size is normally distributed with mean $m$ and variance $\delta^2$. As a result, the jump multiplier $J = e^Y$ is lognormally distributed.</p> <p>This gives the model a useful economic interpretation. The parameter $\lambda$ controls how frequently jump events arrive. The parameter $m$ controls the average direction and size of jumps in log-return terms. The parameter $\delta$ controls how uncertain jump size is from one event to the next. Meanwhile, $\mu$ and $\sigma$ continue to play their usual roles from GBM, governing average drift and continuous volatility between jumps.</p> <p>It is also possible to write the model in integrated form. If $N_t$ jump events have occurred by time $t$, and their log-jump sizes are $Y_1, \ldots, Y_{N_t}$, then the stock price may be expressed as</p> <div class="math-block"> $$S_t = S_0 \exp\left(\left(\mu - \frac{1}{2}\sigma^2\right)t + \sigma W_t\right) \prod_{i=1}^{N_t} e^{Y_i}.$$ </div> <p>Equivalently,</p> <div class="math-block"> $$S_t = S_0 \exp\left(\left(\mu - \frac{1}{2}\sigma^2\right)t + \sigma W_t + \sum_{i=1}^{N_t} Y_i\right).$$ </div> <p>A derivation of this representation, and of jump-diffusion models more generally, can be found in Merton's original paper and in standard references such as Shreve and Cont-Tankov. Even without deriving it here, the formula makes the model's structure especially transparent. The first part is the familiar GBM component. The second part, the sum of the jump sizes, accumulates the effect of all discontinuous shocks that have occurred up to time $t$. In other words, Merton's model says that log-price evolves through a continuous Brownian part plus a random sum of jump contributions.</p> <p>This is why the model is a good extension of GBM. It can now drift, diffuse, and jump. At the same time, it is still only a first correction. The model assumes a constant jump intensity, a fixed distribution for jump sizes, and a constant diffusion volatility, all of which are strong simplifications once real markets enter stressed regimes.</p> <p>These limitations motivate more advanced frameworks, including stochastic-volatility, local-volatility, and rough-volatility models. Readers interested in that direction may consult Gatheral, Jaisson, and Rosenbaum for the rough-volatility viewpoint, and Bayer, Friz, and Gatheral for the rough Bergomi framework.</p> <h3>From Theory to Implementation: Event-Driven Trading</h3> <p>Once the Merton jump-diffusion model has been specified, it can be used not only to simulate price paths, but also to study whether the market is pricing jump risk correctly. Suppose the market price of an option is</p> <div class="math-block"> $$V^{\text{mkt}},$$ </div> <p>while our own event-adjusted jump-diffusion model assigns it the value</p> <div class="math-block"> $$V^* = V(S, t; \theta^*),$$ </div> <p>where $S$ is the current stock price, $t$ is the current time, and</p> <div class="math-block"> $$\theta^* = (\mu, \sigma, \lambda, m, \delta)$$ </div> <p>collects the parameters of the model: drift, continuous volatility, jump intensity, mean log-jump size, and jump-size uncertainty. If</p> <div class="math-block"> $$V^* > V^{\text{mkt}},$$ </div> <p>then the option appears underpriced relative to our model; if</p> <div class="math-block"> $$V^* < V^{\text{mkt}},$$ </div> <p>then it appears overpriced.</p> <p>A natural response is to trade the option and hedge part of its ordinary price exposure with the underlying. This leads to the portfolio</p> <div class="math-block"> $$\Pi_t = V_t - \Delta_t S_t, \qquad \Delta_t = \frac{\partial V}{\partial S}(S_t, t).$$ </div> <p>Here, $V_t$ is the option value, $S_t$ is the stock price, and $\Delta_t$ measures how much the option changes for a small change in the stock. In practice, listed equity options usually represent 100 shares, so one contract with delta $\Delta_t$ has total delta $100\Delta_t$. Delta hedging therefore means trading the underlying so that this first-order exposure is approximately offset. The goal is not to make the portfolio's value equal to zero, but to make its sensitivity to small continuous price movements approximately equal to zero.</p> <p>However, this hedge does not remove jump risk. If the stock jumps instantaneously from $S_t$ to $JS_t$, then the hedged portfolio changes by approximately</p> <div class="math-block"> $$\Delta\Pi_{\text{jump}} = \left[V(JS_t, t) - V(S_t, t)\right] - \Delta_t(J - 1)S_t.$$ </div> <p>The first term is the option's actual repricing after the jump, while the second is the amount offset by the stock hedge. These are generally not equal, because delta only describes the option's response to small local moves, not large discontinuous ones. This is where the model becomes useful in practice for us: delta hedging can reduce our smooth price risk, but it cannot eliminate the nonlinear exposure to a sudden shock. An event-driven trader is therefore not directional. He relies on whether the market is pricing the probability and size of such discontinuous moves correctly.</p> <h3>A Case Study: Pricing Shock Risk in the Strait of Hormuz</h3> <p>As a simple case study, suppose a trader like you believes the market is underpricing the magnitude of a potential shock related to tensions in the Strait of Hormuz. If the direction is uncertain but the magnitude is believed to be underpriced, a natural instrument is a straddle. Let</p> <div class="math-block"> $$V^{\text{mkt}}_{\text{straddle}} = C^{\text{mkt}}_t + P^{\text{mkt}}_t$$ </div> <p>denote the market price of the straddle, and let</p> <div class="math-block"> $$V^*_{\text{straddle}} = C^*_t + P^*_t$$ </div> <p>denote its value under the trader's event-adjusted jump-diffusion model. If</p> <div class="math-block"> $$V^*_{\text{straddle}} > V^{\text{mkt}}_{\text{straddle}},$$ </div> <p>then the market is underpricing exposure to a large discontinuous move, so buying the straddle expresses the view that jump risk is too cheaply priced.</p> <p>If the trader wishes to reduce sensitivity to ordinary small price movements in oil, the straddle's delta may be hedged with crude oil futures:</p> <div class="math-block"> $$\Pi_t = C_t + P_t - \Delta_{\text{straddle},t} F_t, \qquad \Delta_{\text{straddle},t} = \frac{\partial C}{\partial S}(S_t, t) + \frac{\partial P}{\partial S}(S_t, t).$$ </div> <p>This does not eliminate all risk, but only reduces first-order exposure to small continuous moves. What remains is the nonlinear exposure to a sudden repricing event.</p> <h2>Conclusion</h2> <p>Geometric Brownian Motion remains one of the most elegant starting points in quantitative finance, but its elegance comes from a strong assumption: that prices evolve continuously. Real markets do not always behave that way. Earnings releases, geopolitical shocks, opening auctions, and forced liquidations can all produce discontinuous repricing that a pure diffusion model cannot capture. The Merton jump-diffusion model addresses this by combining the continuous randomness of Brownian motion with a second source of randomness driven by sudden event arrivals. This makes the model more realistic for gap risk, but also more honest about hedging. Delta hedging can neutralize small continuous price movements, but it cannot fully eliminate the effect of jumps. In that sense, the real lesson is not simply that markets are noisy, but that some of their most important risks arrive discontinuously.</p> <h3>References</h3> <style> .ref-list { list-style: none; padding: 0; margin: 0; } .ref-list li { padding-left: 2.5em; text-indent: -2.5em; margin-bottom: 0.8em; } </style> <ul class="ref-list"> <li>[1] Robert C. Merton, <em>Option Pricing When Underlying Stock Returns Are Discontinuous</em>, Journal of Financial Economics, 3(1–2), 125–144, 1976.</li> <li>[2] Steven E. Shreve, <em>Stochastic Calculus for Finance II: Continuous-Time Models</em>, Springer, 2004.</li> <li>[3] Rama Cont and Peter Tankov, <em>Financial Modelling with Jump Processes</em>, Chapman &amp; Hall/CRC, 2004.</li> <li>[4] Jim Gatheral, Thibault Jaisson, and Mathieu Rosenbaum, <em>Volatility is Rough</em>, Quantitative Finance, 18(6), 933–949, 2018.</li> <li>[5] Christian Bayer, Peter K. Friz, and Jim Gatheral, <em>Pricing under Rough Volatility</em>, Quantitative Finance, 16(6), 887–904, 2016.</li> </ul>