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.