Main Content

price

Compute price for inflation instrument withInflationpricer

描述

example

[Price,PriceResult] = price(inpPricer,inpInstrument)computes the instrument price and related pricing information based on the pricing objectinpPricerand the instrument objectinpInstrument.

example

[Price,PriceResult] = price(___,inpSensitivity)adds an optional argument to specify sensitivities.

Examples

collapse all

This example shows the workflow to price anInflationBondinstrument when you use aninflationcurveobject and anInflationpricing method.

CreateratecurveObject

创建一个ratecurveobject usingratecurve.

Settle = datetime(2021,1,15); Type ="zero"; ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; ZeroCurve = ratecurve('zero',Settle,ZeroDates,ZeroRates)
ZeroCurve = ratecurve with properties: Type: "zero" Compounding: -1 Basis: 0 Dates: [10x1 datetime] Rates: [10x1 double] Settle: 15-Jan-2021 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"

CreateinflationcurveObject

创建一个ninflationcurveobject usinginflationcurve.

BaseDate = datetime(2020,10,1); InflationTimes = [0 calyears([1 2 3 4 5 7 10 20 30])]'; InflationIndexValues = [100 102 103.5 105 106.8 108.2 111.3 120.1 130.4 150.2]'; InflationDates = BaseDate + InflationTimes; myInflationCurve = inflationcurve(InflationDates,InflationIndexValues)
myInflationCurve = inflationcurve with properties: Basis: 0 Dates: [10x1 datetime] InflationIndexValues: [10x1 double] ForwardInflationRates: [9x1 double] Seasonality: [12x1 double]

CreateInflationBondInstrument Object

Usefininstrumentto create anInflationBondinstrument object.

IssueDate = datetime(2021,1,1); Maturity = datetime(2026,1,1); CouponRate = 0.02; InflationBond = fininstrument("InflationBond",'IssueDate',IssueDate,'Maturity',Maturity,'CouponRate',CouponRate,'Name',"inflation_bond_instrument")
InflationBond = InflationBond with properties: CouponRate: 0.0200 Period: 2 Basis: 0 Principal: 100 DaycountAdjustedCashFlow: 0 Lag: 3 BusinessDayConvention: "actual" Holidays: NaT EndMonthRule: 1 IssueDate: 01-Jan-2021 FirstCouponDate: NaT LastCouponDate: NaT Maturity: 01-Jan-2026 Name: "inflation_bond_instrument"

CreateInflationPricer Object

Usefinpricerto create anInflationpricer object and use theratecurveobject with the'DiscountCurve'name-value pair argument and theinflationcurveobject with the'InflationCurve'name-value pair argument.

outPricer = finpricer("Inflation",'DiscountCurve'ZeroCurve,'InflationCurve',myInflationCurve)
outPricer = Inflation with properties: DiscountCurve: [1x1 ratecurve] InflationCurve: [1x1 inflationcurve]

PriceInflationBondInstrument

Usepriceto compute the price and sensitivities for theInflationBondinstrument.

[Price,outPR] = price(outPricer,InflationBond)
Price = 112.1856
outPR = priceresult with properties: Results: [1x1 table] PricerData: []
outPR.Results
ans=tablePrice ______ 112.19

Input Arguments

collapse all

Pricer object, specified as a scalarInflationpricer object. Usefinpricerto create theInflationpricer object.

Data Types:object

Instrument object, specified as a scalar or vector ofInflationBond,YearYearInflationSwap, orZeroCouponInflationSwapinstrument objects. Usefininstrumentto create theInflationBond,YearYearInflationSwap, orZeroCouponInflationSwapinstrument objects.

Data Types:object

(Optional) List of sensitivities to compute, specified as anNOUT-by-1or1-by-NOUTcell array of character vectors or string array with possible values of'Price'and'All'.

inpSensitivity = {'All'}orinpSensitivity = ["All"]specifies that the output is'Price'. This option is the same as specifyinginpSensitivityto include each sensitivity.

Example:inpSensitivity = {'price'}

Data Types:string|cell

Output Arguments

collapse all

Instrument price, returned as a numeric.

Price result, returned as an object. The object has the following fields:

  • PriceResult.Results— Table of results

  • PriceResult.PricerData— Structure for pricer data

Version History

Introduced in R2021a