Skip to content
All library documents

Deriving Forward Rates from Hull–White Simulated Short Rates

Article Quant Q&A · Author: StatsStudent

Summary

The answer describes how to derive a forward rate from a simulated Hull–White short-rate path. At each simulated future time, use the current short rate in the model’s zero-coupon bond pricing expression, with the model’s time-dependent A and B terms, to calculate bond prices at the two forward-period endpoints. Convert those prices into zero rates, then combine the zero rates over their respective maturities to obtain the forward rate for the interval.

The example considers a forward period beginning one year and four months after the path date and spanning ten years, and it gives the corresponding endpoint setup and calculation sequence. This is a manual pricing workflow, rather than a QuantLib API shortcut. It assumes the required Hull–White model parameters and conventions are available; the response does not discuss calibration, day-count choices, or implementation details.

Key ideas

  • A simulated short rate can be used to price zero-coupon bonds at future maturities under Hull–White.
  • Bond prices at both ends of the target period yield zero rates for the two maturities.
  • Combining the zero rates by maturity produces the forward rate for the interval.
  • The example supplies a calculation sequence but not a QuantLib-specific API solution.
  • Model parameters and rate conventions are required for practical implementation.

Tags

Full text
# QuantLib Python: generating forward rates from Hull White simulated short rates


# QuantLib Python: generating forward rates from Hull White simulated short rates












I am generating interest rate paths through Hull White (1M SOFR for 50 years, monthly) and would also like to generate multiple forward zeros for each point on the path, e.g. 10y1m forward starting from 1y4m, etc. Do I have to manually calculate this using the $A(t,T) e ^{ -B(t,T) r(t) }$ formula, or is there an easier way to get this in QuantLib. I have seen the A/B calculations implemented in the C++ code for HullWhite, but am not sure how to utilize them. Thanks for any pointers.

## Answer by Serene He (score 1)

https://quant.stackexchange.com/a/82426

Given one path of short rate $r(t)$, you can derive an interest rate term structure at each future date t. At each future date $t$, you can use the following to calculate 10y1m forward rate from 1y4m:

Set $T_1=t+1y4m$, $T_2=t+11y5m$.

Calculate zero coupon bond price:

- $P(t,T_1)=A(t,T_1)*exp(-B(t,T_1)*r(t))$

- $P(t,T_2)=A(t,T_2)*exp(-B(t,T_2)*r(t))$

Calculate zero rate:

- $R(t,T_1)=-ln(P(t,T_1))/(T_1-t)$

- $R(t,T_2)=-ln(P(t,T_2))/(T_2-t)$

Calculate forward rate:

- $(R(t,T_2)*(T_2-t)-R(t,T_1)*(T_1-t))/(T_2-T_1)$

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.