Back to glossary
M

Monte Carlo Simulation

Learn what Monte Carlo simulation is, why it works, and how to use it in finance. Clear examples, simple math, and a short Python example for option pricing.

Quick summary

Monte Carlo simulation is a way to use random numbers to model uncertain outcomes. You create many possible futures, run the model on each, and look at the spread of results. It helps answer questions like "What range of returns might my portfolio have" or "What is the likely price of an option under uncertainty."

What it is

Monte Carlo simulation uses random sampling to estimate an answer you cannot get exactly. Instead of solving a complex formula, you simulate many scenarios and take statistics of the outcomes.

Key ideas:

  • Replace hard math with many random trials.
  • Use a model to generate each trial.
  • Summarize results with mean, median, percentiles, or probability of events.

The name comes from the Monte Carlo casino. It was first used for physics problems in the 1940s. Today it is everywhere in finance, engineering, and science.

Why it works

When you do many random trials, the average of those trials tends to approach the true expected value. This is the law of large numbers. More trials give a more accurate estimate. The central limit theorem explains how the distribution of averages behaves and lets you build confidence intervals.

In simple terms:

  • Randomness approximates uncertainty.
  • Many samples smooth out random noise.
  • The result is a practical estimate when exact solutions are hard.

Where it is used in finance

Common finance uses:

  • Portfolio risk and return. Simulate future returns to see possible portfolio values.
  • Value at Risk (VaR). Estimate the worst expected loss over a time horizon with a given confidence.
  • Option pricing. Simulate underlying asset paths to estimate payoffs.
  • Stress testing. Model extreme but plausible scenarios to check resilience.
  • Capital budgeting. Simulate cash flows for uncertain projects.

A step by step process

  1. Define the model. Choose how the variables evolve. For example, returns follow a normal distribution.
  2. Set parameters. Use historical volatility, drift, correlation, or expert estimates.
  3. Generate random samples. Use a random number generator to create paths or scenarios.
  4. Evaluate outcomes. For each sample, compute the quantity you care about, like portfolio value.
  5. Summarize. Compute mean, standard deviation, and percentiles. Report probabilities of key events.

Simple example: estimating option price

Imagine a European call option on a stock. The stock follows geometric Brownian motion. You can simulate many stock price paths at maturity, compute the option payoff max(S - K, 0) for each path, and take the average discounted back to today.

Short Python example

import numpy as np

S0 = 100.0    # current price
K = 105.0     # strike
r = 0.02      # risk free rate
sigma = 0.25  # volatility
T = 1.0       # years
n_sim = 100000

# simulate final stock prices
Z = np.random.normal(size=n_sim)
ST = S0 * np.exp((r - 0.5 * sigma**2) * T + sigma * np.sqrt(T) * Z)

# compute discounted payoffs
payoffs = np.maximum(ST - K, 0)
option_price = np.exp(-r * T) * np.mean(payoffs)

print("Estimated call price:", option_price)

This is easy to change. Use more simulations to reduce error. Use antithetic variates or variance reduction to get better accuracy with fewer runs.

Pros and cons

Pros:

  • Flexible. Works with complex models and nonstandard distributions.
  • Intuitive. You think in scenarios, not closed form formulas.
  • Scalable. Run more trials for more precision.

Cons:

  • Computational cost. Many trials can be slow.
  • Garbage in, garbage out. Bad model assumptions give bad results.
  • Approximate. It gives estimates and confidence intervals, not exact answers.

Practical tips

  • Calibrate your model to real data before trusting results.
  • Use correlated random variables when simulating multiple assets.
  • Start with a small number of trials to sanity check the model.
  • Increase trials until the estimate stabilizes.
  • Try variance reduction methods if you need precision with fewer runs.

Interpretation and reporting

Always report:

  • Number of simulations.
  • Model assumptions and parameters.
  • Mean, standard deviation, and key percentiles.
  • Confidence intervals when possible.

Be honest about uncertainty. Monte Carlo gives a distribution, not a single truth.

Further reading

If you want to go deeper, study:

  • Geometric Brownian motion and Ito calculus for rigorous models.
  • Variance reduction techniques like control variates and importance sampling.
  • Practical guides on Monte Carlo in finance for portfolio and option applications.

Monte Carlo is a tool. It will not replace good judgment. Use it to make decisions based on likely outcomes, not to pretend you know the future.

Related Terms