版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
金融计算:基于Python
第4章 Python债券价值计算【教学目的与要求】通过本章学习,结合习近平新时代中国特色社会主义经济思想,讲授Python资金的时间价值、债券定价、久期、凸度、免疫的计算。【重点和难点】久期、凸度、免疫的计算【思政育人目标】将习近平新时代中国特色社会主义经济思想融入到Python资金的时间价值、债券定价、久期、凸度、免疫的学习中。【课程学习目标】了解Python资金的时间价值,掌握Python债券定价、久期、凸度、免疫的计算。金融计算:基于Python2主要内容4.1.资金的时间价值4.2.债券定价4.3.久期计算4.4.凸度计算4.5.免疫计算金融计算:基于Python34.1. 资金的时间价值资金的时间价值即货币的时间价值,就是指当前所持有的一定量货币比未来获得的等量货币具有更高的价值。计算货币时间价值量时,要引入现值和终值两个概念来表示不同时期的货币时间价值。现值(PV)是指未来某一时点上的一定量现金折合到现在的价值,通常记作P;终值(FV)是指资金经过若干时期后包括本金和时间价值在内的未来价值,通常记作F;利率是指一定时期内利息额与借贷资金额(本金)的比率,通常记作r。如果单位本金在t后的价值是a(t),则当t变动时,a(t)称为累积函数。金融计算:基于Python44.1.1. 单利计息定义函数如下输入:
defdl(r,t):dt=1+r*treturndt金融计算:基于Python54.1.2. 复利计息deffl(r,t):ft=(1+r)**treturnft[例4.1.1]假设本金100万元,计算期是5年,年利率是5%,每年计息两次,比较单利和复利计息的本息和。金融计算:基于Python64.1.3. 贴现函数deftxdl(r,n):dn=(1+t*r)**(-1)returndndeftxfl(r,n):fn=(1+r)**(-t)returnfn[例4.1.2]假设年利率是5%,求未来10年末资金100万元的现值。金融计算:基于Python74.1.4. 利率计息次数defsjll(r,n):r1=(1+r/n)**n-1returnr1[例4.1.3]方案一:年利率8%,每半年付息一次;方案二:年利率8%,每季度付息一次。应选择哪个方案进行投资?金融计算:基于Python84.1.5. 连续复利deflxfl(r,m):at=np.exp(r*m)returnat[例4.1.4]年利率8%,投资10年,连续复利率是多少?金融计算:基于Python94.1.6. 多期复利终值输入:defdqflzz(ct,r,t):ct1=ct*(1+r)**tfv=sum(ct1)returnfv[例4.1.5]假设某公司在一年后投资100万元,两年后投资200万元,三年后投资300万元,四年后投资400万元,如果投资的收益率为10%,那么5年后投资收益是多少?金融计算:基于Python104.1.7. 多期复利现值defdqflxz(ct,r,t):ct1=ct*(1+r)**(-t)pv=sum(ct1)returnpv[例4.1.6]假设某公司未来五年的投资额分别为100万元、200万元、300万元、、400万元、500万元,如果贴现率为10%,投资的现值是多少?金融计算:基于Python114.2. 债券定价4.2.1.直接债券定价defbpd(ct,F,y,t,n):a=ct/(1+y)**tb=F/(1+y)**np=sum(a)+sum(b)returnp[例4.2.1]假设新发行的3年期的债券面值为1000元,以后每半年支付利息50元,市场年收益为10%,那么债券的现值为多少?金融计算:基于Python124.2.2. 零息债券定价deflxbpd(F,y,n):b=F/(1+y)**nreturnb[例4.2.2]假设8年期的债券面值为1000元,市场年收益为8%,每半年付息一次的零息债券,那么债券的现值为多少?金融计算:基于Python134.2.3. 到期收益率计算importscipy.optimizeassoimportnumpyasnpdefYTM(P,C,k,M,T):defff(y):coupon=[]foriinnp.arange(0,T*k):coupon.append((C/k)/pow(1+y,i+1))returnnp.sum(coupon)+M/pow(1+y,T*k)-Preturnso.fsolve(ff,0.1)[例4.2.3]5年期的债券面值为100元,以后每半年支付利息2.5元,现在债券的价格是110元,求该债券的到期收益率。金融计算:基于Python144.2.4. 债券的赎回收益率计算defshbpd(ct,cp,y,t,n2):a=ct/(1+y)**tb=cp/(1+y)**n2p=sum(a)+sum(b)returnp[例4.2.4]有效期为18年的债券面值为100元,年票面利率是6%,每半年支付利息一次的可赎回债券,赎回年收益率为15.2%。假设这个债券最早可以在5年后以103元的价格赎回,求债券的市场价格。金融计算:基于Python154.3. 久期计算4.3.1.马考勒久期defdur(ct,F,y,n):a=ct/(1+y)**tb=F/(1+y)**np=sum(a)+sum(b)c=t*ct/(1+y)**tc1=n*F/(1+y)**np1=sum(c)+sum(c1)D=p1/preturnD[例4.3.1]票面面值100元,息票率为8%的三年期的债券,半年付息一次,到期年收益率为10%,求该三年期债券的麦考利久期。金融计算:基于Python164.3.2. 影响债券价格的要素deffxzq(y,i,n):a=(1+y)/yb=1+y+n*(i-y)c=i*((1+y)**n-1)+ydur=a-b/creturndurdeffxzq1(y,n):dur=(1+y)/y-(1+y)/(y*(1+y)**n)returndur金融计算:基于Python174.3.3. 资产组合久期[例4.3.2]一个债券组合由三种半年付息的债券构成,债券A面值100元,票面利率6%,到期时间6年,市场价格951.68元,到期年收益率7%,债券B面值2万元,票面利率5.5%,到期时间5年,市场价格2万元,到期年收益率5.5%,债券C面值1万元,票面利率7.5%,到期时间4年,市场价格9831.68元,到期年收益率8%,求该债券组合的久期。金融计算:基于Python184.4. 凸度计算4.4.1.凸度defconv(ct,F,y,n):a=ct/(1+y)**tb=F/(1+y)**np=sum(a)+sum(b)c=(t**2+t)*ct/(1+y)**tc1=(n**2+n)*F/(1+y)**np1=sum(c)+sum(c1)con=p1/p*(1+y)**(-2)returncon[例4.4.1]票面面值100元,息票率8%的三年期的债券,半年付息一次,到期年收益率10%,求该债券的凸度。金融计算:基于Python194.4.2. 凸度与价格波动的关系[例4.4.2]在[例4.4.1]中,修正久期是2.65,年凸度为8.337,如果预期未来收益将为11%,计算凸度与价格波动的关系。输入:dp=-2.65*0.01+0.5*8.337*0.01**2print(dp)金融计算:基于Python204.5. 免疫计算债券组合的主要风险来自利率变化,就是期限结构的改变。免疫是保护债券组合避免利率风险的一种策略。管理者选择久期等于他们负债的到期期限的债券组合,利用价格风险和再投资率风俭互相抵消的特点,保证管理者不受损失。金融计算:基于Python214.5.1. 再投资的收益分析[例4.5.1]如果债券管理者为投资者管理一个面值为100元,息票率是8%,息票再投资率是8%的5年期债券,分析当利率发生变化时投资的收益情况。***由于利率的下降导致债券的收益率下降。使用免疫策略可以避免这种结果,即不使复利率下降。金融计算:基于Python224.5.2. 利率变化对债券价格的影响当利率变化时,在给定到期期限上如何影响债券的价格,对收益率的影响如何呢?[例4.5.2]一个6年期面值为100元息票每亩和再投资率都是8%,计算其久期,分析利率上升至9%和下降至6%的债券价格及收益率。金融计算:基于Py
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论