However, our Heston model still has a critical flaw. It's built entirely on Brownian Motion (), which is continuous. It follows the "no teleporting" rule from Lesson 1.2. This means our model is good at capturing the normal, everyday "jiggle" of the market, but it cannot capture a sudden, discontinuous crash.
Lesson 6.4: Fixing "No Jumps" - Jump-Diffusion (The Merton Model)
Welcome to Lesson 6.4. In our last lesson, we 'fixed' the biggest bug in the Black-Scholes model by creating the Heston Model. By making volatility σ a random process, σt, we were able to explain the 'volatility smile.'
The Second "Bug": The Problem of "Fat Tails"
The Black-Scholes model (and Heston) are built on the Normal Distribution (the "bell curve").
- In this model, a "10-sigma" event (like the 1987 crash where the market dropped 20% in one day) is so rare that its probability is practically zero ().
- But in the real world, these "impossible" events happen. They happen much, much more frequently than the bell curve predicts.
- This is the problem of "Fat Tails." The real distribution of stock returns has "fatter tails" (a higher probability of extreme events) than the "thin-tailed" bell curve.
Our continuous models cannot create these "fat tails." To model a crash, we need to "fix" our SDE. We need to add a new type of randomness.
Part 1: The "Fix" (Adding a New Random Engine)
Our current SDE (like GBM) has one "random engine":
- (Brownian Motion): This is the "jiggle" engine. It's responsible for the small, continuous, everyday volatility.
To "fix" the model, we need to add a second, independent random engine that is responsible for the "jumps."
This new model, created by Robert Merton in 1976, is called a Jump-Diffusion model. It says a stock's price is the sum of two types of randomness:
- A continuous "diffusion" (the "jiggle").
- A rare, discontinuous "jump" (the "crash").
Part 2: The "How" (The Poisson Process: Our "Jump Engine")
We need a mathematical model for a "jump event." A jump is a "click" that is almost always "OFF" (equal to 0) but occasionally, at a random time, flips "ON" (equal to 1) and triggers a jump.
The perfect model for this is the Poisson Process, which we'll call .
The Poisson Process (Nt): The "Geiger Counter"
A Poisson Process is the mathematical model for "rare, random, independent events."
- The Analogy: Think of a Geiger counter near a piece of uranium. It's mostly silent, but then... "click"... "click"... "click"... The "clicks" are random and independent.
- The Math (): is a "step function" that counts the number of "clicks" (jumps) that have happened by time .
- The Key Parameter (): The "intensity" or "arrival rate" of the jumps.
- (lambda) = 3 means we expect, on average, 3 jumps per year.
- The Infinitesimal Step (): For a tiny time step , our new "jump engine" can be one of two things:
- (No jump happened). This happens with very high probability, .
- (A jump "click" happened!). This happens with a very low probability, .
So, is our new "random switch." Most of the time it's 0, but sometimes it flips to 1 and *triggers* a jump.
Part 3: The Merton Jump-Diffusion Model SDE
Now we can build the full SDE in our "magic" risk-neutral world ().
Step 1: The Jump Size (J)
When our "switch" flips to 1, a jump happens. How big is it? Merton assumed the *percentage* jump size, , is *also* a random variable, drawn from its own bell curve, .
Step 2: The SDE
The full SDE for the stock price is:
Let's plug in the pieces:
Deconstructing the Merton Model
Let's translate this "wall of math":
- (The "Jiggle"): This is the Diffusion part. It's the normal, everyday, continuous volatility from Black-Scholes.
- (The "Jump"): This is the new part.
- Most of the time, , so this entire term is 0. (No jump).
- Occasionally (with probability ), . The stock price *instantly* moves from to . It "jumps" by a random percentage .
- (The "Drift"): This is the most complex part, but it's just a "correction."
- In our "magic" world, the stock *must* earn the risk-free rate .
- We are adding jumps () that happen, on average, times per year. Let's say the average jump size is .
- We are adding of "jump drift." To make the total drift equal , we must subtract this "jump drift" from the "normal drift."
- So, the "normal drift" is . This is the "compensator" that makes the whole model "fair" (i.e., a martingale).
Part 4: The "So What?" (Pros vs. Cons)
- Pro: This model is much more realistic. It "fixes" the "no jumps" bug and, because it allows for sudden crashes, it can create the "fat tails" and "volatility smile" we see in the real market.
- Con: It's hard. We now have two sources of randomness ( and ). The beautiful, simple Black-Scholes PDE (from Module 4) is broken. It becomes a "Partial Integro-Differential Equation" (PIDE), which is a mathematical nightmare to solve.
- How we solve it: Monte Carlo! This is what Monte Carlo was built for. It's trivial to add this to our simulation from Lesson 6.2.
Example: Monte Carlo Code for Merton Model
Your simulation code from Lesson 6.2 just gets one "IF" statement:
- Calculate the "jiggle" part (the from the term).
- Generate a random number. If it's *less than* , trigger a "jump."
- If a jump is triggered:
- Generate *another* random number for the jump size .
- Add the "jump" part to the from step 1.
- Add the total to the price and move to the next step.
- Volatility () is constant FIXED (with Heston's stochastic )
- The path is continuous FIXED (with Merton's jump process )
We have now "fixed" two of the three broken assumptions of Black-Scholes:
But what about the *last* broken assumption?
We've been assuming the interest rate is a constant, known number (e.g., 5%).
This assumption is fine for pricing *stocks*, but what about pricing *bonds* or *interest rate swaps*? A bond's entire value is *determined* by interest rates. If we assume is constant, we're assuming bond prices never change! This is obviously wrong.
We need to "fix" . We need to give *its own* SDE.
This leads to our final lesson: Lesson 6.5: Stochastic Interest Rates (Vasicek & CIR).