• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Stulz Model and Monte Carlo Simulation


I'm trying to reply Stulz Model closed solution by Monte Carlo Simulation but I don't obtain the same output for a basket of two equities. I mean the option price for Min(Equity 1, Equity 2).

I'm using the Matlab’s function minassetbystulz and Espen Gaarder Haug excel function. In both cases, I obtain the same option price but when I use Monte Carlo Simulation I don’t obtain the same option price. To simulate the basket I consider Cholesky.

I price vanilla options by Monte Carlo Simulation (I mean the script used to simulate) and the option prices are similar than Black Scholes for the two equities; so I guess there are not mistakes in Monte Carlo Simulation script.

Any idea?

It means your MC algorithm is wrong. You have an error or default (somewhere) in your algo/code.

To be honest, there's no way to help because there's no real information to go on.. Some ways to help;

  1. What are the input?
  2. Output (Espen Haug's and yours)?
  3. Algortthm used.
  4. Does it work some parameters (sometimes/never)
  5. MC parameters and RNG
Last edited:
Dear Daniel Duffy, thanks for your answer.

To price a Worst of option for two underlyings I use matlab's function minassetbystulz and Haug's VBA function. I get the same price. As matlab's function minassetbystulz and Haug's VBA function consider only one strike price, I "transform" the original prices. So the inputs are:

S1(*) = S1/K1
S2(*) = S2/K2
K = 1
Inputs for interest rate, volatilities and dividen yields are as usual.

I price a Worst of using MC Simulation for S1 and S2 prices; and also for S1() and S2().

In order to validate my MC Simulation algorithm I only price vanillas options for every single underlying of a correlated basket. To correlate I used matlab's Chokesky function. For every single underlyng I price a Call and a Put option and compare with Black Scholes. As the differences are neglibible (I guess, by the number of simulation), I considered my MC Simulation algorithm is correct (now I have doubts).

I will check RNG (I use a matlab's function) and I'll incorporate pseudo random numbers in MC Simulation.

After solving this little problem I would like to use Heston Model.

Thanks again