I am trying to reduce the Monte Carlo variance with Control Variates technique. In practice, I am able to reduce it with a generic European Call option, with the following formulas:

$$ Z_{CV} = \frac{1}{n} \sum^n_{i=1}(\bar{Z}-c(\bar{ X }-E[X])) \\ V[Z_{CV}] = \frac{1}{n} ( \sigma^2_z+c^2\sigma^2_x-2c\rho_{xz}\sigma_x\sigma_z ) \\ $$ Where $\bar{Z} = \max(S_i-K,0)$, $\bar{ X }$ is a correlated process, in this case I have choosen it as $S_i$ (underlying asset of option) obtained from MC simulation, $E[X]$ is equal to $S_0$.

Using these formulas, I am able to reduce the variance and obtain a better result for a Call option, but if I have to consider a put option, I have $\bar{Z} = \max(K-S_i,0)$, but is there any other change that I have to do in the formulas above? Because the result is good for call, but worse for put..


1 Answer 1


with control variates you are trying to reduce the variance of your Monte Carlo estimate. That is true, but you have to be careful, and properly understand what you are doing.

Consider a random variable X and a sequence of i.i.d random variables $X_i$ having same distribution of $X$. Then we have the following Monte Carlo approximation: $$E[X] \approx \frac{1}{n}\sum_{i=1}^nX_i,$$ which has a certain variance $\sigma^2$.

Now assume to have a second random variable $Y$ for which we analytically know the expected value, say $\mu_Y$.

We construct the random variable Z as: $$Z = X - c(Y - \mu_Y).$$ Note that $E[Z] = E[X]$. But what about its variance? Well, let's calculate it: $$Var(Z) = \sigma_X^2 + c^2\sigma^2_Y - 2cCov(X, Y).$$ The minimum of this variance is attained when: $$c^* = \frac{Cov(X, Y)}{Var(Y)}.$$ However, we see that if $Cov(X, Y) < 0$ the variance of Z is actually GREATER than the one of X.

Now, if you have a sequence $Y_i$ being i.i.d. you can get $$E[X] \approx \frac{1}{n}\sum_{i = 0}^n [X_i - c^*(Y - \mu_Y)]$$ which should have lower Monte Carlo variance.

If you work under Black Scholes model, you will be able to get an EXACT result for a call option via Monte Carlo. This is the case because you know exactly the random variable $Y$. However, if you use a call option as control variate for a put, chances are that you are increasing the variance of $Z$ since put and call payoffs are not really correlated (think about it).

Tip: use as control variate a financial product showing similar payoff to what you are trying to evaluate.

  • $\begingroup$ Hi, thanks for your very exhaustive explaination! I am using as control variate the underlying asset price "S" to price a Put option. Is it correct to use this assumption for the control variates? $\endgroup$ Commented Sep 21, 2021 at 9:15
  • $\begingroup$ Maybe try -S as control variate. But I am not actually sure how much it is wise to do so. Also regarding the call option, why don't just use BS call? $\endgroup$ Commented Sep 21, 2021 at 9:20
  • $\begingroup$ Because I am trying to estimates some efficient way to approximate different kinds of instuments using MC, and I am starting from a simple case (call/put) and compare with BS. Can I ask another question? For what regards c*, it is just the ratio of COV(X,Y)/V(Y), or I should estimate it in some way? $\endgroup$ Commented Sep 21, 2021 at 9:25
  • $\begingroup$ That is my point: with BS you get a variance of zero! :') $\endgroup$ Commented Sep 21, 2021 at 9:29
  • $\begingroup$ In most cases, yes, you must estimate $c^*$ since you do not have analytic information on X. $\endgroup$ Commented Sep 21, 2021 at 9:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.