13
votes
Accepted
Two correlated brownian motions
First you need to correct the formula to:
$$
W_t^2 = \rho W_t^1 + \sqrt{1-\rho^2} Z_t,
$$
where $Z_t$ is a BM independent of $W_t^1$
If you calculate the variance and the covariance, then you see ...
13
votes
Accepted
Least Squares Monte Carlo
To compute the price of an American option or a callable instrument in general, at each potential exercise date, one is required to compare its continuation value (discounted risk-neutral expectation ...
12
votes
Two correlated brownian motions
Here is the general approach you can follow to generate two correlated random variables. Let's suppose, X and Y are two random variable, such that:
$$X \sim N(\mu_1, \sigma_1^2)$$
$$Y \sim N(\mu_2, \...
10
votes
Accepted
How to simulate Levy processes
You have many different options. Firstly, you know the characteristic function for the log stock price and, using inversion, you can recover the (inverse) distribution and density function and ...
9
votes
Stopping Monte Carlo simulation once certain convergence level is reached
You have the right idea, but it seems you don't know $\mu$, so using it in your error check doesn't seem correct. Also, checking the result every 10,000 iterations may not be optimal for deciding ...
9
votes
Accepted
How are Brownian Bridges used in derivatives pricing in practice?
Yes, the term Brownian Bridge seems to be used loosely. I assume you are talking about continuously monitored barriers by the way, since you mention the probability of the barrier being crossed in ...
8
votes
Accepted
rate of convergence for Monte Carlo
The estimation error is a random variable and not a simple scalar. As such, when performing one-shot assessments, you could always end up observing that using $6400$ paths provides a "better" price ...
8
votes
Least Square Monte Carlo - american Call Option
If implemented properly, least-squares Monte Carlo as originally suggested by Longstaff-Schwartz should allow you to identify sub-optimal exercise dates and a lower bound of the true option price. ...
8
votes
Accepted
Multithreading Monte-Carlo pricing in QuantLib for a single product
Yes, it can work. However, keep in mind that:
you'll be safer if you don't share any objects between threads; see my answer here, in particular the last point;
even if you use different seeds, there'...
8
votes
Accepted
Why are Interest Rate Swaps not valued using Monte Carlo Simulations?
Forward rates are determined from current spot rates bootstrapped from traded instruments. The reason is that if the forwards were different from the ones inferred from the spot rates, there would be ...
8
votes
Limitations of Monte Carlo simulations in finance
The properties of standard Monte-Carlo are not determined solely by the underlying process. You need to include the instrument $f$ you want to price in your analysis as well.
One measure for accuracy ...
7
votes
Accepted
Deep ITM Call Implied Vol via Monte Carlo
[Short answer]
IMHO there is a fundamental problem with wanting to extract a sound implied volatility figure out of a deep ITM option's price. You should use out-of-the-money forward options (OTMF) ...
7
votes
Accepted
Calibration by monte carlo, should I fix my seed?
It is not cheating. It allows you to make your results (e.g. prices, calibrated parameters) 'reproducible' which is good. However, fixing the seed can hide convergence issues. When the variance of ...
7
votes
Limitations of Monte Carlo simulations in finance
When I was first tasked with implementing VaR using MC in the 1990s, I knew little about MC, and there were no good books. The draft manuscript of Reuven Y. Rubinstein, Dirk P. Kroese. Simulation and ...
7
votes
Accepted
Problem with pricing a call option using the Monte Carlo Vasicek model
To make sure that I understand the problem: you are trying to price a call option expiring at time 0.5, which will exercise into a unit notional zero-coupon bond with a maturity of 1.0 at a strike (...
6
votes
Accepted
How many monte carlo runs do I need for pricing a Call?
It really, really, really depends on your parameters, i.e. $r$, $\sigma$, $K$, $T$, $S_0$. For example, here are some results from implementing the stopping criteria I explain in my answer here. ...
6
votes
Pricing a log-contract using Monte Carlo
By definition, the payoff of a log-contract of maturity $T$ writes
$$ \phi(S_T) = \ln\left(\frac{S_T}{S_0}\right) $$
Let $\Pi_t$ denote the $t$-value of such a contingent claim. We are interested in ...
6
votes
Accepted
Interpret simulation results ($P$ and $Q$ measures)
I believe that the confusion arises because of the wrong treatment of NIG. The answer to the question you link is misleading, as it simulates under P which is not appropriate for option pricing. None ...
6
votes
Accepted
How to perform Monte-Carlo simulations to price Asian options?
Instead of simulating the spot price, simulate its logarithm since the latter can be simulated exactly for any time step.
\begin{equation}
\ln S_{t + \Delta t} = \ln S_t + \left( r - \frac{1}{2} \...
6
votes
Accepted
Pricing a double barrier option using Monte Carlo (C++ & Python code included)
Here are at least three mistakes in your code:
p += s0 * exp(...) should be p *= exp(...).
Your volatility and rates are per ...
6
votes
Local Volatility with Monte Carlo Simulation
Let the risk-neutral dynamics under your LV model be given by
$$ \frac{d S_t }{S_t } = \mu_t dt + \sigma(t,S_t) dW_t $$
Let's drop the drift contribution (not relevant here) and apply Itô's lemma to ...
6
votes
Risk Neutral and Real World Valuations using Monte Carlo
You probably wonder whether $\mathbb{E}^\mathbb{P}[P_T\mid\mathcal{F}_t]= \mathbb{E}^\mathbb{Q}[P_T\mid\mathcal{F}_t]$. Note the $T$ as index, i.e. the future unknown payoff and not the current price $...
5
votes
Accepted
Testing a Monte Carlo simulation independently
I wouldn't repeat the same algorithm on Excel, because if you make a mistake in your Python code, it's likely that you'll also make the same mistake in your Excel code.
Quants usually test an ...
5
votes
Can call options be priced with Least-Squares Monte Carlo?
American calls on a non-dividend paying stock are worth the same as European ones so there is no point to using least-squares.
5
votes
Interpret simulation results ($P$ and $Q$ measures)
You should see this as a comment to @Kiwiakos answer which already hit the bull's eye.
In the SE question you're referring to and to which I have answered, the idea was simply to provide you with a ...
5
votes
Accepted
Is This A Viable Alternative Options Pricing Method?
You are trying to price an option through Monte Carlo simulations. Here is how it should work, assuming the Black-Scholes diffusion framework.
Under the Black-Scholes model's assumptions, the value ...
5
votes
How to generate simulated stock price from historical data using R?
This approach is rather crude. It only takes the mean and volatility of the historical returns and assumes a very simple model. I'm not sure if you have much experience with Time Series, but your ...
5
votes
Do we need to derive the PDE for the option price when applying Least Squares Monte Carlo?
You do not need the PDE to implement the LSM algorithm.
The $T$ maturity American call price on time $t$ is
$$v_t = \max_{\tau} E_t\left[e^{-\int_t^\tau r(u) du} (S_\tau - K)^+\right]$$ where the max ...
5
votes
Multithreading Monte-Carlo pricing in QuantLib for a single product
Adding to Luigi's answer, second point: The issue of overlapping Mersenne Twister sequences can be addressed with dynamically created Mersenne Twister Generators, cf. http://www.math.sci.hiroshima-u....
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
monte-carlo × 540option-pricing × 128
options × 73
simulations × 73
programming × 70
black-scholes × 35
american-options × 35
stochastic-processes × 33
value-at-risk × 32
brownian-motion × 30
interest-rates × 24
heston × 21
numerical-methods × 20
quantlib × 16
risk-neutral-measure × 15
local-volatility × 15
derivatives × 14
exotics × 14
volatility × 13
greeks × 13
hullwhite × 13
correlation × 12
distribution × 12
asian-option × 12
barrier × 11