23-基于动态利率期限结构模型的定价技术

更新时间:2023-07-18 10:30:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

金融计算与建模(清华大学,朱世武)PPT

第23章 基于动态利率期限结构模型的定价 技术清华大学经管学院 朱世武 Zhushw@ Resdat样本数据: SAS论坛:

金融计算与建模(清华大学,朱世武)PPT

利用均衡模型对浮动利率债券定价Vasicek和CIR单因子模型都是经典的均衡利率模型。 是通过对短期利率运动趋势的描述推导出的即期利率 期限结构模型,从而能够为各种利率型金融工具进行 定价和风险管理。 利用这两种利率期限结构,可以解决浮动利率债券定 价的问题。

金融计算与建模(清华大学,朱世武)PPT

设 P ( )为剩余到期期限为 年的贴现债券的当前价 格。于是有, 时间点 的即期利率1

1 R ( ) P (

1 )

连续复合利率

R ( )

ln P ( )

一年期远期利率

P ( ) f ( ) 1 P ( 1) P ( 1) f ( ) ln P ( )

一年期连续复合远期利率

金融计算与建模(清华大学,朱世武)PPT

纯预期理论将远期利率视为对未来利率的预测,因此在这 些均衡模型中,一年期远期利率可以用来替代浮动利率债 券未来的基础利率,从而确定未来的现金流。 利用现金流折现原理得到浮动利率债券的定价公式P

n

Ci (1 R i )ti

CF (1 R n )tn

( 2 3 .1)

i 1

其中: P为市场价格; R i 为第期贴现率,即第i个时间点的即期利率; C i 为第i期票息; CF为最后一期返还的面值; t i 为从目前时点到以后第i个计息日的时间长度(以年为单位); n为债券剩余付息次数。 在本章中将国债的折现利率提高0.4%作为金融债的折现利率

金融计算与建模(清华大学,朱世武)PPT

参数估计目前,对Vasicek和CIR这两种均衡模型的参数估计方 法主要有三类: 纯时间序列数据方法(Pure Time-Series Data Method) 纯截面数据方法(Pure Cross Sectional Data Method) 混合时间序列/截面数据方法(Joint TimeSeries/Cross Sectional Data Method)。

金融计算与建模(清华大学,朱世武)PPT

CIR模型理论价格 P ( rt , ) A ( ) ex p ( B ( ) rt ) 市场价格 ln ( P * ) ln ( A ( ) ex p ( B ( ) r )) t , t t . 其中:Pt , 是市场上观察到的贴现债券价格;*

t . 是服从正态分布的残差项, t . N (0, 2 ) , t . 对于不同的

值是独

立同分布的; 2

是待估参数; 3

1 ex p ( 2 ) A ( ) 2 (ex p ( 1 ) 1) 1

B ( )

ex p ( 1 ) 1

2 (ex p ( 1 ) 1) 12

1

( ) 2 , 2 ( 1 ) / 2, 3 2 / 2 2

金融计算与建模(清华大学,朱世武)PPT

CIR模型的离散状态形式为, rt ( rt 1 ) t t

(23.3)

其中: t 为时间间隔,这里取为一天; t

为服从正态分布的残差, t 是待估参数。

N (0, rt 1 t )2

, 和

因此,连

同风险溢价 ,总共有5个待估参数。

金融计算与建模(清华大学,朱世武)PPT

由于假设了这些残差都是服从正态分布的,因此可以采用极大似然法 来估计这些参数。 假设有T天的短期利率样本数据(即每天的 rt ),以及第T天的M个 贴现债券价格数据,估计第T+1天的参数值时,构造CIR模型的对数 似然函数如下,L T 2 1 2T i

ln ( 2 )

T 2

ln ( ) 2

1 2

ln ( ri 1

T

i 1

)2

ln ( t ) 2 2 i 1

1

T

( ri ( ri 1 ) t i ) t i ri 1 1 2M

i 1

M 2

ln ( 2 )

M 2

ln ( ) 2

2

k 1

ln ( Pt * ) ln ( A ( k ) ex p ( B ( k ) rT )) , k

2

金融计算与建模(清华大学,朱世武)PPT

假设只以时间序列数据进行估计(即第一类方法),这时,似然函数 变为,

L

T 2 1

ln ( 2 ) T

T 2

ln ( ) 2

1

ln ( r 2i 1

T

i 1

)2

ln ( t ) 2 2 2 i i 1

1

T

( ri ( ri 1 ) t i ) t i ri 1

i 1

金融计算与建模(清华大学,朱世武)PPT

计算环境2003年8月13日作为计算时点指标。 计算数据集:基准利率数据集ResDat.B2W(七日回 购利率两周指数加权平均);银行间浮动利率金融债 券信息数据集ResDat.floatbond。

金融计算与建模(清华大学,朱世武)PPT

基准利率数据集B2W变量说明: Date—日期; Ir—基准利率。 银行间浮动利率金融债券信息数据集floatbond变量说明: Bdcd—债券代码 Bdnm—债券名称 Couprt—票面利率 Freq —年付息频率 Matdt—到期日 Maturity—到期期限

金融计算与建模(清华大学,朱世武)PPT

ResDat.Floatbond创建过程: /* 第一步,利用数据集Resdat.bdinfo选出银行间浮动利率金融债券,共31只。 */ data a; set Resdat.bdinfo; if Couptp='1' and trdmktflg='3' and Bdtype='3' and Issdt<'13Aug2003'd and matdt>'13Aug2003'd; keep bdcd bdnm couprt freq matdt maturity; /* 票息类型Couptp='1'为浮动利率债 券;交易地点标识trdmktflg='3'为银行间债券市场;Bdtype='3'为金融债券 */ run; /* 第二步,通过分析2003年浮动利率债券的交易信息和报价信息,挑选出交 易和报价频繁、且在定价日有合理价格的8只浮动利率债券,债券代码分别为: 020211,020212,020306,030206,000201,000202,000210,000213。*/ data ResDat.Floatbond; set a; if bdcd in (020211 020212 020306 030206 000201 000202 000210 000213); run; /* 2003年8月13日银行间贴现金融债券共10只。代码分别为:020304 020209 020216 030204 030207 030208 030209 030210 030212 030211 */

金融计算与建模(清华大学,朱世武)PPT

data b; set Resdat.bdinfo; if Intmd='0' and trdmktflg='3' and Bdtype='3' and Issdt<'13Aug2003'd and matdt>'13Aug2003'd; keep bdcd bdnm couprt freq matdt maturity; run; data discountbd030813; set resdat.cbdqttn; if bdcd in (020304 020209 020216 030204 030207 030208 030209 030210 030212 030211) and date='13Aug2003'd; price=Cldirpr; keep bdcd bdnm date price Yrstmat ; label price='交易价格'; run; proc print data=

discountbd030813 label noobs; run;

金融计算与建模(清华大学,朱世武)PPT

挑选出在定价日有交易价格的4只贴现债券如表23.1所示。

表23.1 贴现债券信息(2003年8月13日)债券代码| 020216 030207 030208 030211 债券名称 02国开16 03国开07 03国开08 03国开11 日期 2003-08-13 2003-08-13 2003-08-13 2003-08-13 剩余期限 2.202740 0.880837 0.405427 0.681383 交易价格 94.65 98.02 99.05 98.40

金融计算与建模(清华大学,朱世武)PPT

数据预处理/* 对原始数据及加工整理*/ data B2W; set Resdat.B2W; where '05jan2001'd<=date<='13aug2003'd; run; data floatbond; set Resdat.floatbond; run; data B2W; set B2W; dir=dif(ir); lagir=lag(ir); ivir=1/ lagir; if dir=. then delete; run; /* B2W共656个观测值 */ /* 将数据集中的数据转换成矩阵*/ proc iml; reset deflib=work; use B2W; list; list all; read all var {lagir} into ir; read all var {dir} into dir; read all var {ivir} into ivir; print ir dir ivir; store ir dir ivir; run; quit;

金融计算与建模(清华大学,朱世武)PPT

CIR模型利率期限结构拟合/* 计算常数(这些常数用于直接代入似然函数中进行最优化计算)*/ proc iml; reset deflib=work; load ir dir ivir; 2 T ri 1 c1=sum(dir##2#365#ivir); /* ,注意, t 3 6 5 */ i 1 t i ri 1 c2=-2#sum(dir#ivir); c3=2*sum(dir); c4=sum((1/365)#ivir); c5=-2*656/365; c6=sum(ir#(1/365)); print c1 c2 c3 c4 c5 c6; quit; /* 结果显示: C1 C2 C3 C4 C5 C6 0.0352866 0.3776176 -0.008852 82.768353 -3.594521 0.0392739 */i

金融计算与建模(清华大学,朱世武)PPT

/* 纯时间序列估计*/ /* 其中f就是极大似然函数 proc iml; reset deflib=work;

L

T 2 1 2

ln ( 2 ) T

T 2

ln ( ) 2

1 2

ln ( ri 1

T

i 1

)2

ln ( t ) 2 2 i i 1

1

T

( ri ( ri 1 ) t i ) t i ri 1

*/

i 1

start F_BETTS(x); /* 定义似然函数模块 */ f=-(656/2)*log(x[1]**2)-1/2*(x[1]**(2))*(0.0352866416+(0.3776176352)*x[2]*x[3]+(0.008852)*x[2]+(82.768352682)*x[2]*x[2]*x[3]*x[3]+(3.594520548)*x[2]*x[2]*x[3]+(0.0392739233)*x[2]*x[2]); /* x[1]表示 x[2]表示 , x[3]表示 。且有:- T 1 2 (656/2)#log(x[1]##2)= T ln ( 2 ) ; 剩余部分= ( ri ( ri 1 ) t i ) t i ri 12

return(f);finish F_BETTS;

2

2

*/

i 1

con={0 0 0 ,1 50 1}; /* 规定参数取值范围的条件矩阵con */ x={0.6 8 0.03}; /* 规定参数初值 */

optn={1 3}; /* 输出选项, 1最大化,0最小化,3输出结果选择项 */call nlpnra(rc,xres,"F_BETTS",x,optn,con); store xres; quit;

金融计算与建模(清华大学,朱世武)PPT

/* 估计结果: Optimization Results Parameter EstimatesGradient Objective N Parameter Estimate Function 1 X1 0.007244 0.002212 2 X2 1.317201 0.000013169 3 X3 0.019982 0.005146 Value of Objective Function = 2904.4708579 */

金融计算与建模(清华大学,朱世武)PPT

时间序列和截面数据估计

/* 估计结果: Optimization Results Parameter EstimatesGradient Objective Function 0.000303 0.000514 0.002572 0.001019 0.000632

N Parameter1 X1 2 X2 3 X3 4 X4 5 X5 */

Estimate0.007252 1.849163 0.020520 0.018324 -1.799739

金融计算与建模(清华大学,朱世武)PPT

/*

根据CIR模型的参数估计利率期限结构*/

data cirrate;sigma=0.007252; a=1.849163; u= 0.020520; lemda=-1.7997399; gamma=((a+lemda)**2+2*sigma**2)**(1/2); r1=0.021027; do t=0 to 30 by 0.05; P=(2*gamma*exp((a+lemda+gamma)*t/2)/((a+lemda+gamma)*(exp(gamma*t )-1)+2*gamma))**(2*a*u/(sigma**2))*exp(-(2*(exp(gamma*t)1)/((a+lemda+gamma)*(exp(gamma*t)-1)+2*gamma))*r1); p1=(2*gamma*exp((a+lemda+gamma)*(t+1)/2)/((a+lemda+gamma)*(exp(gam ma*(t+1))-1)+2*gamma))**(2*a*u/(sigma**2))*exp(-(2*(exp(gamma*(t+1))1)/((a+lemda+gamma)*(exp(gamma*(t+1))-1)+2*gamma))*r1); R=-1/t*log(P); /* 连续复合利率 */ R=(1/P)**(1/t)-1; /* 即期利率 */ fr=log(P)-log(P1); /* 一年期连续复合远期利率 */ fr=(P/P1)-1; /* 一年期远期利率 */ output; end; run;

金融计算与建模(清华大学,朱世武)PPT

为浮动利率债券定价程序略

本文来源:https://www.bwwdw.com/article/txr1.html

Top