Take the 2-minute tour ×
Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. It's 100% free, no registration required.

I want to know the joint dynamics of a stock and it's option for a finite number of moments between now and $T$ the expiration date of the option for a number of possible paths.

Let $r_{\mathrm{s}}$ and $r_{\mathrm{o}}$ denote the return on the stock and the option. Then I'm interested in knowing $\mathrm{E}_t([r_{\mathrm{s}}; r_{\mathrm{o}}])$ the expectation of the return from $t$ to $t+1$ and $\mathrm{Var}_t(r_{\mathrm{s}}, r_{\mathrm{o}})$ the variance from $t$ to $t+1$. The expected return and volatility of the stock are known.

My first idea is to use Monte Carlo with the following pseudocode:

N <- number of paths
T <- number of moments
M <- number of subpaths
S <- current stock price
for i = 1 to N:
    S_0 <- S
    for t = 0 to T-1:
        for j = 1 to M:
            S_{t+1,j} = f(S_t)
            O_{t+1,j} = BSM(S_{t,j})
        S_{t+1} <- mean(S_{t+1,j})
        E_{i,j} <- mean(S_{t+1,j}, O_{t+1,j})
        V_{i,j} <- var(S_{t+1,j}, O_{t+1,j})
return (E, V)

where $S_t$ is the current stock price, $f(S_t)$ gives a realization of stock price at the next moment given the current stock price, let's assume geometric Brownian Motion, $\textrm{BSM}(S_t)$ gives the option price given the current stock price and some arbitrary parameters using the BSM formula and E and V the values I'm interested in.

This can probably be optimized by a number of clever ideas such as reusing the draws from the probability distribution and discretizing the state space and use a memoized BSM. This is, however, not what I'm looking for. I rather calculate the mean and variance directly, the question is: how?

share|improve this question
Just to be clear, are you assuming there exists an options pricing function BSM(S,t,{params}) or are options prices also supposed to come from the Monte Carlo simulation? –  Brian B Feb 29 '12 at 20:12
I've updated the question, I assume the existence of the options pricing function $BSM(S,t,{params})$. –  Bob Jansen Feb 29 '12 at 20:50
add comment

1 Answer

up vote 8 down vote accepted

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 function $p(S_\tau)$ would typically be the Black-Scholes probability density $$ \frac{n( d_2(S_0,S_\tau) )} {S_\tau \sigma \sqrt{\tau} }. $$ with $S_\tau$ taking the place of strike $K$ in the formula for $d_2()$.

Similarly, the variance of the option value for time $\tau$ is $$ \int_0^\infty (BSM( S_\tau ) - \mu_O)^2 p(S_\tau) dS_\tau $$ and covariance of option value with stock price would be $$ \int_0^\infty (BSM( S_\tau ) - \mu_O)(S_\tau-\mu_S) p(S_\tau) dS_\tau. $$

share|improve this answer
Thanks, is there a reason for specifically referring to Lobatto Quadrature? –  Bob Jansen Mar 1 '12 at 7:12
Not a big one -- I just thought I recalled the scipy version is Lobatto. –  Brian B Mar 1 '12 at 13:30
Fixed a couple errors in the original answer. –  Brian B Mar 5 '12 at 14:59
Thanks, I noticed the $T - \tau$ and wondered whether it was correct under a different interpretation of the variables. Nice to know it's not ;) I've implemented most of it over the weekend and will show the result (appendix in my thesis) and MATLAB code soon, I hope. You've really been a great help, quadrature is new terrain for me and your answer was a great start. –  Bob Jansen Mar 5 '12 at 15:46
how do you want to be credited in my thesis? Under Brian B or under some other name. If you want you can contact me via my profile. –  Bob Jansen Aug 5 '12 at 19:19
show 2 more comments

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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