楼主: qiletian
6834 3

[问答] CIR模型的Matlab实现 [推广有奖]

  • 2关注
  • 0粉丝

高中生

97%

还不是VIP/贵宾

-

威望
0
论坛币
766 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
698 点
帖子
18
精华
0
在线时间
30 小时
注册时间
2014-10-4
最后登录
2019-1-4

楼主
qiletian 学生认证  发表于 2016-5-7 22:59:29 |AI写论文
5论坛币
请大神为我解答:
如何写代码在matlab中实现CIR模型?
CIR模型: CIR模型.jpg
我只想在给定模型中三个参数的情况下,模拟若干个(比如1000个)X-t出来,用以检验估计量的好坏。
请大神给出Matlab(或者其他软件,比如R)的程序。
本人小白,以前没有用过这个软件,又比较急用,所以只能羞耻地向大家求助了。
万谢!

关键词:matlab实现 MATLAB atlab matla Atl 模型

沙发
qiletian 学生认证  发表于 2016-5-8 21:48:38
不要沉啊

藤椅
cmwei333 发表于 2016-5-15 03:43:12
需要改的参数,在第一二三行改就可以了,画图需要加上什么属性,在画图的代码上面自己加就好了

cir_sim.zip
下载链接: https://bbs.pinggu.org/a-2032616.html

331 Bytes

需要: 1 个论坛币  [购买]

本附件包括:

  • cir_sim.m

bbs.pinggu.org/forum.php?mod=collection&action=view&ctid=3257
bbs.pinggu.org/forum.php?mod=collection&action=view&ctid=3258
bbs.pinggu.org/forum.php?mod=collection&action=view&ctid=3259

板凳
matlab-007 发表于 2016-7-24 19:02:03
%模拟CIR利率期限结构模型,M文件见附件

%参数设定
Theta = 0.05;
Kappa = 1.3;
Sigma = 0.2;
T=3;
NbSteps = 156;
DeltaT = T / NbSteps;
rInit = 0.05;
Lambda = 0.3;
Gamma = sqrt((Kappa+Lambda)^2+2*Sigma^2);
t=0;
r=rInit;

%定义零息票利率R的维度
R = zeros(NbSteps,1);

%定义时间间隔步长
for i=1:NbSteps

    %定义零息债券价格参数A和B
    Temp1=(Gamma+Kappa+Lambda)*(exp(Gamma*(T-t))-1)+2*Gamma;
    Temp2=2*Gamma*exp((Gamma+Kappa+Lambda)*(T-t)/2);
    Temp3=2*(exp(Gamma*(T-t))-1);

    %求取零息债券价格参数A和B
    A = (Temp2/Temp1)^(2*Kappa*Theta/Sigma^2);
    B = Temp3/Temp1;

    %短期利率的模拟
    r = r + Kappa*(Theta-r)*DeltaT + Sigma*sqrt(r)*sqrt(DeltaT)*randn(1);

    %在时刻t,期限为T-t的零息利率R为:
    R(i,1) = (r*B-log(A))/(T-t);
    t=t+DeltaT;
end

%绘出利率期限结构(一条路径)
plot([DeltaT:DeltaT:T], R);
ylabel('R(t,T)')
xlabel('t')

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

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