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!
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.
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.