Good evening everyone, I would like to ask a question about Monte Carlo and PDE Pricing. For an American option, which one should we use, Monte Carlo method or PDE method? The same question for an Asian option such as an Asian call? As far as I know, PDE method have a downside which is the curse of dimensionality. However, I wonder whether this should be the main reason why Monte Carlo method is the favorite one? Thanks in advance!


3 Answers 3


To compliment some of the other answers and comments, I think it's useful to consider two other note worthy factors when deciding to do a PDE or MC approach. (Noting that if the dimensionality is high your hands are tied and MC methods are likely the only tracable means). If I were tasked with using MC or PDE methods these would be two considerations I would give serious consideration to.

Do you have to implement this from scratch?

In my experience it is very simple to write some basic MC implementations. In fairness writing high performance MC codes introduces extra difficulties, but a short vanilla MC application is very easy to set up from scratch.

However, on the other hand PDE methods (in my opinion) are typically harder to get up and running and working. These require linear algebra packages, specifying boundary conditions, and if you want to set up PDEs in some weak/strong form for things more complicated than finite differences, (e.g. finite element), then the hurdle to use these software packages can be quite high.

What hardware do you have to hand?

MC methods are trivially suited to parallelisation, and so if you have a huge cluster of cores, nodes, GPUs, etc, or a big company/department/lab super computer, then getting an implementation to take advantage of this using MC is relatively easy. Relative to extending PDE methods, which again require much more care.

And when things get nasty?

Of course each also has its own downfalls which are likely specific to the particular SDE and payoff under consideration. MC methods need to be stable, perhaps avoid non negative processes, etc. Similarly PDEs also suffer from similar problems. Overall though for a specific example there may be properties which are more favourable to one method or another.


For American (or any HJB problem), numerical methods are depending on the dimensionality.

Below dimension 3 (even 4), a PDE will do the job nicely, whereas above, MC methods are more appropriate.


There are many factors to consider. But mainly, in my opinion, you may choose the method depending on the complexity of the option and the resources you have. PDE method is usually used to solve problem whose complexity level is similar to problems you may solve using trees, and that using other approaches is not suitable.

In the other hand, using Monte Carlo allows you to consider any property you may think when creating an option, as long as you can model it.

  • 1
    $\begingroup$ It's not so straightforward to value American options with Monte Carlo. You don't know the exercise boundary ex-ante -- it has to be determined at each point along the path by optimization (do you exercise or hold). The LSM method of Longstaff and Schwartz is a method for approximately solving that optimization problem, but it's not so simple to implement. $\endgroup$ Sep 14, 2016 at 15:33
  • $\begingroup$ @FosterBoondoggle I agree. Monte Carlo can be used for anything. However, it requires LSM or something like that for early exercising. The vanilla implementation can't handle it. $\endgroup$
    – SmallChess
    Sep 15, 2016 at 1:55
  • $\begingroup$ I didn't say it is straightforward, you need to model it.But as long as you can create the model, you can value it. In my old company we created a system to valuate all kinds of options by designing their payoffs. $\endgroup$
    – arodrisa
    Sep 15, 2016 at 18:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.