Main Content

lookbackbycvgsg

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

Description

Price = lookbackbycvgsg(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates) returns prices of European lookback options using Conze-Viswanathan and Goldman-Sosin-Gatto models. lookbackbycvgsg 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 price lookback options. For more information, see Get Started with Workflows Using Object-Based Framework for Pricing Financial Instruments.

example

Price = lookbackbycvgsg(___,Name,Value) adds optional name-value pair arguments.

example

Examples

collapse all

Define the RateSpec.

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

Define the StockSpec.

AssetPrice = 50;
Sigma = 0.36;
StockSpec = stockspec(Sigma, AssetPrice)
StockSpec = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.3600
         AssetPrice: 50
       DividendType: []
    DividendAmounts: 0
    ExDividendDates: []

Define the floating lookback options.

Settle   = datetime(2013,1,1);
Maturity = datetime(2013,4,1); 
OptSpec = {'put';'call'};
Strike = NaN;

Compute the price of the European floating lookback options.

Price = lookbackbycvgsg(RateSpec, StockSpec, OptSpec, Strike, Settle, Maturity)
Price = 2×1

    7.2581
    6.9777

Define the RateSpec.

StartDates = 'Jan-1-2013';
EndDates = 'Jan-1-2014';
Rates = 0.045;
Compounding = -1;
RateSpec = intenvset('ValuationDate', StartDates, 'StartDates', StartDates,...
'EndDates', EndDates, 'Rates', Rates,'Compounding', Compounding)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9560
            Rates: 0.0450
         EndTimes: 1
       StartTimes: 0
         EndDates: 735600
       StartDates: 735235
    ValuationDate: 735235
            Basis: 0
     EndMonthRule: 1

Define the StockSpec.

AssetPrice = 102;
Sigma = 0.45;
StockSpec = stockspec(Sigma, AssetPrice)
StockSpec = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.4500
         AssetPrice: 102
       DividendType: []
    DividendAmounts: 0
    ExDividendDates: []

Define the fixed lookback options.

Settle   = 'Jan-1-2013';
Maturity = 'July-1-2013'; 
OptSpec = {'put';'call'};
Strike = [98;101];

Price the European fixed lookback options.

Price = lookbackbycvgsg(RateSpec, StockSpec, OptSpec, Strike, Settle, Maturity)
Price = 2×1

   18.3130
   30.4021

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: single | 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, lookbackbycvgsg 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, lookbackbycvgsg 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: Price = lookbackbycvgsg(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates,'AssetMinMax',AssetMinMax)

Maximum or minimum underlying asset price, specified as the comma-separated pair consisting of 'AssetMinMax' and a NINST-by-1 vector.

Data Types: double

Output Arguments

collapse all

Expected prices 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