correlation 蒙特卡洛_蒙特卡洛模拟林业不确定性matalab代码

本文提供了一段MATLAB代码,用于进行蒙特卡洛模拟,以研究五种资产在504天内的价格变化。资产的日收益率、标准差和相关系数矩阵作为输入,模拟初始价格为100,模拟天数为504,模拟线程为2,最终通过portsim函数计算资产组合的回报并进行绘图。
摘要由CSDN通过智能技术生成

CODE:

假设有五种资产,其日收益率(%)分别为

0.0246 0.0189 0.0273 0.0141 0.0311

标准差分别为

0.9509 1.4259, 1.5227, 1.1062, 1.0877

相关系数矩阵为

1.0000 0.4403 0.4735 0.4334 0.6855

0.4403 1.0000 0.7597 0.7809 0.4343

0.4735 0.7597 1.0000 0.6978 0.4926

0.4334 0.7809 0.6978 1.0000 0.4289

0.6855 0.4343 0.4926 0.4289 1.0000

假设初始价格都为100,模拟天数为504天,模拟线程为2,程序如下

%run.m

ExpReturn = [0.0246 0.0189 0.0273 0.0141 0.0311]/100; %期望收益

Sigmas = [0.9509 1.4259, 1.5227, 1.1062, 1.0877]/100;%标准差

Correlations = [1.0000 0.4403 0.4735 0.4334 0.6855

0.4403 1.0000 0.7597 0.7809 0.4343

0.4735 0.7597 1.0000 0.6978 0.4926

0.4334 0.7809 0.6978 1.0000 0.4289

0.6855 0.4343 0.4926 0.4289 1.0000

];%相关系数

ExpCov = corr2cov(Sigmas, Correlations);%协方差

StartPrice = 100;%初始价格

NumObs = 504;

NumSim = 2;

RetIntervals = 1;

NumAssets = 5;

%开始模拟

randn('state', 0);

RetExact = portsim(ExpReturn, ExpCov, NumObs, RetIntervals, NumSim);

Weights = ones(NumAssets, 1)/ NumAssets;

PortRetExact = zeros(NumObs, NumSim);

for i = 1:NumSim

PortRetExact(:, i) = RetExact(:,:,i)*Weights;

end

PortExact = ret2tick(PortRetExact, repmat(StartPrice, 1, NumSim));

plot(PortExact, '-r');

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值