SAS在金融中的应用六
1.某种债券的期限为2年,面值1000元,票面利率5%,每月支付一次利息,假设投资者要求的必要收益率为从2%变化到10%,
请求出不同情况下的债券价格,并作出债券价格随利率变化的图形,写出sas程序。
data a;
array br(9) br1-br9;
do n=1 to 9;br(n)=0;do i=1 to 24;if i<24 then c=50/12;else c=1000+50/12;br(n)=br(n)+c/(1+((n+1)/100)/12)**i;end;
end;
proc print data=a;
run;
data b1;
set a;
keep br1-br9;
run;
proc transpose data=b1 out=c1 prefix=b4;
run;
data c1;
set c1;
c=(_n_+1)/100;
run;
proc print data=c1;
run;
title '债券价格随利率变化的轨迹';
proc gplot data=c1;
plot b41*c/vaxis=axis1 haxis=axis2;
symbol v=* i=join l=1 font=swissb;
axis1 label=('债券价格') order=(900 to 1060 by 20);
axis2 label=('利率') order=(0 to 0.1 by 0.01);
run;
quit;
2.19太平石化租赁债01 信息如下:票面利率为3.49%,每年付息一次,面值为100,到期日为2022年8月26日。
由于该债券信用评级比较高,某投资者要求的必要收益率为2.5%;
请问该债券价格为多少?请问该债券今天的久期为多少?你能编制一个宏程序完成该过程吗?
/*由题查询可知该债券缴款日和起息日为2019年8月26日,则债券的期限为三年*/
/*计算价格和久期的宏程序*/
%macro jq(n,mpt,fv,r);
data a1;
b=0;
d1=0;
do i=1 to &n.;if i<&n. then c=&mpt.;else c=&fv.+&mpt.;b=b+c/((1+&r.)**i);d1=d1+i*c/((1+&r.)**i);
end;
d=d1/b;
dm=d/(1+&r.);
proc print data=a1;
var b d dm;
%mend jq;
%jq(3,3.49,100,0.025);
run;
债券价格为102.827,今天的麦考利久期为2.90147,修正久期为2.83070;
3.某种债券的期限为5年,面值为100元,票面利率为5%,每半年支付一次利息,
如果分别采用3%、4%、5%作为贴现率,那么当t的取值从.5到5时,该债券在第t年初的价格分别为多少?
试绘制在三种贴现率下债券价格的时间轨迹图,观察并总结其规律。
%macro jg(x);
data a&x.;
array b&x.r(10) b&x.r1-b&x.r10;
do t=1 to 10;b&x.r(t)=0;do n=1 to 11-t;if n<11-t then c=2.5;else c=102.5;b&x.r(t)=b&x.r(t)+c/((1+(&x./2)/100)**n);end;
end;
data b&x.;
set a&x.;
drop t n c;
proc transpose data=b&x. out=c&x. prefix=b&x.;
%mend jg;
%jg(3);
%jg(4);
%jg(5);
run;
data c;
merge c3 c4 c5;
t=_n_/2;
title "三种不同折现率下债券价格的时间轨迹图";
proc gplot data=c;
plot b31*t b41*t b51*t/vaxis=axis1 haxis=axis2 overlay;
symbol v=* i=join l=1 font=swissb;
axis1 label=('债券价格') order=(100 to 110 by 1);
axis2 label=('时间') order=(0 to 5 by 0.5);
run;
quit;
规律总结:
当票面利率高于贴现利率时,债券价格高于面值,为溢价债券,溢价债券随着到期日的临近,其价格会逐渐下降,最后等于面值。
票面利率相同时,贴现利率越小,债券价格越高。
当票面利率等于贴现利率时,债券价格始终等于面值。
**4.一个债券组合中包含有三种债券,其期限分别为6年、10年和14年。三种债券都是每年支付一次利息,每种债券的利息都在年末支付,6年期的债券票面利率为5.5%,面值为10000,10年期的债券利率为6.5%,面值为20000;14年期的债券利率为7%,面值为30000,如果该债券组合的市场价格为58500,试计算该债券组合的内生收益率。
data a;
input a;
cards;
1
2
3
4
5
6
7
89
10
11
12
13
14
;
run;
%macro xjl(b,n,x);
data a&n.;
set a;
if a<&n. then c&n.=&b.*&x./100;
if a=&n. then c&n.=&b.+&b.*&x./100;
if a>&n. then c&n.=0;
%mend xjl;
%xjl(10000,6,5.5);
%xjl(20000,10,6.5);
%xjl(30000,14,7);
run;
data c;
merge a6 a10 a14;
by a;
xjl=c6+c10+c14;
run;
proc transpose data =c out =c1;
var xjl;
run;
data c2;
set c1;
r=irr(1,-58500,col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11,col12,col13,col14);
proc print data=c2;
var r;
run;
计算得该债券的内生收益率为7.01859%。
5.某债券的面值为500元,期限10年,票面利率为6%,利息每半年支付一次,如果市场利率为5%,试计算该债券的修正久期与凸度。
当市场利率从5%上升为5.5%时,试计算该债券价格变化的百分比,并计算修正久期可以解释的价格变化百分比和凸度可以解释的价格变化百分比。
data a;
b=0;
d1=0;
do n=1 to 20;if n<20 then c=15;else c=515;b=b+c/((1+0.025)**n);d1=d1+n*c/((1+0.025)**n);
end;
d=(d1/b)/2;
dm=d/(1+0.025);
data b;
set a;
keep b d dm;
run;
由以上程序可得当市场利率为5%时,债券的价格为538.97290571,修正久度为7.5724815788。
data c;
b=538.97290571;
con1=0;
do t=1 to 20;if t<20 then c=15;else c=515;con1=con1+t*(t+1)*c/((1+0.025)**t);
end;
con=(con1/(b*(1+0.025)**2))/4;/*凸度年化为70.649487995*/
data d;
set c;
keep con;
run;
凸度年化为70.649487995
data a1;
b=0;
do n=1 to 20;if n<20 then c=15;else c=515;b=b+c/((1+0.0275)**n);
end;
run;
当市场利率为5.5%时,债券价格为519.03406517,
当市场利率从5%上升为5.5%时,该债券价格变化的百分比=(519.03406517-538.97290571)/538.97290571=-3.7%
修正久期可以解释的价格变化百分比为-7.57248157880.005=-3.79%
凸度可以解释的价格变化百分比为0.570.649487995*(0.005^2)=0.0883%
(修正久期+凸度)度量幅度为-3.7017%。
SAS在金融中的应用六相关推荐
- SAS在金融中的应用七
第14-15周作业 1.当前市场的利率为:一年期平价债券的票面利率5%,二年期平价债券的票面利率6%,三年期平价债券的票面利率7%,假设所有的债券都是一年付息一次.给出如下计算 的sas程序. a.试 ...
- SAS在金融中的应用二
作业1 某人需贷款300万元,银行固定利率贷款的名义年利率为4.4%,复利时间单位为月,如果每月最多还款12500元,那么贷款期限应多长? proc loan start=2015;fixed amo ...
- SAS在金融中的应用五
根据穷举法 (选择3只股票,做穷举法)和二次规划(7只股票)两种方式求给定收益情况下的最优投资组合,并做出最优投资组合均值和方差的有效前沿边界. /*根据穷举法 (选择3只股票,做穷举法)和二次规划( ...
- SAS在金融中的应用四
1.导入上证综指.csv,计算上证综指的单期日对数收益率,做两张图: 一是日收益率随时间变化的图; 二是日收益率数据的经验累积概率分布图与正态分布累积概率分布图.判断日收益率数据的波动特征,以及日收益 ...
- SAS在金融中的应用三
第一题: 导入数据上证综指,试计算2020期间各月上证综指的单期百分比收益率,算术平均收益率 和几何平均收益率,以及财富指数.(要求:采用retain语句和transpose语句两种形式) /*导入数 ...
- SAS在金融中的应用一
第一题: 采用恰当的input语句输入数据.如下数据集. data a; length b$22 ; infile 'D:\mySASDATA\2-3zhou\1.txt' encoding=utf8 ...
- 关于计算机类的SAS论文,浅析SAS软件教学中内容与形式的结合论文
浅析SAS软件教学中内容与形式的结合论文 摘要:SAS统计软件强大的数据管理和统计分析功能,在社会实践和科研领域得到了广泛地应用.熟练应用SAS软件成为统计师等专业技术人员的基本要求,也是各统计专业大 ...
- 好书推荐《R语言在定量金融中的应用》
给大家推荐一本R语言在定量金融方面的好书,是我老师编写的,我也非常有幸参与到这本书的编写过程中.这本书2015年5月份正式上线,其实从2013年底开始写的,经历大约两年的时间.这本书一出来就收到了很大 ...
- R语言在金融中的应用二
3.文件输入输出以及常见错误 3.1 R脚本文件输入(打开) .R 利用Rstudio界面 利用R界面 命令打开 file.edit("#dir",fileEncoding = & ...
最新文章
- Angular Jasmine 里一些常用概念学习笔记 - describe, it, beforeEach的用法
- 实际工作中,一个完整的可视化大屏项目有哪些步骤?
- 马上开课 | 第 3 期临床基因组家系分析,助力发表Case Report
- 在Ubuntu 14.04平台上利用Intel的GPU实现硬件加速--基于VAAPI
- Linux内核分析课程期中总结
- 软件工程期末试题及答案(史上最全)
- D525安装黑群晖DSM6.1.7教程
- Response.AddHeader使用实例
- list保存到scv
- vue3 H5 pdf插件 iphone查看pdf失败
- 第三章:SCI论文写作经验分享
- 金蝶如何用计算机,怎么把金蝶的报表另存在电脑上?
- 中兴B863AV3.2-M、B863AV3.1-M2、E900V22C免拆机通刷救砖包【安卓9.0】
- 【年度总结】继往开来:回首不靠谱的2021,希冀靠谱的2022
- typora主题-orangeheart
- Python的io模块详解
- React DDD 会是未来的趋势吗?
- 曲线救国 —— 删除数组的指定元素
- Linux下tree命令安装及使用
- Cocos2dx 2.2.0 孤狼优化整合版V1.0(32位)