楼主: 豇小豆
19180 32

[问答] 有大神会编蒙特卡罗模拟来计算VAR的么,求帮助!! [推广有奖]

11
豇小豆 发表于 2015-5-21 16:13:18
hzcmaster 发表于 2015-5-19 16:02
clear
clc
mcmc=1000;//monte carlo 序列
我用matlab运行了程序,但是为什么每次的运行结果都不一样?

12
hzcmaster 发表于 2015-5-21 19:51:47
豇小豆 发表于 2015-5-21 16:13
我用matlab运行了程序,但是为什么每次的运行结果都不一样?
不一样的原因在于这个收益序列是通过随机数产生的,你每次运行生成的随机数不一样,那么收益序列也会有所不同。这里我唯一不太确定的是你的VaR是怎么计算的?还有就是你的收益率计算公式我觉得有点问题,这个迭代都快收敛到0了,你要确认一下~
已有 1 人评分论坛币 收起 理由
admin_kefu + 30 热心帮助其他会员

总评分: 论坛币 + 30   查看全部评分

13
豇小豆 发表于 2015-5-21 22:42:49
hzcmaster 发表于 2015-5-21 19:51
不一样的原因在于这个收益序列是通过随机数产生的,你每次运行生成的随机数不一样,那么收益序列也会有所 ...
确实,最后var的值为0,因为μ近似-1了。那么我所得到的所有var的值都不一样的话,怎么定论呢?

14
hzcmaster 发表于 2015-5-21 23:00:34
豇小豆 发表于 2015-5-21 22:42
确实,最后var的值为0,因为μ近似-1了。那么我所得到的所有var的值都不一样的话,怎么定论呢?
如果你确定你的收益序列没有问题,那么将这个程序运行2000次,对2000个VaR的值求平均——这是点估计,或者将2000个值排序,得到95%置信区间——区间估计,选一个就OK了

15
豇小豆 发表于 2015-5-21 23:32:20
hzcmaster 发表于 2015-5-21 23:00
如果你确定你的收益序列没有问题,那么将这个程序运行2000次,对2000个VaR的值求平均——这是点估计,或者 ...
clear
clc
mcmc=1000;
p=zeros(1,mcmc+1);
h=zeros(1,mcmc+1);
p(1)=6.1089;
alpha=0.05;
for a=1:mcmc
    for k=1:mcmc
        epsilon=normrnd(0,1);
        p(k+1)=p(k)+p(k)*(1.94152E-05+0.000638662*epsilon);
    end
h(a)=p(k+1);
end
vars=sort(h);
var=abs(vars(mcmc*0.05));

这个是我改了收益率序列以后又受你的启发对同学你写的程序进行改进得到的,你觉得这个程序有问题有漏洞么?
思路就是你得到了P1000,然后我得到1000个P1000然后排序。

16
hzcmaster 发表于 2015-5-22 11:23:52
豇小豆 发表于 2015-5-21 23:32
clear
clc
mcmc=1000;
你的h(a)=p(k+1)有点问题,这个h每次存储的是mcmc序列的最后一个值,这一步应该算VAR的值。其他都挺好
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

17
豇小豆 发表于 2015-5-22 14:06:57
hzcmaster 发表于 2015-5-22 11:23
你的h(a)=p(k+1)有点问题,这个h每次存储的是mcmc序列的最后一个值,这一步应该算VAR的值。其他都挺好
也就是说可以改成a=1:k+1?同学你的建议呢,如何改更合理些?

18
magicsun 发表于 2015-5-22 21:04:18
豇小豆 发表于 2015-5-21 16:13
我用matlab运行了程序,但是为什么每次的运行结果都不一样?
2012版后,好像加个rng就可以不变了。你百度一下。

19
magicsun 发表于 2015-5-22 21:05:11
豇小豆 发表于 2015-5-21 23:32
clear
clc
mcmc=1000;
前期的值是否删掉?

20
hzcmaster 发表于 2015-5-23 13:05:38
豇小豆 发表于 2015-5-22 14:06
也就是说可以改成a=1:k+1?同学你的建议呢,如何改更合理些?
你没理解我的意思,你这里的h(a)记录的是每一次序列的最后一个值,这个值跟VAR没有任何关系,你应该写
var=...;%这里写var的计算表达式
h(a)=var;
end
然后观察h

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 12:29