Main Content

HeynenKat

Create HeynenKat pricer object for PartialLookback instrument using BlackScholes model

Since R2021b

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

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 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.

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: HeynenKatPricerObj = finpricer("Analytic",DiscountCurve=ratecurve_obj,Model=BSModel,SpotPrice=1000,DividendType="continuous",DividendValue=100,PricingMethod="HeynenKat")

Required HeynenKat Name-Value Arguments

expand all

ratecurve object for discounting cash flows, specified as 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 Model and the name of a previously created BlackScholes model object using finmodel.

Data Types: object

Current price of the underlying asset, specified as SpotPrice and a scalar nonnegative numeric.

Data Types: double

Optional HeynenKat Name-Value Arguments

expand all

Stock dividend type, specified as DividendType and a string or character vector.

Data Types: char | string

Dividend yield for the underlying stock, specified as DividendValue and a scalar numeric.

Data Types: double

Analytic pricing method, specified as 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=0.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

Version History

Introduced in R2021b