Options Monte-Carlo Simulator

Number of trials: : How many random walks are generated to approximate the distribution of returns of the underlying asset
Time 'till expiration: months: Also the time horizon over which the random walks are generated
Drift (Risk-free rate): yearly: The expected yearly return of the underlying asset in a risk-neutral economy
Volatility (Standard Deviation): yearly: Measures by how much the return in any particular random walk can deviate from the risk-free rate
Jump-frequency (expected): per year: The expected number of discontinuities (instantaneous price decrease) in the random walk
Jump-size (expected): times : The expected size of the discontinuites, as fraction of the then-current spot price, but not exceeding it.
Jump-volatility (Standard Dev.): : The uncertainty regarding the size of the jumps.
Spot price now:: How much, in cash, you have to pay for the asset today

   

Explanation, Applicable FunctionalCall PricePut Price
Strike Price
Plain-VanillaSpot-price at expiration exceeds (call) or falls below (put) strike price; in essence gives right to buy (call) or sell (put) asset at strike price
All-or-NothingFixed pay-out of 1 iff spot price at expiration exceeds/falls below strike price
Maximum
Max so far:
Maximum spot price over lifetime of the option exceeds/falls below strike price
Minimum
Min so far:
Minimum spot price over lifetime of the option exceeds/falls below strike price
Average
Avg so far:
for days
Average spot price over lifetime of the option exceeds/falls below strike price
Dividends
Deductible:
Receive the sum of all discontinuites in the asset's price over the option's life, minus 0. This is reminiscent of a casualty insurance policy. N/A

For the purpose of this calculator, an option is the right to obtain a payment at a certain time in the future, the size of which depends on the price development of a certain underlying asset (stocks, bonds, interest rates, market indices, weather), minus a deductible. Technically speaking, it is a functional on the realizations of a random walk. A call option yields a payment for the purchaser ("is in the money at expiration") equal to "value of the functional minus strike price", if and only if this difference is positive. A put option yields a payment for the purchaser equal to "strike price minus value of the functional", if and only if this difference is positive.

The random walk underlying this simulation is a generalized Wiener process with drift rate equal to the risk-free interest rate. A compound Poisson process with Poisson-distributed frequency and lognormally-distributed downward jumps (random "dividends") can be superimposed. The process is discretized, thus allowing a meaningful interpretation of "average price" of the asset over the lifetime of the option. There is no upper boundary, but the lower boundary "price = 0" is absorbing; i.e. if an asset's price falls to zero it is wiped out.

The fundamental question is: If the option still has some time until expiration, what is the fair price for it? As a risk-neutral investor, I should be indifferent between investing in the option or putting my money on a risk free savings account, giving me the risk-free rate for sure. The Black-Scholes option pricing model suggests that the risk-preference of the investor can be ignored in pricing the option "because the risk is already priced into the underlying asset".

To compute the fair market value of the option today, we simulate the price evolution of the asset a large number of time in order to get a probability distribution for the value of the option at expiration -- when the entire realization of the random walk is known and the intrinsic value of the option can be computed. We then determine the expected value of the option at expiration and discount to the present day at the risk-free rate.

Because this is a toy-calculator, based on a simple little script which runs on the server (as opposed to your own computer), the number of simulations (actually the maximum execution time of the script) will be limited. It may therefore be possible that reproducible results cannot be obtained. You can get any number of simulations by running the calculator a number of times and averaging the results by hand. Generally though, the more runs, the more stable the distribution per simulation, the better the result.