Main Content

lookbacksensbycvgsg

Calculate prices or sensitivities of European lookback options using Conze-Viswanathan and Goldman-Sosin-Gatto models

Description

example

PriceSens = lookbacksensbycvgsg(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates) returns prices or sensitivities of European lookback options using Conze-Viswanathan and Goldman-Sosin-Gatto models. lookbacksensbycvgsg calculates prices of European fixed- and floating-strike lookback options. To compute the value of a floating-strike lookback option, Strike must be specified as NaN. The Goldman-Sosin-Gatto model is used for floating-strike lookback options. The Conze-Viswanathan model is used for fixed-strike lookback options.

Note

Alternatively, you can use the Lookback object to calculate price or sensitivities for lookback options. For more information, see Get Started with Workflows Using Object-Based Framework for Pricing Financial Instruments.

example

PriceSens = lookbacksensbycvgsg(___,Name,Value) adds optional name-value pair arguments.

Examples

collapse all

Define the RateSpec.

StartDates = datetime(2013,1,1);
EndDates = datetime(2014,1,1);
Rates = 0.41;
Compounding = -1;
RateSpec = intenvset('ValuationDate', StartDates, 'StartDates', StartDates,...
 'EndDates', EndDates, 'Rates', Rates,'Compounding', Compounding)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.6637
            Rates: 0.4100
         EndTimes: 1
       StartTimes: 0
         EndDates: 735600
       StartDates: 735235
    ValuationDate: 735235
            Basis: 0
     EndMonthRule: 1

Define the StockSpec with continuous dividend yield.

AssetPrice = 120;
Sigma = 0.3;
Yield = 0.045;
StockSpec = stockspec(Sigma, AssetPrice, 'Continuous', Yield)
StockSpec = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.3000
         AssetPrice: 120
       DividendType: {'continuous'}
    DividendAmounts: 0.0450
    ExDividendDates: []

Define the floating lookback option.

Settle   = datetime(2013,1,1);
Maturity = datetime(2013,7,1); 
OptSpec = 'call';
Strike = NaN;
SMinMax = 100;

Compute the price and delta of the European floating lookback option.

OutSpec = {'price', 'delta'};
[Price, Delta] = lookbacksensbycvgsg(RateSpec, StockSpec, OptSpec, Strike,...
Settle, Maturity,'AssetMinMax', SMinMax, 'OutSpec', OutSpec)
Price = 36.9926
Delta = 0.8659

Define the RateSpec.

StartDates = datetime(2013,1,1);
EndDates = datetime(2015,1,1);
Rates = 0.1;
Compounding = -1;
RateSpec = intenvset('ValuationDate', StartDates, 'StartDates', StartDates,...
'EndDates', EndDates, 'Rates', Rates,'Compounding', Compounding)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.8187
            Rates: 0.1000
         EndTimes: 2
       StartTimes: 0
         EndDates: 735965
       StartDates: 735235
    ValuationDate: 735235
            Basis: 0
     EndMonthRule: 1

Define the StockSpec.

AssetPrice = 103;
Sigma = 0.30;
StockSpec = stockspec(Sigma, AssetPrice)
StockSpec = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.3000
         AssetPrice: 103
       DividendType: []
    DividendAmounts: 0
    ExDividendDates: []

Define the fixed lookback option.

Settle   = datetime(2013,1,1);
Maturity = datetime(2013,7,1); 
OptSpec = 'call';
Strike = 99;

Price and delta for the European fixed lookback option.

OutSpec = {'price', 'delta'};                                 
[Price, Delta] = lookbacksensbyls(RateSpec, StockSpec, OptSpec,...
Strike, Settle, Maturity,'OutSpec', OutSpec)
Price = 22.7227
Delta = 1.1349

Input Arguments

collapse all

Interest-rate term structure (annualized and continuously compounded), specified by the RateSpec obtained from intenvset. For information on the interest-rate specification, see intenvset.

Data Types: struct

Stock specification for the underlying asset. For information on the stock specification, see stockspec.

stockspec handles several types of underlying assets. For example, for physical commodities the price is represented by StockSpec.Asset, the volatility is represented by StockSpec.Sigma, and the convenience yield is represented by StockSpec.DividendAmounts.

Data Types: struct

Definition of option as 'call' or 'put', specified as a NINST-by-1 cell array of character vectors.

Data Types: char | cell

Option strike price values, specified as an integer using a NINST-by-1 vector of strike price values.

Data Types: double

Settlement or trade date for the lookback option, specified as a NINST-by-1 vector using a datetime array, string array, or date character vectors.

To support existing code, lookbacksensbycvgsg also accepts serial date numbers as inputs, but they are not recommended.

European option expiry date, specified as a NINST-by-1 vector using a datetime array, string array, or date character vectors.

To support existing code, lookbacksensbycvgsg also accepts serial date numbers as inputs, but they are not recommended.

Name-Value Arguments

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

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: PriceSens = lookbacksensbycvgsg(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates,'AssetMinMax',AssetMinMax,'OutSpec',{'All'})

Maximum or minimum underlying asset price, specified as a NINST-by-1 vector.

Data Types: double

Define outputs, specified as the comma-separated pair consisting of 'OutSpec' and a NOUT- by-1 or a 1-by-NOUT cell array of character vectors with possible values of 'Price', 'Delta', 'Gamma', 'Vega', 'Lambda', 'Rho', 'Theta', and 'All'.

OutSpec = {'All'} specifies that the output should be Delta, Gamma, Vega, Lambda, Rho, Theta, and Price, in that order. This is the same as specifying OutSpec to include each sensitivity.

Example: OutSpec = {'delta','gamma','vega','lambda','rho','theta','price'}

Data Types: char | cell

Output Arguments

collapse all

Expected prices or sensitivities (defined by OutSpec) of the lookback option, returned as a NINST-by-1 vector.

More About

collapse all

Lookback Option

A lookback option is a path-dependent option based on the maximum or minimum value the underlying asset achieves during the entire life of the option.

Financial Instruments Toolbox™ software supports two types of lookback options: fixed and floating. Fixed lookback options have a specified strike price, while floating lookback options have a strike price determined by the asset path. For more information, see Lookback Option.

References

[1] Hull, J. C. Options, Futures, and Other Derivatives 5th Edition. Englewood Cliffs, NJ, Prentice Hall, 2002.

Version History

Introduced in R2014a

expand all