Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

minassetbystulz

Determine European rainbow option prices on minimum of two risky assets using Stulz option pricing model

Syntax

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

Arguments

RateSpec

The annualized, continuously compounded rate term structure. For information on the interest rate specification, see intenvset.

StockSpec1

Stock specification for asset 1. See stockspec.

StockSpec2

Stock specification for asset 2. See stockspec.

Settle

NINST-by-1 vector of settlement or trade dates.

Maturity

NINST-by-1 vector of maturity dates.

OptSpec

NINST-by-1 cell array of character vectors 'call' or 'put'.

Strike

NINST-by-1 vector of strike price values.

Corr

NINST-by-1 vector of correlation between the underlying asset prices.

Description

Price = minassetbystulz(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr) computes option prices using the Stulz option pricing model.

Price is a NINST-by-1 vector of expected option prices.

Examples

collapse all

Consider a European rainbow put option that gives the holder the right to sell either stock A or stock B at a strike of 50.25, whichever has the lower value on the expiration date May 15, 2009. On November 15, 2008, stock A is trading at 49.75 with a continuous annual dividend yield of 4.5% and has a return volatility of 11%. Stock B is trading at 51 with a continuous dividend yield of 5% and has a return volatility of 16%. The risk-free rate is 4.5%. Using this data, if the correlation between the rates of return is -0.5, 0, and 0.5, calculate the price of the minimum of two assets that are European rainbow put options. First, create the RateSpec:

Settle = 'Nov-15-2008';
Maturity = 'May-15-2009';
Rates = 0.045;
Basis = 1;

RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle,...
'EndDates', Maturity, 'Rates', Rates, 'Compounding', -1, 'Basis', Basis)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9778
            Rates: 0.0450
         EndTimes: 0.5000
       StartTimes: 0
         EndDates: 733908
       StartDates: 733727
    ValuationDate: 733727
            Basis: 1
     EndMonthRule: 1

Create the two StockSpec definitions.

AssetPriceA = 49.75;
AssetPriceB = 51;
SigmaA = 0.11;
SigmaB = 0.16;
DivA = 0.045; 
DivB = 0.05; 

StockSpecA = stockspec(SigmaA, AssetPriceA, 'continuous', DivA)
StockSpecA = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.1100
         AssetPrice: 49.7500
       DividendType: {'continuous'}
    DividendAmounts: 0.0450
    ExDividendDates: []

StockSpecB = stockspec(SigmaB, AssetPriceB, 'continuous', DivB)
StockSpecB = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.1600
         AssetPrice: 51
       DividendType: {'continuous'}
    DividendAmounts: 0.0500
    ExDividendDates: []

Compute the price of the options for different correlation levels.

Strike = 50.25;
Corr = [-0.5;0;0.5];
OptSpec = 'put';
Price = minassetbystulz(RateSpec, StockSpecA, StockSpecB, Settle,...
Maturity, OptSpec, Strike, Corr)
Price = 

    3.4320
    3.1384
    2.7694

The values 3.43, 3.14, and 2.77 are the price of the European rainbow put options with a correlation level of -0.5, 0, and 0.5 respectively.

Introduced in R2009a

Was this topic helpful?