I am trying to simulate the prices of bond indexes (e.g. Barclays Aggregate, IBOXX sovereign, IBOXX corporates) using Monte Carlo assuming that they follow the SDE given by the Hull-White model (one-factor model):

$ dS_t = (\theta_t - \alpha_t S_t)dt +\sigma_t dW_t $

where $\theta, \alpha$ and $\sigma$ are time-dependent.

First, I treat $\alpha_t$ as the mean of my process (~$\mu_t$). I am estimating and forecasting $\mu_t$ using the Local Linear Trend State Space model and the Kalman Filter.

$\begin{align} Y_t &= \mu_t + \epsilon_t & \epsilon_t &\sim NID(0,\sigma_{\epsilon}^{2})\\ \mu_{t+1} &= \mu_{t} + \beta_t + \xi_t & \xi_t &\sim NID(0,\sigma_{\xi}^{2})\\ \beta_{t+1}&= \beta_{t} + \zeta_t & \zeta_t &\sim NID(0, \sigma_{\zeta}^{2}) \\ \end{align}$

Afterwards, I apply GARCH(1,1) model in order to estimate the volatility ($\sigma_t$) one time-step forward, where:

$\sigma^2_t = \omega + \gamma \epsilon^2_{t-1} + \delta \sigma^2_{t-1} $

Then, comes my problem. Since $\theta$ is changing over time I cannot estimate it. If it was constant I could simply replace all the known elements and run a regression to find out its value. But now $\theta$ is inside an integral.

Is there a way for me to estimate $\theta_t$ and use it to simulate the process using Monte Carlo simulation?

I am using R to code it. Is there a package that I can use? Any code would be very appreciated.

  • $\begingroup$ 1/ Time-varying HW parameters are used to enforce no-arbitrage pricing. For a given day, you'd calibrate these parameters so as to reproduce the market prices of a cross section of bonds. $\endgroup$ – Helin Nov 10 '18 at 2:39
  • $\begingroup$ 2/ TBH, it's not clear to me why HW is chosen for this project. To simulate the prices/returns of indices, very simple assumptions (e.g., returns are normally distributed) can be used. Where needed, you can introduce richer features such as fat tails, skew, autocorrelation, etc. Unless you're simulating future interest rate dynamics, need to ensure no-arbitrage pricing across bonds, and/or plan to reprice all the individual bonds in an index based on future yield curves, a short rate model is not needed, and likely isn't appropriate. $\endgroup$ – Helin Nov 10 '18 at 2:39
  • $\begingroup$ Helin thank you for your comment. I know that the common use of the model is way different. The basic idea is that the price evolves over time following a stochastic process. I assume that the price is following the above SDE and depends on 3 variables and a random factor. By means of State Space model and Kalman Filter I can forecast the value of the mean of the process ($\mu_t$ ~ $\alpha_t$). Next to it using GARCH I can forecast the value of the volatility ($\sigma_t$). So I have two vectors with the values of the mean and the volatility (both of them are time-varying). $\endgroup$ – Enigma Nov 11 '18 at 14:56
  • $\begingroup$ From the Hull-White I just use the SDE and nothing else. My idea is to forecast each variable that the whole process depends on seperately, and then simulate the whole process using these forecasts. I thought that by icluding these forecasted values the accuracy of the simulation will be increased. Although I can do this for the $\mu$ and $\sigma$ I do not know how to forecast the value of $\theta$. Is there a way for me to find $\theta_t$ one step ahead? Does this idea makes sense or is it stupid? Thank you in advance. $\endgroup$ – Enigma Nov 11 '18 at 14:59
  • $\begingroup$ Hello, there is a fundamental problem here, HW is a gaussian model, that could lead to negative values. You can't use it to simulate prices, which are positive. $\endgroup$ – byouness Nov 12 '18 at 16:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.