Main Content

JarrowYildirim

Create JarrowYildirim pricer object for YearYearInflationCapYearYearInflationFloor, ZeroCouponInflationCap, ZeroCouponInflationFloor, YearYearInflationSwap, or ZeroCouponInflationSwap instrument using JarrowYildirim model

Since R2023b

Description

Create and price a YearYearInflationCapYearYearInflationFloor, ZeroCouponInflationCap, ZeroCouponInflationFloor, YearYearInflationSwap, or ZeroCouponInflationSwap instrument object with a JarrowYildirim model and a JarrowYildirim pricing method using this workflow:

  1. Use fininstrument to create a YearYearInflationCap, YearYearInflationFloor, ZeroCouponInflationCap, ZeroCouponInflationFloor, YearYearInflationSwap, or ZeroCouponInflationSwap instrument object.

  2. Use finmodel to specify a JarrowYildirim model object for the YearYearInflationCap, YearYearInflationFloor, ZeroCouponInflationCap, ZeroCouponInflationFloor, YearYearInflationSwap, or ZeroCouponInflationSwap instrument object.

  3. Use finpricer to specify a JarrowYildirim pricer object for the YearYearInflationCap, YearYearInflationFloor, ZeroCouponInflationCap, ZeroCouponInflationFloor, YearYearInflationSwap, or ZeroCouponInflationSwap instrument object.

For more information on this workflow, see Get Started with Workflows Using Object-Based Framework for Pricing Financial Instruments.

For more information on the available instruments, models, and pricing methods for an Asian instrument, see Choose Instruments, Models, and Pricers.

Creation

Description

example

JarrowYildirimPricerObj = finpricer(PricerType,Model=model_obj,NominalCurve=nominal_ratecurve_obj,RealCurve=real_ratecurve_obj) creates a JarrowYildirim pricer object by specifying PricerType and sets the properties for the required name-value pair arguments Model, NominalCurve, and RealCurve. For example, JarrowYildirimPricerObj = finpricer("analytic",Model=JarrowYildirimModel,NominalCurve=NominalCurve, RealCurve=RealCurve) creates a JarrowYildirim pricer object.

Input Arguments

expand all

Pricer type, specified as a string with the value of "Analytic" or a character vector with the value of 'Analytic'.

Data Types: char | string

Name-Value Arguments

Specify required and optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: JarrowYildirimPricerObj = finpricer("analytic",Model=JarrowYildirimModel,NominalCurve=NominalCurve, RealCurve=RealCurve)

Model, specified as the name of a previously created JarrowYildirim model object using finmodel.

Data Types: object

ratecurve object for nominal interest rates, specified as the name of a previously created ratecurve object.

Data Types: object

ratecurve object for real interest rates, specified as the name of a previously created ratecurve object.

Data Types: object

Properties

expand all

Model, returned as a JarrowYildirim model object.

Data Types: object

ratecurve object for nominal interest rates, returned as a ratecurve object.

Data Types: object

ratecurve object for real interest rates, returned as a ratecurve object.

Data Types: object

Object Functions

priceCompute price for interest-rate, equity, or credit derivative instrument with Analytic pricer

Examples

collapse all

This example shows the workflow to price a YearYearInflationFloor instrument when using a JarrowYildirim model and a JarrowYildirim pricing method.

Create YearYearInflationFloor Instrument Object

Use fininstrument to create a YearYearInflationFloor instrument object.

YYInflationFloor = fininstrument("YearYearInflationFloor",Maturity=datetime(2033,10,1),Notional=1000,Strike=0.01,Name="YYInflationFloor")
YYInflationFloor = 
  YearYearInflationFloor with properties:

      Notional: 1000
        Strike: 0.0100
         Basis: 0
    IssueIndex: NaN
      Maturity: 01-Oct-2033
          Name: "YYInflationFloor"

Create JarrowYildirim Model Object

Use finmodel to create a JarrowYildirim model object.

JarrowYildirimModel = finmodel("JarrowYildirim", ...
        NominalVolatility=0.008,RealVolatility=0.005,IndexVolatility=0.01, ...
        NominalConstant=0.04,RealConstant=0.05, ...
        NominalRealCorrelation=0.015,RealIndexCorrelation=-0.32, ...
        NominalIndexCorrelation=0.08,CurrentIndex=101)
JarrowYildirimModel = 
  JarrowYildirim with properties:

          NominalVolatility: 0.0080
             RealVolatility: 0.0050
            IndexVolatility: 0.0100
            NominalConstant: 0.0400
               RealConstant: 0.0500
     NominalRealCorrelation: 0.0150
       RealIndexCorrelation: -0.3200
    NominalIndexCorrelation: 0.0800
               CurrentIndex: 101

Create ratecurve Object

Create a ratecurve object using ratecurve to specify the NominalCurve and RealCurve.

Settle = datetime(2023,10,1);

ZeroTimes = [calmonths(6) calyears([1 2 3 5 7 10 20 30])];
NominalRates = [4.70 4.68 4.14 3.83 3.56 3.51 3.48 3.77 3.66]'./100;
RealRates = [1.47 1.55 1.31 1.30 1.33 1.28 1.25 1.33 1.42]'./100;
ZeroDates = Settle + ZeroTimes;
NominalCurve = ratecurve("zero",Settle,ZeroDates,NominalRates);
RealCurve = ratecurve("zero",Settle,ZeroDates,RealRates);

Create JarrowYildirim Pricer Object

Use finpricer to create a JarrowYildirim object and specify the ratecurve object for the NominalCurve and RealCurve name-value arguments.

JarrowYildirimPricer = finpricer("analytic",Model=JarrowYildirimModel,NominalCurve=NominalCurve,RealCurve=RealCurve)
JarrowYildirimPricer = 
  JarrowYildirim with properties:

           Model: [1x1 finmodel.JarrowYildirim]
    NominalCurve: [1x1 ratecurve]
       RealCurve: [1x1 ratecurve]

Price YearYearInflationFloor Instrument

Use price to compute the price for the YearYearInflationFloor instrument.

YYInflationFloorPrice = price(JarrowYildirimPricer,YYInflationFloor)
YYInflationFloorPrice = 31.3520

References

[1] Jarrow, R. and Yildirim, Y. "Pricing Treasury Inflation Protected Securities and Related Derivatives using an HJM Model." Journal of Financial and Quantitative Analysis. Vol. 38, 2003.

Version History

Introduced in R2023b