IRFunctionCurve

Construct interest-rate curve object from function handle or function and fit to market data

Syntax

CurveObj = IRFunctionCurve(Type,Settle,FunctionHandle)
CurveObj = IRFunctionCurve(Type,Settle,FunctionHandle,Name,Value)

Arguments

Type

Type of interest-rate curve: zero, forward, or discount.

Settle

Scalar for the Settle date of the curve.

Compounding

(Optional) Scalar that sets the compounding frequency per year for the IRFunctionCurve object:

  • −1 = Continuous compounding

  • 1 = Annual compounding

  • 2 = Semiannual compounding (default)

  • 3 = Compounding three times per year

  • 4 = Quarterly compounding

  • 6 = Bimonthly compounding

  • 12 = Monthly compounding

Basis

(Optional) Day-count basis of the bond. A scalar of integers.

  • 0 = actual/actual (default)

  • 1 = 30/360 (SIA)

  • 2 = actual/360

  • 3 = actual/365

  • 4 = 30/360 (BMA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (European)

  • 7 = actual/365 (Japanese)

  • 8 = actual/actual (ICMA)

  • 9 = actual/360 (ICMA)

  • 10 = actual/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = actual/365 (ISDA)

  • 13 = BUS/252

For more information, see Basis.

FunctionHandle

Function handle that defines the interest-rate curve. The function handle requires one numeric input (time-to-maturity) and returns one numeric output (interest rate or discount factor). For more information on defining a function handle, see the MATLAB® Programming Fundamentals documentation.

Parameters

Fitted parameters for function.

Description

CurveObj = IRFunctionCurve(Type,Settle,FunctionHandle,Name,Value) constructs an interest-rate curve object directly by specifying a function handle. You must enter the optional arguments for Basis and Compounding as comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

After you use the IRFunctionCurve constructor to create an IRFunctionCurve object, you can fit the bond using the following methods.

MethodDescription
getForwardRates

Returns forward rates for input dates.

getZeroRates

Returns zero rates for input dates.

getDiscountFactors

Returns discount factors for input dates.

getParYields

Returns par yields for input dates.

toRateSpec

Converts to be a RateSpec object.

This RateSpec structure is identical to the RateSpec produced by the Financial Instruments Toolbox™ function intenvset.

Alternatively, you can construct an IRFunctionCurve object using the following static methods.

Static MethodDescription
fitNelsonSiegel

Fits a Nelson-Siegel function to market data.

fitSvensson

Fits a Svensson function to market data.

fitSmoothingSpline

Fits a smoothing spline function to market data.

fitFunction

Fits a custom function to market data.

Examples

irfc = IRFunctionCurve('Forward',today,@(t) polyval([-0.0001 0.003 0.02],t))
irfc = 

			 Type: Forward
		       Settle: 737406 (12-Dec-2018)
	             Compounding: 2
			Basis: 0 (actual/actual)

Introduced in R2008b