Main Content

LinearGaussian2F

Create two-factor additive Gaussian interest-rate model

Description

The two-factor additive Gaussian interest rate-model is specified using the zero curve, a, b, sigma, eta, and rho parameters.

Specifically, the LinearGaussian2F model is defined using the following equations:

r(t)=x(t)+y(t)+ϕ(t)

dx(t)=a(t)x(t)dt+σ(t)dW1(t),x(0)=0

dy(t)=b(t)y(t)dt+η(t)dW2(t),y(0)=0

where dW1(t)dW2(t)=ρdt is a two-dimensional Brownian motion with correlation ρ, and ϕ is a function chosen to match the initial zero curve.

Creation

Description

example

G2PP = LinearGaussian2F(ZeroCurve,a,b,sigma,eta,rho) creates a LinearGaussian2F (G2PP) object using the required arguments to set the Properties.

Properties

expand all

Zero curve, specified as an output from IRDataCurve or a RateSpec that is obtained from intenvset. This is the zero curve used to evolve the path of future interest rates.

Data Types: object | struct

Mean reversion for the first factor, specified either as a scalar or function handle which takes time as input and returns a scalar mean reversion value.

Data Types: double

Mean reversion for the second factor, specified either as a scalar or as a function handle which takes time as input and returns a scalar mean reversion value.

Data Types: double

Volatility for the first factor, specified either as a scalar or function handle which takes time as input and returns a scalar mean volatility.

Data Types: double

Volatility for the second factor, specified either as a scalar or function handle which takes time as input and returns a scalar mean volatility.

Data Types: double

Scalar correlation of the factors, specified as a numeric value.

Data Types: double

Object Functions

simTermStructsSimulate term structures for two-factor additive Gaussian interest-rate model

Examples

collapse all

Create a two-factor additive Gaussian interest-rate model using an IRdataCurve.

Settle = datenum('15-Dec-2007');
CurveTimes = [1:5 7 10 20]';
ZeroRates = [.01 .018 .024 .029 .033 .034 .035 .034]';
CurveDates = daysadd(Settle,360*CurveTimes,1);
 
irdc = IRDataCurve('Zero',Settle,CurveDates,ZeroRates);
    
a = .07;
b = .5;
sigma = .01;
eta = .006;
rho = -.7;
 
G2PP = LinearGaussian2F(irdc,a,b,sigma,eta,rho)
G2PP = 
  LinearGaussian2F with properties:

    ZeroCurve: [1x1 IRDataCurve]
            a: @(t,V)ina
            b: @(t,V)inb
        sigma: @(t,V)insigma
          eta: @(t,V)ineta
          rho: -0.7000

Use the simTermStructs method to simulate term structures based on the LinearGaussian2F model.

 SimPaths = simTermStructs(G2PP, 10,'nTrials',100);

Create a two-factor additive Gaussian interest-rate model using a RateSpec.

Settle = datenum('15-Dec-2007');
CurveTimes = [1:5 7 10 20]';
ZeroRates = [.01 .018 .024 .029 .033 .034 .035 .034]';
CurveDates = daysadd(Settle,360*CurveTimes,1);
 
RateSpec = intenvset('Rates',ZeroRates,'EndDates',CurveDates,'StartDate',Settle);
    
a = .07;
b = .5;
sigma = .01;
eta = .006;
rho = -.7;
 
G2PP = LinearGaussian2F(RateSpec,a,b,sigma,eta,rho)
G2PP = 
  LinearGaussian2F with properties:

    ZeroCurve: [1x1 IRDataCurve]
            a: @(t,V)ina
            b: @(t,V)inb
        sigma: @(t,V)insigma
          eta: @(t,V)ineta
          rho: -0.7000

Use the simTermStructs method to simulate term structures based on the LinearGaussian2F model.

 SimPaths = simTermStructs(G2PP, 10,'nTrials',100);

More About

expand all

References

[1] Brigo, D. and F. Mercurio. Interest Rate Models - Theory and Practice. Springer Finance, 2006.

Introduced in R2013a