Main Content

HeynenKat

Create HeynenKat pricer object for PartialLookback instrument using BlackScholes model

Description

Create and price a PartialLookback instrument object with a BlackScholes model and a HeynenKat pricing method using this workflow:

  1. Use fininstrument to create a PartialLookback instrument object.

  2. Use finmodel to specify a BlackScholes model for the PartialLookback instrument object.

  3. Use finpricer to specify a HeynenKat pricer object for the PartialLookback 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 PartialLookback instrument, see Choose Instruments, Models, and Pricers.

Creation

Description

example

HeynenKatPricerObj = finpricer(PricerType,'DiscountCurve',ratecurve_obj,'Model',model,'SpotPrice',spotprice_value) creates a HeynenKat pricer object by specifying PricerType and sets the properties for the required name-value pair arguments DiscountCurve, Model, and SpotPrice.

example

HeynenKatPricerObj = finpricer(___,Name,Value) to set optional properties using additional name-value pairs in addition to the required arguments in the previous syntax. For example, HeynenKatPricerObj = finpricer("Analytic",'DiscountCurve',ratecurve_obj,'Model',BSModel,'SpotPrice',1000,'DividendType',"continuous",'DividendValue',100,'PricingMethod',"HeynenKat") creates a HeynenKat 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

HeynenKat Name-Value Pair Arguments

Specify required and optional 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.

Example: HeynenKatPricerObj = finpricer("Analytic",'DiscountCurve',ratecurve_obj,'Model',BSModel,'SpotPrice',1000,'DividendType',"continuous",'DividendValue',100,'PricingMethod',"HeynenKat")
Required HeynenKat Name-Value Pair Arguments

expand all

ratecurve object for discounting cash flows, specified as the comma-separated pair consisting of 'DiscountCurve' and the name of the previously created ratecurve object.

Note

Specify a flat ratecurve object for DiscountCurve. If you use a nonflat ratecurve object, the software uses the rate in the ratecurve object at Maturity and assumes that the value is constant for the life of the equity option.

Data Types: object

Model, specified as the comma-separated pair consisting of 'Model' and the name of a previously created BlackScholes model object using finmodel.

Data Types: object

Current price of the underlying asset, specified as the comma-separated pair consisting of 'SpotPrice' and a scalar nonnegative numeric.

Data Types: double

Optional HeynenKat Name-Value Pair Arguments

expand all

Stock dividend type, specified as the comma-separated pair consisting of 'DividendType' and a string or character vector.

Data Types: char | string

Dividend yield for the underlying stock, specified as the comma-separated pair consisting of 'DividendValue' and a scalar numeric.

Data Types: double

Analytic pricing method, specified as the comma-separated pair consisting of 'PricingMethod' and a string or character vector.

Note

The default pricing method for a BlackScholes model is a BlackScholes pricer.

Data Types: double

Properties

expand all

This property is read-only.

ratecurve object for discounting cash flows, returned as a ratecurve object.

Data Types: object

Model, returned as a BlackScholes model object.

Data Types: object

Current price of the underlying asset, returned as a scalar nonnegative numeric.

Data Types: double

This property is read-only.

Stock dividend type, returned as a string.

Data Types: string

Dividend yield for the underlying stock, returned as a scalar numeric.

Data Types: double

Analytic pricing method, returned as a string.

Data Types: string

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 PartialLookback instrument when you use a BlackScholes model and a HeynenKat pricing method.

Create PartialLookback Instrument Object

Use fininstrument to create an PartialLookback instrument object.

PartialLookbackOpt = fininstrument("PartialLookback",'ExerciseDate',datetime(2022,9,15),'Strike',100,'MonitorDate',datetime(2021,9,15),'OptionType',"put",'ExerciseStyle',"european",'Name',"partial_lookback_option")
PartialLookbackOpt = 
  PartialLookback with properties:

      MonitorDate: 15-Sep-2021
     StrikeScaler: 1
       OptionType: "put"
           Strike: 100
      AssetMinMax: NaN
    ExerciseStyle: "european"
     ExerciseDate: 15-Sep-2022
             Name: "partial_lookback_option"

Create BlackScholes Model Object

Use finmodel to create a BlackScholes model object.

BlackScholesModel = finmodel("BlackScholes",'Volatility',0.32)
BlackScholesModel = 
  BlackScholes with properties:

     Volatility: 0.3200
    Correlation: 1

Create ratecurve Object

Create a flat ratecurve object using ratecurve.

Settle = datetime(2018,9,15);
Maturity = datetime(2023,9,15);
Rate = 0.035;
myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',12)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 12
                Dates: 15-Sep-2023
                Rates: 0.0350
               Settle: 15-Sep-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Create HeynenKat Pricer Object

Use finpricer to create a HeynenKat pricer object and use the ratecurve object for the 'DiscountCurve' name-value pair argument.

outPricer = finpricer("analytic",'Model',BlackScholesModel,'DiscountCurve',myRC,'SpotPrice',100,'DividendType',"continuous",'DividendValue',.05,'PricingMethod',"HeynenKat")
outPricer = 
  HeynenKat with properties:

    DiscountCurve: [1x1 ratecurve]
            Model: [1x1 finmodel.BlackScholes]
        SpotPrice: 100
    DividendValue: 0.0500
     DividendType: "continuous"

Price PartialLookback Instrument

Use price to compute the price and sensitivities for the PartialLookback instrument.

[Price, outPR] = price(outPricer,PartialLookbackOpt,["all"])
Price = 31.4405
outPR = 
  priceresult with properties:

       Results: [1x7 table]
    PricerData: []

outPR.Results 
ans=1×7 table
    Price     Delta        Gamma      Lambda      Vega      Theta       Rho  
    _____    ________    _________    _______    ______    _______    _______

    31.44    -0.37693    0.0042263    -1.1989    76.886    -1.6249    -259.77

Introduced in R2021b