注:'DATA'文件是2231×40的一个数据表
function MyAssets(NbTraj)
[num]=xlsread('DATA')
ClosePrice=[num(1:end,1) num(1:end,3) num(1:end,5) num(1:end,7) num(1:end,9)]
Return=[num(2:end,2) num(2:end,4) num(2:end,6) num(2:end,8) num(2:end,10)]
X=length(Return)
Y=length(ClosePrice)
T=252
HReturn=Return(X-T+1:end,:)
mu=mean(HReturn)
sigma=std(HReturn)
rho=corrcoef(HReturn)
N=0
for n=1:10
N=N+1
InitialPrice=ClosePrice(Y-N*T,:)
InitialInvest=[250000 250000 250000 250000 250000]
Num=InitialInvest./InitialPrice
DeltaT=1
L=chol(rho)'
NbTraj=10000
MyAssets=zeros(NbTraj,1)
for i=1:NbTraj
InitialPrice=ClosePrice(Y-N*T,:)
for k=1:T
Z=L*randn(5,1)
Z=diag(Z)
InitialPrice=InitialPrice.*(exp(mu-sigma.^2*0.5)*(DeltaT)+sigma.*sqrt(DeltaT)*Z)
end
MyAssets(i,1)=Num*InitialPrice'
end
MyAssets=sort(MyAssets)
VaR95=InitialPosition-MyAssets(floor(NbTraj*0.05),1)
disp(VaR95)
end