债券价格与收益率的Matlab实现

合集下载

《高级债券投资分析与Matlab》 -- 详细介绍及大纲

《高级债券投资分析与Matlab》 -- 详细介绍及大纲

2015年第二期《高级债券投资分析与Matlab》培训邀请函6月16 – 21 云南大理【中国债券俱乐部财讯金融培训】联合举办随着债券市场的发展,债券品种、债券投资策略、债券组合管理也在不断创新,收益率曲线的波动性与动力学也越发丰富。

如何掌握复杂债券片中的定价,设计合理的债券投资策略与组合管理一直是债券专业人士面临挑战。

为了结合高级债券培训,我们推出Matlab金融应用与高级债券分析的套餐培训计划。

Matlab在金融建模、金融计算中应用广泛,是金融定量分析不可或缺的工具。

第一模块:提供专门的Matlab培训(大纲见附录一)第二模块:提供高级债券培训(大纲见附录二)。

可参选任一模块,需要全面掌握债券高级分析理论与实施方法的学员我们建议参加第一与第二模块。

《高级债券投资分析》培训项目简介:我们强调系统的分析能力与分析工具的使用,真正教会每个学员的实际分析能力。

在完成基础债券分析模块后,就可以进一步深入学习高级债券分析。

该模块针对一些债券投资中的一些主要课题进行深入的研究,根据成熟的理论和实践经验,是债券专门人士管理债券投资组合、挖掘债券价值必不可少的重头课程。

我们的主要的分析工具是Matlab,你将不仅学习到债券高级分析方法,还能掌握实施这些方法的高级工具与软件。

所涉及的主要内容包括收益率曲线拟合技术、浮息债券分析、收益率曲线动力学与主因子分析、内置期权债券分析、收益率曲线的构成、可转债定价技术、高级债券交易与投资策略以及债券与利率金融产品的创新等等。

培训后每个学员能够从高级分析人员的角度,独立进行债券投资策略的制定与风险管理。

所有案例的源程序全部赠送。

(详细内容见附录)培训对象:参加人员:证券,基金,保险,信托,商业银行等机构投资部经理,投资策略师,债券高级分析人员,交易员。

预备知识:证券数量分析方法基础。

Matlab知识强烈推荐。

课程目标:学员通过本门课程的强化培训,应能达到以下学习目标✧掌握研究中国债券品种的先进方法,进行债券定量分析。

matlab实验报告--证券的投资选择

matlab实验报告--证券的投资选择

Matlab上机实验报告一.题目设有三种证劵S1,S2,S3,期望收益率分别为10%,15%和40%,风险分别是10%,5%和20%。

假定投资总风险用最大一种投资股票的风险来度量,且同期银行存款利率为r0=5%,无风险,为投资者建议一种投资策略(投资比例),使其尽可能获得最大收益。

二.问题分析本题是一种投资问题,可以转化为具有约束条件的线性函数的极值求解问题。

根据各种投资方式的收益率,列出总收益与投资比例(各种投资方式的投资数目)的方程。

以总投资数为1,各种投资方式的的风险不大于最大投资风险,各种投资方式投资数大于0为约束条件,建立含约束条件的线性函数。

通过求极值解决问题。

三.假设约定假设投资三种证劵的资金分别为s1,s2,s3,投资银行存款的资金为s0,总投资金额为S,投资的风险度为a,设这三种证劵之间是相互独立的,且在投资的同一时期内,证劵收益率,风险度及银行的利率都不发生变化。

四.模型建立由题目的已知条件可以知道投资后获得的各项收益为0.05s0,0.1s1,0.15s2,0.4s3,投资三种证劵的风险度分别为0.1s1/S, 0.05s2/S, 0.2s3/S,为使投资者获得最大收益,在总风险不超过a的情况下,可以建立如下模型:max 0.05s0+0.1s1+0.15s2+0.4s3且:s0+s1+s2+s3=S0.1s1/S<=a0.05s2/S<=a0.2s3/S<=as1>=0,s2>=0,s3>=0五.模型简化令xi=si/S,则原模型可以简化为:min f=-0.05x0-0.1x1-0.15x2-0.4x3其中:x1+x2+x3+x4=10.1x1<=a0.05x2<=a0.2x3<=ax1>=0,x2>=0,x3>=0 六.程序代码使用MATLAB编写的程序如下所示:a=0;c=[-0.05,-0.1,-0.15,-0.4];A=[0,0.1,0,0,;0,0,0.05,0;0,0,0,0.2];aeq=[1,1,1,1];beq=[1];vlb=[0,0,0,0];vub=[0];for a=0:0.01:0.3b=[a,a,a,a];[x,val]=linprog(c,A,b,aeq,beq,vlb,vub);ax=x’Q=-valplot(a,Q,’.’)hold onend七.实验结果程序运行后所得的结果如下所示原始数据如下:a =0.1990x =0 0.0000 0.0050 0.9950Q =0.3987a =0.2000x = 0 0.0000 0.0000 1.0000 Q = 0.4000a =0.2010x =0 0.0000 0.0000 1.0000Q = 0.4000a = 0.2020x =0 0.0000 0.0000 1.0000Q = 0.4000a =0.2030x =0 0.0000 0.0000 1.0000Q = 0.4000八.结果分析(1)风险越大,收益也越大,但不承线性分布。

CAPM模型计算的MATLAB实现

CAPM模型计算的MATLAB实现

CAPM模型中beta系数的MATLAB实现CAPM模型中两条重要的线分别是资本市场线和证券市场线,资本市场线研究的是在无风险利率存在的条件下,有效资产组合的预期收益与风险的关系,而证券市场线研究的是在无风险利率存在的条件下,单个证券的预期收益与风险的关系。

均衡的单个证券的预期收益率定价公式如下:E(r i)=r f+[E(r M)−r f]∙βi是单个证券的风险调整系数。

下面编写Matlab 其中,βi=Cov(r i,r M)σM2程序,计算单只证券的β系数。

在此所用软件为MATLAB R2014a。

根据CAPM模型公式中的β系数的计算方法,可编写函数式M 文件,计算单个证券或证券组合的beta系数。

该函数如下function beta=portbeta(portReturn,marketReturn)% 函数目的:利用CAPM模型公式,计算beta系数% 输入参数:% portReturn: 单个证券或证券组合的收益率序列% marketReturn:市场或基准的收益率序列% 输出参数:% beta:基于CAPM模型的beta值temp_cov=cov(portReturn,marketReturn); % 计算协方差矩阵beta=temp_cov(1,2)/temp_cov(2,2); % beta=组合与市场的协方差/市场的方差end一、不同类型证券的β系数假设我们考察的证券为:股票型基金—诺安高端制造股票(001707)、混合型基金—嘉实主题新动力混合(070021)、债券型基金—博时裕瑞纯债债券(001578),用沪深300收益率(或者日涨跌幅)代表市场组合的收益率,时间为2018年5月-2019年4月。

各收益率数据如下:下面首先画出证券收益率和市场收益率(沪深300)的图形,直观观察证券与市场的相对波动程度大小,画图代码如下:% 载入数据load data.txt% 数据列顺序为:诺安高端制造股票、嘉实主体新动力混合、博时裕瑞纯债债券x=1:size(data,1);plot(x,data(:,1),'m-o',x,data(:,2),'g-', x, data(:,3), 'r:', x, data(:,4),'b--')legend('诺安高端','嘉实主体','博时裕瑞','沪深300')图1 基金收益率与沪深300收益率(单位:%)从上图可见,诺安高端制造股票的波动幅度大于沪深300,嘉实主体新动力混合的波动幅度裕沪深300接近,而博时裕瑞纯债债券的波动幅度远远小于沪深300,故此可初步判断出,诺安高端制造股票的beta系数大于1、嘉实主体新动力混合的beta系数接近1,而博时裕瑞纯债债券的beta系数远小于1。

MATLAB程序设计 资产收益率分布的拟合与检验

MATLAB程序设计 资产收益率分布的拟合与检验

资产收益率分布的拟合与检验在统计推断中,通常假定总体服从一定的分布(例如正态分布),然后在这个分布的基础上,构造相应的统计量,根据统计量的分布作出一些统计推断,而统计量的分布通常依赖于总体分布的假设,也就是说总体所服从的分布在统计推断中是至关重要的,会影响到结果的可靠性。

从这个意义上来说,由样本观测数据去推断总体所服从的分布是非常必要的。

指数与基金的收益率,介绍根据样本观测数据拟合总体的分布,并进行分布的检验。

本章主要内容包括:数据的描述性统计,分布的检验,核密度(kernel density)估计。

其中数据的描述性统计又包括均值、标准差、最大值、最小值、极差、中位数、众数、变异系数、偏度和峰度等描述性统计量,以及箱线图、经验分布函数图、频率直方图和正态概率图等统计图;分布的检验主要介绍chi2gof、jbtest、kstest、kstest2、lillietest等函数的用法。

1 案例描述为使得整个分析过程更贴近实际,选取2007-2008年沪深300指数价格与博时主题(复权)净值数据作为分析对象进行分布的拟合与检验。

图1 2007-2008年沪深300指数与博时主题首先,将数据从excel文件中读取并以Mat格式存储,以便分析时使用。

ReadData.M 函数%读取数据并存储数据filename='funddata.xls'%num为数值格式的净值%txt为字符格式[num,txt,raw] = xlsread(filename);Date=datenum(txt(4:491,1));%Hs300指数为第一列Hs300=num(:,1);%博时主题为第二列BSZT=num(:,2);%将沪深300指数、博时主题净值(复权)、%日期数据存储在TestData 中save TestData Hs300 BSZT Date %画图subplot(2,1,1)plot(Date,Hs300,'k');%将时间轴的 数值日期转变为 月/年 格式 dateaxis('x',2) legend('沪深300') subplot(2,1,2)plot(Date,BSZT,'b--');%将时间轴的 数值日期转变为 月/年 格式 dateaxis('x',2) legend('博时主题')2 数据的描述性统计2.1 描述性统计量在进行数据分析之前,先从几个特征数字上认识一下它们,也就是说计算几个描述性统计量,包括均值、标准差、最大值、最小值、极差、中位数、众数、变异系数、偏度和峰度。

Matlab在货币金融学可视化教学中的运用_—_—以“利息的计算与运用”为例

Matlab在货币金融学可视化教学中的运用_—_—以“利息的计算与运用”为例

2022年第2期总第554期No.2,2022SumNo.554 Journal of Science and Education1引言货币金融学是高等院校经济类专业的核心课程和金融学专业的基础必修课程,课程内容涉及利率、金融工具、金融衍生品等的计算。

近年来,我国高校金融计算类课程的开设已逐渐普及[1]。

因此,在金融学课程中有必要培养学生处理和解决金融计算中的实际问题,提高学生解决实际问题的能力。

传统课堂利用公式推导、演算等手段进行金融计算内容的教学,学生普遍反映内容理论性太强,概念抽象,计算过程复杂,得到的结果难以理解。

因此,需要构建可视化的教学模式和方法,将难以理解的概念、模型及公式具象化。

利息的计算与运用是本科货币金融学课程中重要的教学内容之一,同时为后续金融衍生工具等内容的学习打下良好的基础[2]。

利息的概念容易理解,但是利息的计算及其应用处理起来相当烦琐,导致学生很难理解相关概念,对图像的认知也不清晰。

本文使用Matlab的APP Designer功能,以利息的计算与运用为例,通过图形用户界面的布局设计及回调函数的程序编写,解决传统教学方式在可视化教学上的问题,将学生从复杂的数学计算中解放出来,加深学生对概念的认知和理解,增强学生的直观感性认识,激发学生的学习兴趣。

2图形用户界面设计利用Matlab APP Designer建立空白的APP后,对图形用户界面进行控件布局和编程,通过图形界面来控制相关性能的可视化过程。

货币金融学可视化教学图形界面主要包括三个选项卡组,分别对应单利与复利、现值、到期收益率三个子界面。

每个子界面按照需要分为参数区、控制区、公式区、结果区、示例区、显示区等,在用户界面控件的Callback回调函数下输入相应的控制程序实现交互性。

通过设定参数,点击相关按钮,会执行相应按钮回调函数下的程序,并将图形化的结果在显示区呈现,或者给出案例示例。

2.1单利与复利单利(simpleinterest),是指以本金为基数计算利息,而借贷期内所生利息不再加入本金计算下期利息的一种利息计算方法,即在当期产生的利息不作为下一期的本金,只是把每一期产出的利息累加到投资期末。

第二讲 固定收益证券的matlab计算

第二讲 固定收益证券的matlab计算

ans = 32
例2:请分别用30E/360,ISDA,PSA,SIA法计算例1 中的应计天数。 解:
30E/360,ISDA,PSA,SIA对basis代码分别是: E_Days=daysdif('2/27/2007','3/31/2007',6) E_Days = 33 >> ISDA_Days=daysdif('2/27/2007','3/31/2007',5) ISDA_Days = 34 >> PSA_Days=daysdif('2/27/2007','3/31/2007',4) PSA_Days = 34 >> SIA_Days=daysdif('2/27/2007','3/31/2007',1) SIA_Days = 34
D = daysdif(D1, D2) D = daysdif(D1, D2, Basis) Optional Inputs: Compounding, Basis Inputs: D1 - [Scalar or Vector] of dates. D2 - [Scalar or Vector] of dates.
如一张10年期国债被剥离成20张半年期债券,每 张都可视为零息票,它们到期日从6个月到10年不 等,最后本多支付是另一张零息证券,所有的支付 都单独计算,并配有自己的CUSIP号码
由于这种债券息票被“剥离”了,因此被称为本 息剥离式国债STRIPS(separate trading of registered interest and principal of securities).

债券久期与凸度的Matlab实现

债券久期与凸度的Matlab实现

案例分析:债券久期与凸度的Matlab实现一、计算公式(一)债券久期麦考利久期(Macaulay duration)是利用加权平均数的形式计算债券的平均到期时间。

它是债券在未来产生现金流的时间的jia全平均,其权重是各期现金值在债券价格中所占的比重。

普通债券的久期如下式所示:D=∑PV(c t)×t Tt=1P式中,D是麦考利久期;P是债券的当前市场价格;PV(c t)是债券未来第t期现金流(利息或面值)的现值;T是债券的到期时间。

(二)债券凸度由于债券价格与收益率之间的关系曲线存在凸向原点的非线性特征,当收益率大幅波动时,久期不能准确地描述债券价格对利率变动的敏感性。

为纠正久期的这种不足,引入凸度或凸性的概念。

与久期一样,凸度也是度量债券价格波动性的方法。

凸度越大,债券价格曲线弯曲程度越大,用修正久期度量债券的利率风险所产生的误差越大。

凸度的计算公式如下:d2p dy2=∑t(t+1)c t(1+y)t+2凸度的性质如下:第一,凸度随久期的增加而增加。

若收益率、久期不变,则票面利率越大,凸度越大。

利率下降时,凸度增加。

第二,对于没有隐含期权的债券来说,凸度总大于0,即利率下降,债券价格将以加速度上升;当利率上升时,债券价格以减速度下降。

第三,含有隐含期权的债券的凸度一般为负,即价格随着利率的下降以减速度上升,或债券的有效持续期随利率的下降而缩短,随利率的上升而延长。

二、Matlab实现(一)债券久期1、根据价格计算久期Matlab的Financial Toolbox提供了给定债券期限与价格计算久期的函数为bnddurp。

常用调用格式如下:[ModDuration, YearDuration] = bnddurp(Price, CouponRate, Settle, Maturity, Period, Basis)主要输入参数:➢Price:债券净价➢CouponRate:票面利率➢Settle:结算日➢Maturity:到期日➢Period:年付息次数,默认值为2,可选0、1、2、3、4、6、12。

固定收益证券的matlab计算

固定收益证券的matlab计算

5. 美国CD存单 美国CD存单(certificate deposit): 由银行等金
融机构向存款人发行的证券,存单上标有一个到期 日和利率,并且以任意面值发行,可以买卖, 偿还期 限小于1年. 6. 回购协议(repurchase agreement)
是短期抵押贷款. 指一方向另一方出售证券的同 时,承诺在未来的某一天按协定的价格将相同的证 券买回,通常由借款方发起并贷出证券,回购中涉及 的证券通常具有较高的信用质量.
美国的固定收益证券可以分为以下几个品种:
1. (短期)国库券(Treasury bills, T-bills) 期限小于一年,贴现发行,面值usu. 1~10万美元.是流
动性最高的债券品种,违约风险小,其利率usu当作无 风险利率。 2.政府票据(Treasury notes, T-notes)
即美国中期国债,期限1~10年,是coupon. 3. 长期国债(Treasury bonds, T-bonds)
第二讲 固定收益证券的 matlab计算
吴义能 TEL: 15387002178 QQ: 294808610 E-mail: wuyineng2003@
第一节 固定收益基本知识
固定收益证券: 一组稳定现金流的证券.广义上还包括
了债券市场上的衍生产品及优先股.以债券为 主.
一. 固定收益的品种 国债是固定收益的重要形式,以贴现债券 (discount security)与息票债券(coupon bonds)两种形式发行.
如一张10年期国债被剥离成20张半年期债券,每 张都可视为零息票,它们到期日从6个月到10年不 等,最后本多支付是另一张零息证券,所有的支付 都单独计算,并配有自己的CUSIP号码
由于这种债券息票被“剥离”了,因此被称为本 息剥离式国债STRIPS(separate trading of registered interest and principal of securities).

债券价格与收益率的Matlab实现

债券价格与收益率的Matlab实现

案例分析:债券定价与收益率的Matlab实现一、计算公式(一)债券价格计算1、一次还本付息债券的定价公式P=P T(1+r c)T (1+r)T其中,P T为债券面值,r c为票面利率,r为必要收益率/到期收益率/贴现率,T是债券期限。

2、附息债券的定价公式P=∑r c×P T (1+rn)tT×nt=1+P T (1+rn)T×n=r c×P Tr[1−1(1+r/n)T×n]+P T(1+r/n)T×n其中,P T为债券面值,r c为票面利率,r为必要收益率/到期收益率/贴现率,T是债券期限(以年为单位),n为年付息次数。

实际上,附息债券的定价包括两类:其一,付息日的债券定价;其二,付息日之间的债券定价。

上面的定价公式适用于情况一。

当投资者在两个付息日之间购买债券时,债券发行人通常将在下一个付息日将本期利息支付给债券购买者,债券出售者无法获得本期利息。

但是,由于出售者是在两个付息日之间卖出债券,他对本期利息也享有部分权利。

故此,债券购买者必须将下次利息支付的一部分付给出售者作为补偿,这部分利息被称为应计利息(Accrued interest)。

美国的中长期国债按照“实际天数/实际天数”原则计算利息,即上一期付息日至交割日之间的实际天数除以上一期付息日至下一期付息日之间的实际天数。

根据财政部、中国人民银行和中国证券监督管理委员会《关于试行国债净价交易有关事宜的通知》(财库[2001]12号),中国的附息国债采用净价交易制度,应计利息=面值×票面利率×应计息天数÷365(天)。

其中,应计息天数是指上一期付息日至交割日的实际日历天数(1年按365天计算,闰年2月29日不计算利息),计息原则是“算头不算尾”,即付息日当天计算利息,到期日当天不计算利息。

债券报价通常不包含应计利息,即净价,而投资者购买债券支付的金额是包括应计利息的价格,即全价,全价=净价+应计利息。

债券久期与凸度的Matlab实现

债券久期与凸度的Matlab实现

案例分析:债券久期与凸度的Matlab实现一、计算公式(一)债券久期麦考利久期(Macaulay duration)是利用加权平均数的形式计算债券的平均到期时间。

它是债券在未来产生现金流的时间的jia全平均,其权重是各期现金值在债券价格中所占的比重。

普通债券的久期如下式所示:D=∑PV(c t)×t Tt=1P式中,D是麦考利久期;P是债券的当前市场价格;PV(c t)是债券未来第t期现金流(利息或面值)的现值;T是债券的到期时间。

(二)债券凸度由于债券价格与收益率之间的关系曲线存在凸向原点的非线性特征,当收益率大幅波动时,久期不能准确地描述债券价格对利率变动的敏感性。

为纠正久期的这种不足,引入凸度或凸性的概念。

与久期一样,凸度也是度量债券价格波动性的方法。

凸度越大,债券价格曲线弯曲程度越大,用修正久期度量债券的利率风险所产生的误差越大。

凸度的计算公式如下:d2p dy2=∑t(t+1)c t(1+y)t+2凸度的性质如下:第一,凸度随久期的增加而增加。

若收益率、久期不变,则票面利率越大,凸度越大。

利率下降时,凸度增加。

第二,对于没有隐含期权的债券来说,凸度总大于0,即利率下降,债券价格将以加速度上升;当利率上升时,债券价格以减速度下降。

第三,含有隐含期权的债券的凸度一般为负,即价格随着利率的下降以减速度上升,或债券的有效持续期随利率的下降而缩短,随利率的上升而延长。

二、Matlab实现(一)债券久期1、根据价格计算久期Matlab的Financial Toolbox提供了给定债券期限与价格计算久期的函数为bnddurp。

常用调用格式如下:[ModDuration, YearDuration] = bnddurp(Price, CouponRate, Settle, Maturity, Period, Basis)主要输入参数:➢Price:债券净价➢CouponRate:票面利率➢Settle:结算日➢Maturity:到期日➢Period:年付息次数,默认值为2,可选0、1、2、3、4、6、12。

第二讲 固定收益证券的matlab计算

第二讲 固定收益证券的matlab计算

5. 美国CD存单 美国CD存单(certificate deposit): 由银行等金
融机构向存款人发行的证券,存单上标有一个到期日 和利率,并且以任意面值发行,可以买卖, 偿还期限小 于1年. 6. 回购协议(repurchase agreement)
是短期抵押贷款. 指一方向另一方出售证券的同时, 承诺在未来的某一天按协定的价格将相同的证券买 回,通常由借款方发起并贷出证券,回购中涉及的证 券通常具有较高的信用质量.
7.起息日到交割日的天数(DCS)
DSM:days from coupon to settlement): 指从计息日(含)到交割日(不含)之间的 天数。注意,付息日作为下一个利息期限的 第一天而不计入DCS。
8.交割日距离到期日的天数(DSM)
DSM:days from settlement to maturity):其一般规则是包括交割日而不 包括到期日。
指固定收益证券债务合约终止的日期。 4.本金(Principal)
本金有时称面值(par value),是指固定收益票面金 额
5.票面利率(Coupon rate)
即发行人支付给持有人的利息,有时也称名义利率 (nominal rate).
票面利率一般指按照单利计算的年利息率,利息支付 的频率不同,实际利率当然就不同。
指买入方支付价格和卖出方交割证券的日期。美国国 债交割日为交易之后第一个营业日(T+1)。
交割日也可以由交易者之间商定,如果交割日刚好支 付利息,则债券当天出售者获得当天的利息支付,而债 券的购买者获得其余款项。
有时通过Fed Wine机构交割证券,交易日即为交割日。 3.到期日(Maturity)
期限>10年,面值1~10万美元,是coupon. 4.零息票债券(Zero-coupon bond)

Matlab和国债期货的那些事儿~(四)——关键利率法在利率风险管理中的运用

Matlab和国债期货的那些事儿~(四)——关键利率法在利率风险管理中的运用

Matlab和国债期货的那些事⼉~(四)——关键利率法在利率风险管理中的运⽤第⼆部分使⽤国债期货进⾏利率风险管理的若⼲问题从本章开始,我们的问题基本会围绕使⽤国债期货对冲利率风险或者如何优化久期管理来展开。

内容安排如下,第四章介绍关键利率法,涉及关键利率久期的计算以及对冲⽅法,同时也会给出在Matlab上的实现。

第五章和第六章会分别介绍回归分析法、主成分分析法在管理利率风险上的运⽤。

作为第⼆部分的结束,第七章将讨论国债期货的负凸性,为后⾯第三部分国债期货的定价做铺垫。

关键利率法在利率风险管理中的运⽤本节将介绍关键利率法及其在利率风险管理中的运⽤。

⾸先我们来复习⼀下固定收益的⼀些基本概念。

[1]掌握清楚这些概念后,将对理解接下来的章节有⾮常⼤的帮助。

然后引⼊关键利率久期和关键利率基点价值的概念以及计算⽅法。

最后谈谈使⽤关键利率法如何对冲利率风险和在Matlab上的实现。

(想直接查看代码的读者可跳⾄第3部分)本⽂内容:1. 传统概念中的久期和基点价值2. 关键利率久期和关键利率基点价值——理论和计算3. 关键利率法对冲利率风险的办法以及在Maltab上的实现(⼀)传统概念中的久期和基点价值(DV01)⼀般我们使⽤基点价值(DV01)来衡量债券价格关于利率的敏感性。

但是所有学过⾦融学的或者对⾦融多少有点了解的朋友都知道,利率有很多种,⽽且利率还有期限结构。

当我们假设某只债券的价格可以表⽰成P(r)的时候,实际上是假设了只有单⼀的因素会影响到债券价格的变化。

然⽽利率期限结构的存在暗⽰了,有时候利率的变化不仅仅是指单纯⼤⼩的改变,还有利率曲线陡峭化和平坦化等形式的改变。

因此在我们使⽤单⼀的符号r来表⽰利率时,⼀定要记住,我们是在假设单⼀因素表⽰的利率期限结构。

回到主题本⾝,我们定义基点价值如下公式 1如何理解这个公式?我们都知道Δ⽤来表⽰变化量,⽐如ΔP就表⽰债券价格的变化。

那么Δy⾃然就表⽰利率的变化量。

matlab对数收益率

matlab对数收益率

matlab对数收益率
Matlab对数收益率是金融分析中一种常用的计算方法,通常用
于衡量资产或证券的收益率。

其计算方法是将每个时期的价格取对数,然后计算对数之间的差异,即可得到对数收益率。

在Matlab中,可以使用log函数对价格取对数,然后使用diff 函数计算对数差值,从而得到对数收益率。

例如,假设有一个股票价格的向量P,其长度为N,则可以使用以下代码计算对数收益率:
log_ret = diff(log(P));
log_ret = log_ret(2:N);
其中,第一行代码使用log函数对价格向量取对数,并使用diff 函数计算对数差值;第二行代码将第一个差值去掉,得到最终的对数收益率向量。

通过计算对数收益率,可以更准确地衡量资产或证券的收益率,并进行更精确的风险管理和投资决策。

- 1 -。

第二讲固定收益证券的matlab计算

第二讲固定收益证券的matlab计算

• 解:>> StartDate=['3/1/1998'; '3/1/1998'; '3/1/1998'];
• >> EndDate=['3/1/2001'; '3/1/2002';'3/1/2003'];
• >> NumDays=daysdif(StartDate,EndDate)
• NumDays =
• 由于这种债券息票被“剥离”了,因此被称为本息 剥离式国债STRIPS(separate trading of registered interest and principal of securities).
第二讲固定收益证券的matlab计算
5. 美国CD存单 • 美国CD存单(certificate deposit): 由银行等金融
第二讲固定收益证券的 matlab计算
2020/12/11
第二讲固定收益证券的matlab计算
第一节 固定收益基本知识
• 固定收益证券:

一组稳定现金流的证券.广义上还包括了
债券市场上的衍生产品及优先股.以债券为主.
• 一. 固定收益的品种
• 国债是固定收益的重要形式,以贴现债券 (discount security)与息票债券(coupon bonds)两种形式发行.
第二讲固定收益证券的matlab计算
本息剥离式国债
• 零息票债券往往由附息债券所”剥离”出来:购买 息票国债的经纪人可以要求财政部停止债券的现 金支付,使其成为独立证券序列,这时每一证券都 具有获得原始债券收益的要求权.
• 如一张10年期国债被剥离成20张半年期债券,每张 都可视为零息票,它们到期日从6个月到10年不等, 最后本多支付是另一张零息证券,所有的支付都单 独计算,并配有自己的CUSIP号码

金融MATLAB实验报告三

金融MATLAB实验报告三
安徽财经大学金融证券实验室
实验报告
实验课程名称《金融MATLAB》
开课系部金融学院
班级
学号
姓名
指导教师
2016年6月1日
实验名称
MATLAB基础知识
学院
金融学院
学号
姓名
实验准备
实验目的
学会使用MATLAB金融工具箱进行金融数量分析,如:期权定价分析、投资组合绩效分析、收益和风险的计算、有效前沿的计算、固定收益证券的久期和凸度计算、利率的期限结构、技术指标计算等。
end
plot(Call,'b--');
hold on
plot(Put,'b');
xlabel('Volatility')
ylabel('price')
legend('Call','Put')
结果:
3.计算期权的Dalta
代码:Price=102;
Strike=92;
Rate=0.1
Time=6/12;
结果:AssetPrice =
100.0000 118.9110 141.3982 168.1381
0 84.0965 100.0000 118.9110
0 0 70.7222 84.0965
0 0 0 59.4749
OptionValue =
16.3282 28.3714 47.1866 73.1381
结果:
PortRisk =
0.0185
0.0188
0.0195
0.0207
0.0222
0.0240
0.0261
0.0283

Matlab在《固定收益证券》课堂教学中的应用

Matlab在《固定收益证券》课堂教学中的应用

n+
P
t =1
1 +
rY n
t
1 +
rY n
nT
(4)
上式也适用 n = 1,即每年支付一次利息的情形。
DOI: 10.12677/ae.2020.104078
465
教育进展
李师煜 等
2. Matlab 计算
2.1. 债券价格计算
Matlab 的 Financial Toolbox 提供了计算债券价格的 bndprice 函数,该函数既可用于计算付息日交割 的债券价格,也适用于计算两个付息日之间交割的债券价格[5] [6] [7] [8]。
2.2. 到期收益率计算
Matlab 的 Financial Toolbox 提供了债券到期收益率的计算函数 bndyield。该函数既可用于在付息日交 割的债券到期收益率计算,也适用于在两个付息日之间交割的债券到期收益率计算[9] [10] [11] [12]。
[例 2]债券 A:面值为 100 元,票面利率为 6%,每年付息两次(6 月底和 12 月底),交割日为 2017 年 12 月 31 日,到期日为 2022 年 6 月 30 日,净价为 106.81 元。
The Application of MATLAB in the Classroom Teaching of Fixed Income Securities
Shiyu Li, Kaiwei Gu, Junyang Chen Faculty of Science, Jiangxi University of Sciences and Technology, Ganzhou Jiangxi
27(6): 32-34. [9] 刘静, 丁凌蓉. 基于 Matlab 的低矮式破碎机 V 带传动模糊优化设计[J]. 江西理工大学学报, 2009, 30(2): 24-27. [10] 张志涌, 杨祖樱. Matlab 教程[M]. 北京: 北京航空航天大学出版社, 2017. [11] 刘鹏远, 骆升平. Matlab 基于小波变换的图形图像处理[J]. 江西理工大学学报, 2011, 32(1): 66-68. [12] 王健. 基于免疫算法的聚类分析与实现[J]. 江西理工大学学报, 2009, 30(2): 24-27.

Matlab软件 数学建模 证券投资

Matlab软件 数学建模 证券投资

实验目的1. 熟悉Matlab软件的用户环境。

2. 掌握Matlab软件的基本绘图函数。

3. 通过建立简单的数学模型,使学生能应用lindo软件解决一些简单的问题。

并对结果进行分析实验内容某银行经理计划用一笔资金进行有价证券的投资,可供购进的证券以及其信用等级、到期年限、收益如下表所示。

按照规定,市政证券的收益可以免税,其他证券的收益需按50%的税率纳税。

此外还有以下限制:(1)政府及代办机构的证券总共至少要购进400万元。

(2)所购证券的平均信用等级不超过1.4(信用等级数字越小,信用程度越高);(3)所购证券的平均到期年限不超过5年。

证券名称证券种类信用等级到期年限到期税前收益(%)A 市政 2 9 4.3B 代办机构 2 15 5.4C 政府 1 4 5.0D 政府 1 3 4.4E 市政 5 2 4.5问:(1)若该经理有1000万元资金,应如何投资?(2)如果能够以2.75%的利率借到不超过100万元资金,该经理应如何操作?(3)在1000万元资金情况下,若证券A的税前收益增加为4.5%,投资应否改变?若证券C 的税前收益减少为4.8%,投资应否改变?实验过程及结果︵不够可另附纸︶(1)程序:max 0.043x1+0.025x2+0.025x3+0.022x4+0.045x5 STx1+x2+1.2x3+1.2x4+0.4x5>=03.2x1+2x2+4.2x3+4.4x4+4.6x5>=0x2+x3+x4>=400x1+x2+x3+x4+x5<=1000end结果如下:LP OPTIMUM FOUND AT STEP 2OBJECTIVE FUNCTION VALUE1) 37.00000VARIABLE VALUE REDUCED COST X1 0.000000 0.002000 X2 400.000000 0.000000 X3 0.000000 0.000000 X4 0.000000 0.003000 X5 600.000000 0.000000ROW SLACK OR SURPLUS DUAL PRICES2) 640.000000 0.0000003) 3560.000000 0.0000004) 0.000000 -0.0200005) 0.000000 0.045000NO. ITERATIONS= 2RANGES IN WHICH THE BASIS IS UNCHANGED:OBJ COEFFICIENT RANGESVARIABLE CURRENT ALLOWABLE ALLOWABLECOEF INCREASE DECREASEX1 0.043000 0.002000 INFINITYX2 0.025000 0.020000 0.000000X3 0.025000 0.000000 INFINITYX4 0.022000 0.003000 INFINITYX5 0.045000 INFINITY 0.002000RIGHTHAND SIDE RANGESROW CURRENT ALLOWABLE ALLOWABLERHS INCREASE DECREASE2 0.000000 640.000000 INFINITY3 0.000000 3560.000000 INFINITY4 400.000000 600.000000 400.0000005 1000.000000 INFINITY 600.000000(1)分析数据可知:该经理有1000万元资金,应投资在B类代办机构证劵400.000000万元,投资在E类市政证劵600.000000万元。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

案例分析:债券定价与收益率的Matlab实现一、计算公式(一)债券价格计算1、一次还本付息债券的定价公式P=P T(1+r c)T (1+r)T其中,P T为债券面值,r c为票面利率,r为必要收益率/到期收益率/贴现率,T是债券期限。

2、附息债券的定价公式P=∑r c×P T (1+rn)tT×nt=1+P T (1+rn)T×n=r c×P Tr[1−1(1+r/n)]+P T(1+r/n)其中,P T为债券面值,r c为票面利率,r为必要收益率/到期收益率/贴现率,T是债券期限(以年为单位),n为年付息次数。

实际上,附息债券的定价包括两类:其一,付息日的债券定价;其二,付息日之间的债券定价。

上面的定价公式适用于情况一。

当投资者在两个付息日之间购买债券时,债券发行人通常将在下一个付息日将本期利息支付给债券购买者,债券出售者无法获得本期利息。

但是,由于出售者是在两个付息日之间卖出债券,他对本期利息也享有部分权利。

故此,债券购买者必须将下次利息支付的一部分付给出售者作为补偿,这部分利息被称为应计利息(Accrued interest)。

美国的中长期国债按照“实际天数/实际天数”原则计算利息,即上一期付息日至交割日之间的实际天数除以上一期付息日至下一期付息日之间的实际天数。

根据财政部、中国人民银行和中国证券监督管理委员会《关于试行国债净价交易有关事宜的通知》(财库[2001]12号),中国的附息国债采用净价交易制度,应计利息=面值×票面利率×应计息天数÷365(天)。

其中,应计息天数是指上一期付息日至交割日的实际日历天数(1年按365天计算,闰年2月29日不计算利息),计息原则是“算头不算尾”,即付息日当天计算利息,到期日当天不计算利息。

债券报价通常不包含应计利息,即净价,而投资者购买债券支付的金额是包括应计利息的价格,即全价,全价=净价+应计利息。

下面介绍债券全价和应计利息的常用计算方法:P=1(1+r/n)T1/T2[∑r cn×P T(1+r/n)t−1Tt=1+P T(1+r/n)T−1]应计利息=P T×r cn×T3T2式中,T1表示交割日至下一期付息日之间的实际天数,T2表示上一期付息日至下一期付息日(即两个付息日)之间的实际天数,T3表示上一期付息日至交割日之间的实际天数,T表示交割日至清偿日或到期日之间的付息次数,P表示债券全价,P T表示债券面值,r c表示票面利率,r表示市场利率或贴现率,n表示年付息次数。

(二)到期收益率计算在衡量债券收益率的指标中,到期收益率(Yield to maturity,YTM)是应用最广泛的指标。

到期收益率是指使得债券未来现金流的现值正好等于债券当前的市场价格的贴现率。

它是按复利计算的收益率,考虑了货币的时间价值,能够较好地反映债券的实际收益。

1、零息债券的到期收益率零息债券只有一笔现金流,它的到期收益率计算公式为:P=P T(1+r YTM)T式中,T是距离到期日的年数,r YTM是到期收益率,P T和P分别为债券面值和债券的市场价格。

2、附息债券的到期收益率计算附息债券的到期收益率是计算债券价值的逆过程,可以将式(16-4)和(16-8)中的r替换为到期收益率r YTM得到。

第一,在付息日购买的债券的到期收益率计算方法,如下所示:P=∑r cn×P T (1+r YTM/n)tTt=1+P T(1+r YTM/n)T上式也适用于n=1,即每年支付一次利息的情形。

第二,在付息日之间购买的债券的到期收益率计算方法,如下所示:P=1(1+r YTM/n)[∑r cn×P T(1+r YTM/n)Tt=1+P T(1+r YTM/n)]二、Matlab实现(一)债券价格计算Matlab的Financial Toolbox提供了计算债券价格的bndprice 函数,该函数既可用于在付息日交割的债券定价,也适用于在两个付息日之间交割的债券定价。

常用调用格式:[Price, AccruedInt] = bndprice(Yield, CouponRate, Settle, Maturity, Period, Basis)主要输入参数:➢Yield:到期收益率➢CouponRate:票面利率➢Settle:结算日➢Maturity:到期日➢Period:年付息次数,默认值为2,可选0、1、2、3、4、6、12。

➢Basis:(可选项)债券的天数计算方法,默认值为0(实际值/实际值),常见选项具体如下:◼0:实际值/实际值◼1:30/360◼2:实际值/360◼3:实际值/365输出参数:➢Price:价格(净价),全价=净价+交割日利息➢AccruedInt:交割日的利息注意:银行间债券市场于2001年7月开始实行净价交易,沪深交易所市场也于2002年开始实行净价交易。

在净价交易条件下,由于交易价格不含有应计利息,所以其价格形成及变动能够更加准确地体现债券的内在价值、供求关系及利率的变动趋势。

通过净价交易,有利于投资者对市场利率走势和债券交易决策做出更为理性的判断。

【算例1】债券A:到期收益率为3%,票面利率4%,年付息2次,面值为100,交割日为2016年6月1日,到期日为2018年6月1日。

交割日在付息日。

债券B:到期收益率为3%,票面利率4%,年付息2次,面值为100,交割日为2016年3月1日,到期日为2018年6月1日。

交割日在多于1个付息期的两次付息日之间。

债券C:到期收益率为3%,票面利率4%,年付息2次,面值为100,交割日为2018年3月1日,到期日为2018年6月1日。

交割日在不足1个付息期的两次付息日之间。

计算代码如下:% 到期收益率Yield=0.03;% 票面利率CouponRate=0.04;% 交割日Settle_A='01-Jun-2016';Settle_B='01-Mar-2016';Settle_C='01-Mar-2018';% 到期日Maturity='01-Jun-2018';% 债券A的净价和应计利息[Price_A,Accured_A]=bndprice(Yield,CouponRate,Settle_A, Maturity);% 债券B的净价和应计利息[Price_B,Accured_B]=bndprice(Yield,CouponRate,Settle_B, Maturity);% 债券C的净价和应计利息[Price_C,Accured_C]=bndprice(Yield,CouponRate,Settle_C, Maturity);% 计算结果输出Price=[Price_A;Price_B;Price_C]Accured=[Accured_A;Accured_B;Accured_C]计算结果如下:Price =101.9272102.1577100.2462Accured =0.99450.9890(二)到期收益率计算Matlab的Financial Toolbox提供了债券到期收益率的计算函数bndyield。

该函数既可用于在付息日交割的债券到期收益率计算,也适用于在两个付息日之间交割的债券到期收益率计算。

常用调用格式:Yield = bndyield(Price, CouponRate, Settle, Maturity, Period, Basis)主要输入参数:➢Price:债券净价➢CouponRate:票面利率➢Settle:结算日➢Maturity:到期日➢Period:年付息次数,默认值为2,可选0、1、2、3、4、6、12。

➢Basis:(可选项)债券的天数计算方法,默认值为0(实际值/实际值),常见选项具体如下:◼0:实际值/实际值◼1:30/360◼2:实际值/360◼3:实际值/365输出参数:➢Yield:到期收益率【算例2】债券A:票面利率为5%,面值为100元,每年付息两次(6月底和12月底),交割日为1997年12月31日,到期日为2002年6月30日,净价为104.8106元。

债券B:票面利率为5%,面值为100元,每年付息两次(6月底和12月底),交割日为1997年12月31日,到期日为2002年6月30日,净价为95.4384元。

债券C:票面利率为5%,面值为100元,每年付息两次(6月底和12月底),交割日为1998年1月20日,到期日为2002年6月30日,净价为99.9951元。

计算代码如下:% 票面利率都为5%CouponRate=0.05;% 债券净价Price_A=104.8106;Price_B=95.4384;Price_C=99.9951;% 交割日Settle_AB='31-Dec-1997';Settle_C ='20-Jan-1998';% 到期日都是2002年6月30日Maturity='30-Jun-2002';% 调用bndyield函数Yield_A=bndyield(Price_A,CouponRate,Settle_AB,Maturity) Yield_B=bndyield(Price_B,CouponRate,Settle_AB,Maturity) Yield_C=bndyield(Price_C,CouponRate,Settle_C ,Maturity)计算结果如下:Yield_A =0.0383Yield_B =0.0618Yield_C =0.0500本案例分析中所有代码均在MatlabR2014a环境下运行。

参考资料:[1]郑志勇、王洪武. 金融数量分析—基于MATLAB编程[M]. 北京:北京航空航天出版社, 2018.[2]张志涌、杨祖樱. Matlab教程[M]. 北京:北京航空航天大学出版社, 2017.。

相关文档
最新文档