maxassetbystulz
Determine European rainbow option price on maximum of two risky assets using Stulz option pricing model
Description
computes option prices using the Stulz option pricing model.Price
= maxassetbystulz(RateSpec
,StockSpec1
,StockSpec2
,Settle
,Maturity
,OptSpec
,Strike
,Corr
)
Examples
Consider a European rainbow option that gives the holder the right to buy either $100,000 worth of an equity index at a strike price of 1000 (asset 1) or $100,000 of a government bond (asset 2) with a strike price of 100% of face value, whichever is worth more at the end of 12 months. On January 15, 2008, the equity index is trading at 950, pays a dividend of 2% annually and has a return volatility of 22%. Also on January 15, 2008, the government bond is trading at 98, pays a coupon yield of 6%, and has a return volatility of 15%. The risk-free rate is 5%. Using this data, if the correlation between the rates of return is -0.5, 0, and 0.5, calculate the price of the European rainbow option.
Since the asset prices in this example are in different units, it is necessary to work in either index points (asset 1) or in dollars (asset 2). The European rainbow option allows the holder to buy the following: 100 units of the equity index at $1000 each (for a total of $100,000) or 1000 units of the government bonds at $100 each (for a total of $100,000). To convert the bond price (asset 2) to index units (asset 1), you must make the following adjustments:
Multiply the strike price and current price of the government bond by 10 (1000/100).
Multiply the option price by 100, considering that there are 100 equity index units in the option.
Once these adjustments are introduced, the strike price is the same for both assets ($1000). First, create the RateSpec
:
Settle = 'Jan-15-2008'; Maturity = 'Jan-15-2009'; Rates = 0.05; 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.9512
Rates: 0.0500
EndTimes: 1
StartTimes: 0
EndDates: 733788
StartDates: 733422
ValuationDate: 733422
Basis: 1
EndMonthRule: 1
Create the two StockSpec
definitions.
AssetPrice1 = 950; % Asset 1 => Equity index AssetPrice2 = 980; % Asset 2 => Government bond Sigma1 = 0.22; Sigma2 = 0.15; Div1 = 0.02; Div2 = 0.06; StockSpec1 = stockspec(Sigma1, AssetPrice1, 'continuous', Div1)
StockSpec1 = struct with fields:
FinObj: 'StockSpec'
Sigma: 0.2200
AssetPrice: 950
DividendType: {'continuous'}
DividendAmounts: 0.0200
ExDividendDates: []
StockSpec2 = stockspec(Sigma2, AssetPrice2, 'continuous', Div2)
StockSpec2 = struct with fields:
FinObj: 'StockSpec'
Sigma: 0.1500
AssetPrice: 980
DividendType: {'continuous'}
DividendAmounts: 0.0600
ExDividendDates: []
Calculate the price of the options for different correlation levels.
Strike = 1000 ; Corr = [-0.5; 0; 0.5]; OptSpec = 'call'; Price = maxassetbystulz(RateSpec, StockSpec1, StockSpec2,... Settle, Maturity, OptSpec, Strike, Corr)
Price = 3×1
111.6683
103.7715
92.4412
These are the prices of one unit. This means that the premium is 11166.83, 10377.15, and 9244.12 (for 100 units).
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 an
NINST
-by-1
vector of numeric
dates.
Data Types: double
Maturity dates, specified as an
NINST
-by-1
vector.
Data Types: double
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 R2009a
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.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)