Documentation Center

  • Trial Software
  • Product Updates

spreadbybjs

Price European spread options using Bjerksund-Stensland pricing model

Syntax

  • Price = spreadbybjs(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,
    OptSpec,Strike,Corr)
    example

Description

example

Price = spreadbybjs(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,
OptSpec,Strike,Corr)
returns the price for a European spread option using the Bjerksund-Stensland pricing model.

Examples

expand all

Compute the Price of a Spread Option Using the Bjerksund-Stensland Model

Define the spread option dates.

Settle = '01-Jan-2012';
Maturity = '01-April-2012';

Define asset 1. Price and volatility of RBOB gasoline

  Price1gallon = 2.85;          % $/gallon
  Price1 = Price1gallon * 42;   % $/barrel
  Vol1 = 0.29;

Define asset 2. Price and volatility of WTI crude oil

   Price2 = 93.20;         % $/barrel
   Vol2 = 0.36;

Define the correlation between the underlying asset prices of asset 1 and asset 2.

Corr = 0.42;

Define the spread option.

OptSpec = 'call';
Strike = 20;

Define the RateSpec.

rates = 0.05;
Compounding = -1;
Basis = 1;
RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, ...
'EndDates', Maturity, 'Rates', rates, ...
'Compounding', Compounding, 'Basis', Basis)
RateSpec = 

           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9876
            Rates: 0.0500
         EndTimes: 0.2500
       StartTimes: 0
         EndDates: 734960
       StartDates: 734869
    ValuationDate: 734869
            Basis: 1
     EndMonthRule: 1

Define the StockSpec for the two assets.

StockSpec1 = stockspec(Vol1, Price1)
StockSpec2 = stockspec(Vol2, Price2)
StockSpec1 = 

             FinObj: 'StockSpec'
              Sigma: 0.2900
         AssetPrice: 119.7000
       DividendType: []
    DividendAmounts: 0
    ExDividendDates: []


StockSpec2 = 

             FinObj: 'StockSpec'
              Sigma: 0.3600
         AssetPrice: 93.2000
       DividendType: []
    DividendAmounts: 0
    ExDividendDates: []

Compute the European spread option price based on the Bjerksund-Stensland model.

Price = spreadbybjs(RateSpec, StockSpec1, StockSpec2, Settle, ...
Maturity, OptSpec, Strike, Corr)
Price =

   11.2000

Input Arguments

expand all

RateSpec — Interest-rate term structurestructure

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

StockSpec1 — Stock specification for underlying asset 1structure

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

stockspec can handle other 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

StockSpec2 — Stock specification for underlying asset 2structure

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

stockspec can handle other 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

Settle — Settlement dates for spread optionnonnegative integer | vector of nonnegative integers | date string | cell array of date strings

Settlement dates for the spread option, specified as a date string or as nonnegative integers using a NINST-by-1 vector or cell array of dates.

Data Types: char | cell

Maturity — Maturity date for spread optionnonnegative integer | vector of nonnegative integers | date string | cell array of date strings

Maturity date for spread option, specified as a date string or as nonnegative integers using a NINST-by-1 vector or cell array of dates.

Data Types: char | cell

OptSpec — Definition of option string with values 'call' or 'put' | cell array of strings

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

Data Types: char | cell

Strike — Option strike price valuesinteger | vector of integers

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

If Strike is equal to zero the function computes the price of an exchange option.

Data Types: single | double

Corr — Correlation between underlying asset pricesinteger | vector of integers

Correlation between underlying asset prices, specified as an integer using a NINST-by-1 vector.

Data Types: single | double

Output Arguments

expand all

Price — Expected prices of spread optionvector

Expected prices of the spread option, returned as a NINST-by-1 vector.

More About

References

Carmona, R., Durrleman, V., "Pricing and Hedging Spread Options," SIAM Review, Vol. 45, No. 4, pp. 627–685, Society for Industrial and Applied Mathematics, 2003.

Bjerksund, Petter, Stensland, Gunnar, "Closed form spread option valuation," Department of Finance, NHH, 2006.

See Also

| | |

Was this topic helpful?