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.

optrisk
function totalvar = optrisk
% Delta-gamma VaR estimation on Portfolio Data
%
% examp: change to ir to input
%       var = optrisk1(ir)
%
%       var = optrisk1(.5)

% [fname, pname] = uigetfile('*.xls','Select a file with equity data');
fname = 'equity.xls';
if fname==0
	return
end

fname= 'D:\Demos\finsem\ukdemos\Risk\riskhedge\equity.xls';
range='a1:j789';

% get equity data
edat = excelget(fname, 1, range);

eprice = cell2mat(edat(2:end, 2:end)); % price data
eret = log(eprice(2:end,:)./eprice(1:end-1,:));

alpha = norminv(0.95,0,1);
% risk free rate
ir = 0.08;
% time to maturity
T = 0.25;
% contract size
csize = 10000;

% daily volatility of returns
sigma = std(eret);
% annualised volatility
annsig = sigma * sqrt(260);

sprice = eprice(end,:);
% Assuming strike price is 2% higher than the current
% underlyings
strike = sprice*1.02;

call = blsprice(sprice,strike,ir,T,annsig,0).*csize;
delta = blsdelta(sprice,strike,ir,T,annsig,0).*csize;
gamma = blsgamma(sprice,strike,ir,T,annsig,0).*csize;

% 3D graphing
asset = 1:9;
del = linspace(min(delta),max(delta),40);
[ASSET,DELTA]=meshgrid(asset,del);
GAMMA = griddata(asset,delta,gamma,ASSET,DELTA,'v4');
surf(ASSET,DELTA,GAMMA)
shading flat
colormap(winter)
xlabel('Assets','color','w')
ylabel('Delta','color','w')
zlabel('Gamma','color','w')
title('Gamma vs. Delta for each Asset','color','w')
set(gcf,'color',[0.3241 0.3241 0.3241])
set(gca,'xdir','reverse','xtick',[0:9],'color','k','xcolor','w','ycolor','w', ...
    'zcolor','w','xticklabel',{'0';'1';'2';'3';'4';'5';'6';'7';'8';'9'})
cbar = colorbar;
set(cbar,'ycolor','w')


% current price squared
cpsq = eprice(end,:).^2;
% variance = std.^2
vrnc = sigma.^2;
var = alpha * sqrt(delta.^2.*vrnc.*cpsq + 0.5*(gamma.*vrnc.*cpsq).^2);
totalvar = sum(var);

Contact us at files@mathworks.com