minassetbystulz
Determine European rainbow option prices on minimum of two risky assets using Stulz option pricing model
Description
computes option prices using the Stulz option pricing model.Price
= minassetbystulz(RateSpec
,StockSpec1
,StockSpec2
,Settle
,Maturity
,OptSpec
,Strike
,Corr
)
Examples
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 = datetime(2000,11,15); Maturity = datetime(2009,5,15); 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.6822
Rates: 0.0450
EndTimes: 8.5000
StartTimes: 0
EndDates: 733908
StartDates: 730805
ValuationDate: 730805
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×1
10.0002
9.1433
8.1622
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.
Input Arguments
Annualized, continuously compounded rate term structure, specified using
intenvset
.
Data Types: structure
Stock specification for asset 1, specified using stockspec
.
Data Types: structure
Stock specification for asset 2, specified using stockspec
.
Data Types: structure
Settlement or trade dates, specified as a
NINST
-by-1
vector using a datetime
array, string array, or date character vectors.
To support existing code, minassetbystulz
also
accepts serial date numbers as inputs, but they are not recommended.
Maturity dates, specified as a
NINST
-by-1
vector using a datetime
array, string array, or date character vectors.
To support existing code, minassetbystulz
also
accepts serial date numbers as inputs, but they are not recommended.
Option type, specified as an
NINST
-by-1
cell array of character
vectors with a value of 'call'
or
'put'
.
Data Types: cell
Strike prices, specified as an
NINST
-by-1
vector.
Data Types: double
Correlation between the underlying asset prices, specified as an
NINST
-by-1
vector.
Data Types: double
Output Arguments
Expected option prices, returned as an
NINST
-by-1
vector.
More About
A rainbow option payoff depends on the relative price performance of two or more assets.
A rainbow option gives the holder the right to buy or sell the best or worst of two securities, or options that pay the best or worst of two assets. Rainbow options are popular because of the lower premium cost of the structure relative to the purchase of two separate options. The lower cost reflects the fact that the payoff is generally lower than the payoff of the two separate options.
Financial Instruments Toolbox™ supports two types of rainbow options:
Minimum of two assets — The option holder has the right to buy(sell) one of two risky assets, whichever one is worth less.
Maximum of two assets — The option holder has the right to buy(sell) one of two risky assets, whichever one is worth more.
For more information, see Rainbow Option.
Version History
Introduced in R2009aAlthough minassetbystulz
supports serial date numbers,
datetime
values are recommended instead. The
datetime
data type provides flexible date and time
formats, storage out to nanosecond precision, and properties to account for time
zones and daylight saving time.
To convert serial date numbers or text to datetime
values, use the datetime
function. For example:
t = datetime(738427.656845093,"ConvertFrom","datenum"); y = year(t)
y = 2021
There are no plans to remove support for serial date number inputs.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)