# Tag Info

21

Monte Carlo is most useful when you lack analytic tractability or when you have a highly multidimensional problem. For example, even using simple lognormal and poisson models, there exist path-dependent payoffs or multi-asset computations such that no analytic solution exists and such that any PDE finite difference solution would require 3 or more ...

16

There are a wide variety of models (by which I mean the theoretical / mathematical formulation of how the underlying financial variable(s) of interest behave). The most popular ones differ depending on the asset class under consideration (though some are mathematically the same and named differently). Some examples are: Black-Scholes / Black / Garman-...

11

The difference between the two is that the first will lead you to a discretization scheme of the process. So you will have to simulate a whole (approximate) trajectory of (meaning by that $X'_{t_0},...,X'_{t_n}$) up to time $T$ (the expiry of your vanilla option) to get to $X'_T$ which is then only an approximation of $X_T$. The second method is exact and ...

10

Okay just to wind things down here, I think an important clarification is needed if readers might come and seek to a similar solution. The Geometric Brownian Motion (GBM) is a model of asset prices dynamics which is usually given as follows: $$dS_t = \mu S_t dt + \sigma S_t dB_t$$ where $B_t$ is a standard brownian motion which has several important ...

9

As far as I know MCMC and also (PMCMC) can be usefull for (bayesian) estimation of parameters of some Hidden process like in the Heston Model case based on observations of the Stock (filtering). But the problem here is that those estimates are not matching those based on calibration of vanilla options of the Risk Neutral measure. So as an econometric tool it ...

9

You are typically interested in evaluating $E\left[ f(X_T)-f(\bar{X}_T^{(n)}) \right]$ (refered as the weak convergence) $X_t$ the solution of the sde : $dX_t^x=b(X_t^x)dt+\sigma(X_t^x)dW_t$ $\bar{X}_t^{(n)}=b(\underline{t},X_{\underline{t}}^{(n)})\cdot (t-\underline{t})+\sigma(\underline{t},X_{\underline{t}}^{(n)})\cdot (W_{\underline{t}}-W_t)$ is your ...

8

The problem is that you are creating a new random number generator for each iteration. Move new MersenneTwister() out of the loop: MersenneTwister mtsign = new MersenneTwister(); MersenneTwister mt = new MersenneTwister(); for(int i = 0; i<= NumberOfTrials-1; i++ ) { // use mtsign and mt here ... } Furthermore, you don't need two generators, you ...

8

MCMC can be used for Bayesian inference of other models with hidden variables. Gibbs sampling, for example, is used in Hidden Markov Models. Here is a paper that discuss the differences between MCMC and the more classical approach using the EM algorithm. The question is: Are HMMs a useful model in finance? Some academics argue that they have predictive ...

8

I believe this is a nice paper for you to start with. Check out what references it cited and who cited it. Markov Chain Monte Carlo Analysis of Option Pricing Models "Use the Markov Chain Monte Carlo (MCMC) method to investigate a large class of continuous-time option pricing models. These include: constant-volatility, stochastic volatility, price jump-...

8

In this scenario, the "joint dynamics" are trivially computed since the option value is a known deterministic function of stock price. For example, the mean of the option value for time $\tau$ is $$\mu_O = \int_0^\infty BSM( S_\tau ) p(S_\tau) dS_\tau$$ which is best computed using quadrature as available in standard numerical libraries like scipy. The ...

8

You need to compute your greeks as finite differences, but the full procedure may be pretty tricky. I will use vega $\aleph$ as the example here. Let's begin by designating your Monte Carlo estimator as a function $V(\sigma,s,M)$ where $\sigma$ is the volatility as usual, $s$ is the seed to your random number generator, and $M$ is the sample count. To ...

8

You have the correct approach. (1) The simulation generates sampled portfolio values, $P_1,P_2, \dots, P_n$ at time $t=T$. VaR is specified as a left-tail percentile. Order the sample as $$P_{(1)} \leq P_{(2)} \leq \dots \leq P_{(n)}.$$ If you are considering $VaR_\alpha$ at the $100(1-\alpha) \%$ confidence level , then choose the smallest integer $k$ ...

7

Tools from the field of stochastic optimization are best suited for these problems. In particular, attached is a paper on non-parametric density estimation for stochastic optimization that describes an algorithm if state variables can be associated with draws from the predictive distribution. Here's another approach by Kuhn. These are all one-period ...

7

The main component of that option premium is (forward-looking) volatility $\sigma$. The very simplest formula you could use for ATM options is the Bachelier model $$\text{Call}_T = \sigma S \sqrt{\frac{T}{2\pi}}$$ where the time to expiration is $T$ and $S$ is the current underlying price. This formula is "wrong" strictly ...

7

Quasi Random Numbers are more tricky than it might seem, using them as a black box like with PRNGs is risky. E.g. an unscrambled Sobol' sequence is uniform only asymptotically, while for realistic sample sizes there are subvolumes with significantly different densities. You often do not realize that because the convergence graph looks good anyway, it gives ...

6

Fundamentally this is no different from other simulation-based estimation---see this little experiment in R: R> set.seed(42) R> rowMeans(replicate(200,sapply(1:6, +> FUN=function(x) mean(rnorm(10^x)), simplify=TRUE))) [1] -2.47827e-02 -9.46800e-03 2.38226e-03 -1.08650e-03 9.41395e-05 1.06759e-05 R> We are calculating the mean of ...

6

Check this document out: link to pdf file Also, if you are concerned with actual performance of your code and want to implement efficient code then gsl libraries would be the first place look at: link. It's got everything you need.

6

The best I have seen so far is William Wheaton's work in this area. I don't know how much is described in his papers but he and Torto created a system that combined factor models for things like local and national price indexes with specific economics of commercial real estate ventures (such as balloon payments on construction milestones and the like). The ...

6

For such high-dimensional path problems you will want to use the Morokov technique (you can find the paper online), which takes QR samples for the "important" dimensions and then reverts to pseudorandom for the less important dimensions in an interest rate problem remarkably similar to yours. (Similar principles apply to using QR sequences in factor model ...

6

I'm guessing, and correct me if I'm wrong, you want to create a number of possible paths the stock price could follow with the local volatilty given by GARCH depending on the simulated history, or in pseudocode: N <- numberOfPaths T <- numberOfSteps for (i in 1:N) { newSeries <- pastPrices for (t in 1:T) { epsilon <- normrnd(0,1) ...

6

You have the right intuition but the approach is not quite right. The issuer has the right to call back the bond at a pre-defined call price. So your decision criterion is "call when the value of the bond >= contractual call price". We are comparing prices in the decision rule, not the YTM of the callable bond with the coupon of the bond. Note that ...

6

Apart from numerical stability errors, Cholesky and PCA (without dim reduction) shall produce exactly the same distribution, they are two symmetric decomposition of the same covariance matrix and thus are equivalent for transforming a standard normal vector. Of course when doing different things with PCA components, such as in dim reduction or quasi Monte ...

6

the problem is that the pay-off has discontinuous first derivative. Try a contract with pay-off that is twice differentiable and it will probably work. The problem is that all the value comes from the tiny number of paths within $\Delta S$ of the strike, and these paths have huge value. This is a well-known problem. As the bump size goes to zero, the ...

6

importance sampling is well known to be tricky. See the extensive discussion in Glasserman's book. I presume that you are simply meanshifting and multiply by the ratio of normal densities. For this sort of problem, I'd use a more stratified algorithm instead and force every path to end in the money. To do this I'd compute the uniform that goes to the ...

6

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 when to stop. To be clear, let $E(X) = \mu$ and $Var(X) = \sigma$. We're invoking the CLT when we write $$P\left( \left|\frac{\bar{X}_n - \mu}{\sigma/\sqrt{n}}\... 6 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. These are the number of iterations requires in order for there to be an approximate 0.95 probability that the MC call price differs from the exact call price by ... 6 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 the price at t=0, best known as the option premium. Theory tells us that the latter premium can be computed as$$ \Pi_0 = e^{-rT} E^{\mathbb{Q}} \left[ \phi(...

6

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 of the NIG parameters under P carries over to Q in general, but especially the drift is the problem here. First use the mom gen function of NIG to find the ...

5

The very easiest change you can make is to switch to quasirandom sampling. I favor the Niederreiter sequence, for which you can find implementations in most languages around the web. You can also get a (sometimes tremendous) speed boost by running using a control variate. Even a swap would probably reduce your variance somewhat. I don't recall the CIR ...

5

Since both $ER$ and $S$ are gaussian random, why not just assume their dependence is captured by their covariance, and make your draws from the bivariate normal distribution? It is hard to construct any other way of making two marginal gaussians cointegrated. Even if the variables were not gaussian, you would probably find yourself relating them using a ...

Only top voted, non community-wiki answers of a minimum length are eligible