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\left(t\right)=x\left(t\right)+y\left(t\right)+\varphi \left(t\right)$

$dx\left(t\right)=-a\left(t\right)x\left(t\right)dt+\sigma \left(t\right)d{W}_{1}\left(t\right),x\left(0\right)=0$

$dy\left(t\right)=-b\left(t\right)y\left(t\right)dt+\eta \left(t\right)d{W}_{2}\left(t\right),y\left(0\right)=0$

where $d{W}_{1}\left(t\right)d{W}_{2}\left(t\right)=\rho 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

 simTermStructs Simulate 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]';

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]';

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);