www.gusucode.com > fininst 案例源码程序 matlab代码 > fininst/ComputeminassetbystulzRainbowPricingModeExample.m

    %% Compute Rainbow Option Prices Using the Stulz Option Pricing Model  

% Copyright 2015 The MathWorks, Inc.


%% 
% 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)  

%% 
% 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)
StockSpecB = stockspec(SigmaB, AssetPriceB, 'continuous', DivB)  

%% 
% 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) 

%%
% 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.