Code covered by the BSD License  

Highlights from
Exercises in Advanced Risk and Portfolio Management

from Exercises in Advanced Risk and Portfolio Management by Attilio Meucci
text and comments on solutions available at http://symmys.com/node/170

S_DerivativesInvariants.m
% this script performs the quest for invariance in the derivatives market
% see "Risk and Asset Allocation"-Springer (2005), by A. Meucci

clc; close all; clear;
% load implied vol for options on SPX for different time to maturity and moneyness
load('DB_Derivatives');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% simple univariate test

% select the implied vol time series for a specific time to maturity and moneyness 
maturityIndex=1;    % 1..6
moneynessIndex=4;   % 1..7

% quest for invariance
X=diff(impVol(1:5:end,maturityIndex,moneynessIndex));
IIDAnalysis(X);
axisLimits = axis;
text(axisLimits(1:2)*[-0.1,1.1]', axisLimits(3:4)*[0.1,0.9]', 'Changes in implied vol');

Y=diff(log(impVol(1:5:end,maturityIndex,moneynessIndex)));
IIDAnalysis(Y);
axisLimits = axis;
text(axisLimits(1:2)*[-0.1,1.1]', axisLimits(3:4)*[0.1,0.9]', 'Changes in log of implied vol');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% multivariate test with AR(1) structure

[T,Mat,Mon]=size(impVol(1:5:end,:,:));
Z=reshape(log(impVol(1:5:end,:,:)),T,Mat*Mon);
X=Z(2:end,:);
F=[ones(T-1,1) Z(1:end-1,:)];
E_XF=X'*F/T;
E_FF=F'*F/T;
B=E_XF*inv(E_FF);
Eps=X-F*B';

IIDAnalysis(Eps(:,3));
axisLimits = axis;
text(axisLimits(1:2)*[-0.1,1.1]', axisLimits(3:4)*[0.1,0.9]', 'VAR(1) residuals');

Contact us at files@mathworks.com