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

    %% Prices Basket Options Using the Longstaff-Schwartz Model  

% Copyright 2015 The MathWorks, Inc.


%% 
% Find an American call basket option of three stocks. The stocks are currently
% trading at $35, $40 and $45 with annual volatilities of 12%, 15% and 18%,
% respectively. The basket contains 33.33% of each stock. Assume the correlation
% between all pair of assets is 50%. On May 1, 2009, an investor wants to
% buy a three-year call option with a strike price of $42. The current annualized
% continuously compounded interest rate is 5%. Use this data to compute
% the price of the call basket option using the Longstaff-Schwartz model. 
Settle = 'May-1-2009';
Maturity  = 'May-1-2012';

% Define RateSpec
Rate = 0.05;
Compounding = -1;
RateSpec = intenvset('ValuationDate', Settle, 'StartDates',...
Settle, 'EndDates', Maturity, 'Rates', Rate, 'Compounding', Compounding);

% Define the Correlation matrix. Correlation matrices are symmetric,
% and have ones along the main diagonal.
Corr = [1 0.50 0.50; 0.50 1 0.50;0.50 0.50 1];

% Define BasketStockSpec
AssetPrice =  [35;40;45]; 
Volatility = [0.12;0.15;0.18];
Quantity = [0.333;0.333;0.333];
BasketStockSpec = basketstockspec(Volatility, AssetPrice, Quantity, Corr);

% Compute the price of the call basket option
OptSpec = {'call'};
Strike = 42;
AmericanOpt = 1; % American option
Price = basketbyls(RateSpec, BasketStockSpec, OptSpec, Strike, Settle, Maturity,...
'AmericanOpt',AmericanOpt)  

%% 
% Increase the number of simulation trials to 2000 to give the following
% results: 
NumTrial = 2000;
Price = basketbyls(RateSpec, BasketStockSpec, OptSpec, Strike, Settle, Maturity,...
'AmericanOpt',AmericanOpt,'NumTrials',NumTrial)