# How to price zero coupon bonds with the Monte Carlo method?

Im trying to calculate monthly ZCB bond prices with a fixed maturity T, over a period of months via Monte Carlo methods.

Here is my attempt:

For the first month, the price is $P_{t_0}(0,T) = E[exp(-\int_{t_0}^T r_s ds)]$, for the second month, the price is $P_{t1}(0,T) = E[exp(-\int_{t1}^{T+t1} r_s ds)]$, and so on up to the last month.

I construct N interest rate paths $r_t$ via Euler discretization, and approximate the expectations by taking the mean of each row of the matrix with elements

exp[-(T/M+1)*sum(r_s[t_i:t_{i+M}, j])]


where M is the number of months between maturity T and the "start month" of the bond price, j from 1 to N.

The maturity T is 3 years. So I let dt = 1/12 (in the Euler discretization) and T=3.

Where does it all go wrong?

• What process do you use to simulate short rate r ? And what is the problem with your simulation? – adelm May 5 '14 at 16:51
• @adelm Vasicek. I am aware of the affine term structure, but I want to extend it to a Levy driven model later on. I am trying to calibrate it to market data, but the resulting interest rates are about twice as high as they should be. – Desperate May 5 '14 at 18:11
• I think you have to give more information, preferably code. – Bob Jansen May 5 '14 at 19:12
• As a consistency check you could benchmark your generated paths against the exact solution. The error in the Euler scheme can grow quite quick for large discretizations, so it's good to know how well the distribution of the final points of the paths matches the exact distribution. – Olaf Nov 17 '14 at 23:00