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

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.

example

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