# Monte Carlo Options Probability Calculation

I have a fairly simple problem for an application I am writing currently. How do you calculate the options probability of being in the money or touching a certain strike price. I know there are at least two ways of doing it. One would be to derive it from the options pricing and the Black Scholes formula, but the other which interests me probably more would be to run a monte carlo simulation given the target strike, current strike, IV and days to expiration. What do you think are the advantages/disadvantages of each method, which one is easier to implement methematically/programatically and what is the math in layman terms of the easier to implement method. Any help will be appreciated!

I just want to point out that i come from a developer background and not math/stats one so if you can please provide any answers in very plain terms that would be great. Thanks!

-
BS: Simpler computationally speaking but very limited in regards to payoff functions, most non vanilla options do not have closed form solutions. MC: More computationally intensive but very flexible in its usage, including your choice of underlying price driven process. But this is not a forum to walk people through the basics of option pricing or Monte Carlo applications. Please google those topics for solid introductions and/or search this forum because questions about MC already exist here. –  Matt Wolf Sep 1 at 15:36
Thanks for your answer. I know the basics of the MC and how the simulation works. The problem is i dont know the correct formula to input to simulate the random stock price movement. –  Feras Sep 1 at 16:09
That was my point, there are ultimately unlimited ways how to model stock prices, some of which more standard than others. I am afraid your question is too broad and to answer it properly requires writing a whole book. Hence my suggestion to search for MC-related posts on this site, play with some of those suggestions and come back and ask more targeted questions (search for "Monte Carlo stocks"). –  Matt Wolf Sep 1 at 17:34
As Matt has mentioned, although BS allows for the explicit formula of the price in case of European call and put, things get much tougher in case you change the contingent claim - not to say the model itself. For example, the probability of a European call option being in the money can be regarded as a contingent claim given by $f(S_t):=1\{S_t\geq K\}$ where $1\{A\}$ here stands for the Indicator function of a set. In contrast to the normal payoff $g(S_t) = (S_t - K)^+$, $f(S_t)$ is a discontinuous function of the stock price which already gives you a new level of complexity. It shall not be a big problem for a parabolic PDE such as the one in BS case - and even an analytical solution may be known. However, if your model is different from BS - there are rarely analytical solutions to corresponding PDEs, so in the best case one hope to find an appropriate numerical solver.
Monte Carlo can actually outperform PDE numerical solvers when it comes to large-dimensional models. In addition, you can use the very same samples to price different stuff - that is if you are given a time horizon of a problem, you can run couple of millions of simulations and price call, put, lookback, barrier etc. You shall bear in mind that Monte Carlo gives you a result only up to some level of confidence - that is you may be extremely unlucky, and your outcomes may appear to be completely wrong, but often one tries pushing the confidence to be around $1-10^{-6}$ or even closer to $1$ - this will require running quite some samples, of course, but besides that Monte Carlo is a very flexible method. I would say a more fundamental drawback of it is that it does not fit well optimization problems - as an example, you can't use Monte Carlo directly to price American-style contingent claims unless you express the problem as a dynamic programming and run 1-step Monte Carlo simulations for each iteration.