Code covered by the BSD License  

Highlights from
Financial Seminar Demos

from Financial Seminar Demos by Michael Weidman
Demos commonly used at The MathWorks financial modeling seminars.

multimc(hVal,t,nSim)
function aVal= multimc(hVal,t,nSim)
% aVal= multimc(hVal,t,nSim)
% HVAL price data matrix, time-by-asset
% T time vector, e.g. 1:100
% NSIM number of simulations
% AVAL time-by-sim-by-assets

% Author: Taras Chaban, 22-May-01
% Copyright (c) 2001 The MathWorks, Inc. All Rights Reserved.

% calculate number of assets
nAsset= size(hVal,2);
nTimes= length(t);

% calculate returns statistics
retVal= log(hVal(2:end,:)./hVal(1:end-1,:));
mRet= mean(retVal);
volat= std(retVal);

corrRnd= zeros(nAsset,nTimes,nSim);
cholMat= chol(corrcoef(retVal))';

for i=1:nSim
   % simulations will have the same random sequence
   randn('state',i);
   corrRnd(:,:,i)= cholMat*randn(nAsset,nTimes);
end

aVal= zeros(nTimes,nSim,nAsset);
for i=1:nAsset
   aVal(:,:,i)= montecarlo(hVal(end,i),mRet(i),...
      volat(i), t, nSim, squeeze(corrRnd(i,:,:)));
end

Contact us at files@mathworks.com