September 1st, 2008, 6:31 pm
acasimiro,i think i just used Hull for this one, although brigo and mercurio cover this too.i think the main idea to get this one right is:1. computing short rate drift requires taking the derivative of instantaneous forward rates from initial zero curve. these are sensitive to interpolation type so try to use something with smooth forwards. when i first did this I used cubic splines on discount factors and the results converged. there are other methods too that should give you the required values.2. if your discretization is something like r(t+dt) = r(t) + (theta(t) - a * r) * dt + sigma * sqrt(dt) * N then keep your time steps small.3. How are you discounting back the payoffs? The way to do it is to use what I call "daisy chain" discounting. You must discount back at integral (0 to T) exp(-r(t)) dt. In practice, what this means is that in any given path you start with DF(0) = 1. Then, DF(dt) = DF(0) * exp(-R(0) * dt) where R(0) is the rate for time length dt expressed with continuous compounding as seen at time 0. NOTE R(0) <> the short rate at time 0. They should not be assumed equal. Similarly, DF(2 * dt) = DF(dt) * exp(-R(dt) * dt) where R(dt) is the rate for length dt expressed with continuous compounding as seen at time dt. And so on and so forth. The rate for length dt at any time step is solvable from the zero coupon bond price formulas. Cash flows in any path are then discounted using these discount factors. Actually, before you calcuate any caplet prices it is recommended to check that your model is arbitrage-free (i.e. that the average discount factors equal those computed analytically from the time-0 zero curve. If this check does not work you will never price anything correctly.4. Another good check is to compare the quantiles of your simulated rate with the formulas given is BM for the mean and variance of the simulated short rates.Good luck