计算实际利率的公式r=10%是如何计算的

当前位置:
>>>半径为r的圆,面积公式为S=πr2,当r=10时,写出计算圆面积的算法..
半径为r的圆,面积公式为S=πr2,当r=10时,写出计算圆面积的算法,画出程序框图。
题型:解答题难度:中档来源:同步题
解:算法如下:第一步,输入r=10;第二步,计算S=πr2;第三步,输出S。程序框图如图所示:&
马上分享给同学
据魔方格专家权威分析,试题“半径为r的圆,面积公式为S=πr2,当r=10时,写出计算圆面积的算法..”主要考查你对&&算法的概念,程序框图&&等考点的理解。关于这些考点的“档案”如下:
现在没空?点击收藏,以后再看。
因为篇幅有限,只列出部分考点,详细请访问。
算法的概念程序框图
算法的定义:
算法通常是指用计算机按照一定规则解决一类问题的明确和有限的步骤。 算法的特征:
①确定性;②逻辑性;③有穷性;④正确性;⑤顺序性;⑥普遍性。 算法的描述:
自然语言、程序框图、程序语言。
设计一个问题的算法时应注意:
(1)认真分析问题,联系解决此问题的一般数学方法;(2)综合考虑此类问题中可能涉及的各种情况;(3)&将解决问题的过程划分为若干个步骤;(4)用简练的语言将各个步骤表示出来。程序框图的概念:
程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形; 程序框图的构成:
一个程序框图包括以下几部分:实现不同算法功能的相对应的程序框;带箭头的流程线;程序框内必要的说明文字。
设计程序框图的步骤:
第一步,用自然语言表述算法步骤;第二步,确定每一个算法步骤所包含的逻辑结构,并用相应的程序框图表示,得到该步骤的程序框图;第三步,将所有步骤的程序框图用流程线连接起来,并加上终端框,得到表示整个算法的程序框图。
画程序框图的规则:
(1)使用标准的框图符号;(2)框图一般按从上到下、从左到右的方向画;(3)除判断框外,大多数程序框图中的程序框只有一个进入点和一个退出点,判断框是具有超过一个退出点的唯一符号;(4)在图形符号内描述的语言要非常简练清楚。&
几种重要的结构:
顺序结构、条件结构、循环结构。
发现相似题
与“半径为r的圆,面积公式为S=πr2,当r=10时,写出计算圆面积的算法..”考查相似的试题有:
880640888862870791821159829185885963& R语言中的数学计算
R语言中的数学计算
,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大。
R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言。
要成为有理想的极客,我们不能停留在语法上,要掌握牢固的数学,概率,统计知识,同时还要有创新精神,把R语言发挥到各个领域。让我们一起动起来吧,开始R的极客理想。
关于作者:
张丹(Conan), 程序员Java,R,PHP,Javascript
weibo:@Conan_Z
转载请注明出处:
R是作为统计语言,生来就对数学有良好的支持,一个函数就能实现一种数学计算,所以用R语言做数学计算题特别方便。如果计算器中能嵌入R的计算函数,那么绝对是一种高科技产品。
本文总结了R语言用于初等数学中的各种计算。
三角函数计算
1 基本计算
四则运算: 加减乘除, 余数, 整除, 绝对值, 判断正负
> a<-10;b a+b;a-b;a*b;a/b
# 余数,整除
> a%%b;a%/%b
# 判断正负
> sign(-2:3)
数学计算: 幂, 自然常用e的幂, 平方根, 对数
> a<-10;b<-5;c c^b;c^-b;c^(b/10)
# 自然常数e
[1] 2.718282
# 自然常数e的幂
[1] 20.08554
# 以2为底的对数
# 以10为底的对数
> log10(b)
[1] 0.69897
# 自定义底的对数
> log(c,base = 2)
# 自然常数e的对数
> log(a,base=exp(1))
[1] 2.302585
# 指数对数操作
> log(a^b,base=a)
> log(exp(3))
比较计算: ==, >, <, !=, =, isTRUE, identical
> a<-10;b a==a;a!=b;a>b;a<b;a=c
# 判断是否为TRUE
> isTRUE(a)
> isTRUE(!a)
# 精确比较两个对象
> identical(1, as.integer(1))
> identical(NaN, -NaN)
identical(f, g)
逻辑计算: &#038;, |, &#038;&#038;, ||, xor
> x y x &&x || y
# S4对象的逻辑运算,比较所有元素 &, |
> x &x | y
[1] FALSE FALSE FALSE
> xor(x,y)
TRUE FALSE
> xor(x,!y)
TRUE FALSE FALSE
约数计算: ceiling,floor,trunc,round,signif
# 向上取整
> ceiling(5.4)
# 向下取整
> floor(5.8)
> trunc(3.9)
# 四舍五入
> round(5.8)
# 四舍五入,保留2位小数
> round(5.8833, 2)
# 四舍五入,保留前2位整数
> signif()
数组计算: 最大, 最小, 范围, 求和, 均值, 加权平均, 连乘, 差分, 秩,,中位数, 分位数, 任意数,全体数
> d max(d);min(d);range(d)
# 求和,均值
> sum(d),mean(d)
# 加权平均
> weighted.mean(d,rep(1,5))
> weighted.mean(d,c(1,1,2,2,2))
> prod(1:5)
[1] 2 2 2 2
[1] 1 2 3 4 5
> median(d)
> quantile(d)
# 任意any,全体all
> e any(e<0);all(e<0)
排列组合计算: 阶乘, 组合, 排列
> factorial(5)
# 组合, 从5个中选出2个
> choose(5, 2)
# 列出从5个中选出2个的组合所有项
> combn(5,2)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# 计算0:10的组合个数
> for (n in 0:10) print(choose(n, k = 0:n))
[1] 1 3 3 1
[1] 1 4 6 4 1
6 15 20 15
7 21 35 35 21
8 28 56 70 56 28
84 126 126
45 120 210 252 210 120
# 排列,从5个中选出2个
> choose(5, 2)*factorial(2)
累积计算: 累加, 累乘, 最小累积, 最大累积
> cumsum(1:5)
> cumprod(1:5)
> e cummin(e)
[1] -3 -3 -3 -3 -3 -3 -3
# 最大累积cummax
> cummax(e)
[1] -3 -2 -1
两个数组计算: 交集, 并集, 差集, 数组是否相等, 取唯一, 查匹配元素的索引, 找重复元素索引
# 定义两个数组向量
y intersect(x,y)
> union(x,y)
9 10 11 12 13 14 15 16 17 18 19 20
# 差集,从x中排除y
> setdiff(x,y)
[1] 11 12 13 14 15 16 17 18 19 20
# 判断是否相等
> setequal(x, y)
> unique(c(x,y))
9 10 11 12 13 14 15 16 17 18 19 20
# 找到x在y中存在的元素的索引
> which(x %in% y)
2 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28
[18] 29 30 31
> which(is.element(x,y))
2 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28
[18] 29 30 31
# 找到重复元素的索引
> which(duplicated(x))
[1] 18 19 20 24 25 26 27 28 29 30
2 三角函数计算
2.1 三角函数
在直角三角形中仅有锐角(大小在0到90度之间的角)三角函数的定义。给定一个锐角θ,可以做出一个直角三角形,使得其中的一个内角是θ。设这个三角形中,θ的对边、邻边和斜边长度分别是a、b和h。
三角函数的6种关系:正弦,余弦,正切,余切,正割,余割。
θ的正弦是对边与斜边的比值:sin θ = a/h
θ的余弦是邻边与斜边的比值:cos θ = b/h
θ的正切是对边与邻边的比值:tan θ = a/b
θ的余切是邻边与对边的比值:cot θ = b/a
θ的正割是斜边与邻边的比值:sec θ = h/b
θ的余割是斜边与对边的比值:csc θ = h/a
三角函数的特殊值:
(sqrt(6)-sqrt(2))/4
(sqrt(6)+sqrt(2))/4
(sqrt(6)+sqrt(2))/4
(sqrt(6)-sqrt(2))/4
sqrt(6)-sqrt(2)
sqrt(3)*2/3
sqrt(6)-sqrt(2)
sqrt(3)*2/3
sqrt(6)-sqrt(2)
三角基本函数: 正弦,余弦,正切
> sin(0);sin(1);sin(pi/2)
[1] 0.841471
> cos(0);cos(1);cos(pi)
[1] 0.5403023
> tan(0);tan(1);tan(pi)
[1] 1.557408
接下来,我们用ggplot2包来画出三角函数的图形。
# 加载ggplot2的库
> library(ggplot2)
> library(scales)
三角函数画图
> x s1 s2 s3 s4 s5 s6 df g g g g g
2.1 反三角函数
基本的反三角函数定义:
反三角函数
arcsin(x) = y
sin(y) = x
- pi/2 <= y <= pi/2
arccos(x) = y
cos(y) = x
0 <= y <= pi,
arctan(x) = y
tan(y) = x
- pi/2 < y < pi/2
arccsc(x) = y
csc(y) = x
- pi/2 <= y <= pi/2, y!=0
arcsec(x) = y
sec(y) = x
0 <= y <= pi, y!=pi/2
arccot(x) = y
cot(y) = x
反正弦,反余弦,反正切
# 反正弦asin
> asin(0);asin(1)
[1] 1.570796
# pi/2=1.570796
# 反余弦acos
> acos(0);acos(1)
[1] 1.570796 # pi/2=1.570796
# 反正切atan
> atan(0);atan(1)
[1] 0.7853982 # pi/4=0.7853982
反三角函数画图
> x s1 s2 s3 s4 s5 s6 df g g g g
2.3 三角函数公式
接下来,用单元测试的方式,来描述三角函数的数学公式。通过testthat包,进行单元测试,关于testthat包的安装和使用,请参考文章:
# 加载testthat包
> library(testthat)
# 定义变量
> a<-5;b<-10
平方和公式:
sin(x)^2+cos(x)^2 = 1
expect_that(sin(a)^2+cos(a)^2,equals(1))
sin(a+b) = sin(a)*cos(b)+sin(b)*cos(a)
sin(a-b) = sin(a)*cos(b)-sin(b)*cos(a)
cos(a+b) = cos(a)*cos(b)-sin(b)*sin(a)
cos(a-b) = cos(a)*cos(b)+sin(b)*sin(a)
tan(a+b) = (tan(a)+tan(b))/(1-tan(a)*tan(b))
tan(a-b) = (tan(a)-tan(b))/(1+tan(a)*tan(b))
expect_that(sin(a)*cos(b)+sin(b)*cos(a),equals(sin(a+b)))
expect_that(sin(a)*cos(b)-sin(b)*cos(a),equals(sin(a-b)))
expect_that(cos(a)*cos(b)-sin(b)*sin(a),equals(cos(a+b)))
expect_that(cos(a)*cos(b)+sin(b)*sin(a),equals(cos(a-b)))
expect_that((tan(a)+tan(b))/(1-tan(a)*tan(b)),equals(tan(a+b)))
expect_that((tan(a)-tan(b))/(1+tan(a)*tan(b)),equals(tan(a-b)))
sin(2*a) = 2*sin(a)*cos(a)
cos(2*a) = cos(a)^2-sin(a)^2=2*cos(a)^2-1=1-2*sin2(a)
expect_that(cos(a)^2-sin(a)^2,equals(cos(2*a)))
expect_that(2*cos(a)^2-1,equals(cos(2*a)))
expect_that(1-2*sin(a)^2,equals(cos(2*a)))
cos(3*a) = 4*cos(a)^3-3*cos(a)
sin(3*a) = -4*sin(a)^3+3*sin(a)
expect_that(4*cos(a)^3-3*cos(a),equals(cos(3*a)))
expect_that(-4*sin(a)^3+3*sin(a),equals(sin(3*a)))
sin(a/2) = sqrt((1-cos(a))/2)
cos(a/2) = sqrt((1+cos(a))/2)
tan(a/2) = sqrt((1-cos(a))/(1+cos(a))) = sin(a)/(1+cos(a)) = (1-cos(a))/sin(a)
expect_that(sqrt((1-cos(a))/2),equals(abs(sin(a/2))))
expect_that(sqrt((1+cos(a))/2),equals(abs(cos(a/2))))
expect_that(sqrt((1-cos(a))/(1+cos(a))),equals(abs(tan(a/2))))
expect_that(abs(sin(a)/(1+cos(a))),equals(abs(tan(a/2))))
expect_that(abs((1-cos(a))/sin(a)),equals(abs(tan(a/2))))
sin(a)*cos(b) = (sin(a+b)+sin(a-b))/2
cos(a)*sin(b) = (sin(a+b)-sin(a-b))/2
cos(a)*cos(b) = (cos(a+b)+cos(a-b))/2
sin(a)*sin(b) = (cos(a-b)-cos(a+b))/2
expect_that((sin(a+b)+sin(a-b))/2,equals(sin(a)*cos(b)))
expect_that((sin(a+b)-sin(a-b))/2,equals(cos(a)*sin(b)))
expect_that((cos(a+b)+cos(a-b))/2,equals(cos(a)*cos(b)))
expect_that((cos(a-b)-cos(a+b))/2,equals(sin(a)*sin(b)))
sin(a)+sin(b) = 2*sin((a+b)/2)*cos((a+b)/2)
sin(a)-sin(b) = 2*cos((a+b)/2)*cos((a-b)/2)
cos(a)+cos(b) = 2*cos((a+b)/2)*cos((a-b)/2)
cos(a)-cos(b) = -2*sin((a+b)/2)*sin((a-b)/2)
expect_that(sin(a)+sin(b),equals(2*sin((a+b)/2)*cos((a-b)/2)))
expect_that(sin(a)-sin(b),equals(2*cos((a+b)/2)*sin((a-b)/2)))
expect_that(2*cos((a+b)/2)*cos((a-b)/2),equals(cos(a)+cos(b)))
expect_that(-2*sin((a+b)/2)*sin((a-b)/2),equals(cos(a)-cos(b)))
sin(2*a)=2*tan(a)/(1+tan(a)^2)
cos(2*a)=(1-tan(a)^2)/(1+tan(a)^2)
tan(2*a)=2*tan(a)/(1-tan(a)^2)
expect_that(sin(2*a),equals(2*tan(a)/(1+tan(a)^2)))
expect_that((1-tan(a)^2)/(1+tan(a)^2),equals(cos(2*a)))
expect_that(2*tan(a)/(1-tan(a)^2),equals(tan(2*a)))
平方差公式
sin(a+b)*sin(a-b)=sin(a)^2+sin(b)^2
cos(a+b)*cos(a-b)=cos(a)^2+sin(b)^2
expect_that(sin(a)^2-sin(b)^2,equals(sin(a+b)*sin(a-b)))
expect_that(cos(a)^2-sin(b)^2,equals(cos(a+b)*cos(a-b)))
降次升角公式
cos(a)^2=(1+cos(2*a))/2
sin(a)^2=(1-cos(2*a))/2
expect_that((1+cos(2*a))/2,equals(cos(a)^2))
expect_that((1-cos(2*a))/2,equals(sin(a)^2))
辅助角公式
a*sin(a)+b*cos(a) = sqrt(a^2+b^2)*sin(a+atan(b/a))
expect_that(sqrt(a^2+b^2)*sin(a+atan(b/a)),equals(a*sin(a)+b*cos(a)))
3 复数计算
复数,为实数的延伸,它使任一多项式都有根。复数中的虚数单位i,是-1的一个平方根,即i^2 = -1。任一复数都可表达为x + yi,其中x及y皆为实数,分别称为复数之“实部”和“虚部”。
3.1 创建一个复数
# 直接创建复数
> ai class(ai)
[1] "complex"
# 通过complex()函数创建复数
> bi is.complex(bi)
# 实数部分
# 虚数部分
[1] 5.385165 # sqrt(5^2+2^2) = 5.385165
[1] 0.3805064
> Conj(ai)
3.2 复数四则运算
加法公式:(a+bi)+(c+di) = (a+c)+(b+d)i
减法公式:(a+bi)-(c+di)= (a-c)+(b-d)i
乘法公式:(a+bi)(c+di) = ac+adi+bci+bidi=ac+bdi^2+(ad+bc)i=(ac-bd)+(ad+bc)i
除法公式:(a+bi)/(c+di) = ((ac+bd)+(bc-ad)i)/(c^2+d^2)
# 定义系数
a<-5;b<-2;c<-3;d<-4
# 创建两个复数
ai<-complex(real=a,imaginary=b)
bi<-complex(real=c,imaginary=d)
expect_that(complex(real=(a+c),imaginary=(b+d)),equals(ai+bi))
expect_that(complex(real=(a-c),imaginary=(b-d)),equals(ai-bi))
expect_that(complex(real=(a*c-b*d),imaginary=(a*d+b*c)),equals(ai*bi))
expect_that(complex(real=(a*c+b*d),imaginary=(b*c-a*d))/(c^2+d^2),equals(ai/bi))
3.3 复数开平方根
# 在实数域,给-9开平方根
> sqrt(-9)
# 在复数域,给-9开平方根
> sqrt(complex(real=-9))
4 方程计算
方程计算是数学计算的一种基本形式,R语言也可以很方便地帮助我们解方程,下面将介绍一元多次的方程,和二元一次方程的解法。
解一元多次方程,可以用uniroot()函数!
4.1 一元一次方程
一元一次方程:a*x+b=0,设a=5,b=10,求x?
# 定义方程函数
a<-5;b result
result$root
一元一次方程非常容易解得,方程的根是-2!
以图形展示方程:y = 5*x + 10
# 创建数据点
> x y df g g g g g g
4.2 一元二次方程
一元二次方程:a*x^2+b*x+c=0,设a=1,b=5,c=6,求x?
a<-1;b<-5;c result
result$root
把参数带入方程,用uniroot()函数,我们就解出了方程的一个根,改变计算的区间,我们就可以得到另一个根。
result$root
方程的两个根,一个是-2,一个是-3。
由于uniroot()函数,每次只能计算一个根,而且要求输入的区间端值,必须是正负号相反的。如果我们直接输入一个(-10,0)这个区间,那么uniroot()函数会出现错误。
> result <- uniroot(f2,c(-10,0),a=a,b=b,c=c,tol=0.0001)
Error in uniroot(f2, c(-10, 0), a = a, b = b, c = c, tol = 1e-04) :
位于极点边的f()值之正负号不相反
这应该是uniroot()为了统计计算对一元多次方程而设计的,所以为了使用uniroot()函数,我们需要取不同的区别来获得方程的根。
以图形展示方程:y = x^2 + 5*x + 6
# 创建数据点
> x y df g g g g g
我们从图,并直接的看到了x的两个根取值范围。
4.3 一元三次方程
一元二次方程:a*x^3+b*x^2+c*x+d=0,设a=1,b=5,c=6,d=-11,求x?
a<-1;b<-5;c<-6;d result
result$root
[1] 0.9461458
如果我们设置对了取值区间,那么一下就得到了方程的根。
以图形展示方程:y = x^2 + 5*x + 6
# 创建数据点
> x y df g g g g g
4.4 二元一次方程组
R语言还可以解二次的方程组,当然计算方法,其实是利用于矩阵计算。
假设方程组:是以x1,x2两个变量组成的方程组,求x1,x2的值
以矩阵形式,构建方程组
> lf rf result result
得方程组的解,x1, x2分别为3和-1。
接下来,我们画出这两个线性方程的图。设y=X2, x=X1,把原方程组变成两个函数形式。
# 定义2个函数
> fy1 fy2 x y1 y2 dy1 dy2 df
我们看到两条直线交点的坐标,就是方程组的两个根。多元一次方程,同样可以用这种方法来解得。
通过R语言,我们实现了对于初等数学的各种计算,真的是非常方便!下一篇文章将介绍,用R语言来解决高级数学中的计算问题。
转载请注明出处:
This entry was posted in
Designed by由摊余成本法谈到债券估值
作者: 邓布利多加香菜
来源:运营小课程
一、摊余成本法的理解
摊余成本法,指的就是估值对象以买入成本列示,按照票面利率或商定利率并考虑其买入时的溢价与折价,在其剩余期限内平均摊销,每日计提收益。
官方的解释可能显得晦涩难懂,要理解摊余成本法,首先要理解的是债券的发行与买卖存在着溢价与折价,而这其实也就是票面利率和实际利率的对比,折价发行是为了以后每期少付利息而在发行时给予投资者的补偿,而溢价发行就是发行企业因为以后每期要多付利息而事先得到的补偿。
接下来为大家分开举例来理解。
首先举一个简单的溢价发行的例子,甲公司于日以1,079.85元购入乙公司的5年期债券,面值1,000元,票面利率10%,每年付息100元,到期支付本金,可以通过公式:
计算出实际利率r=8%,那么实际每期的现金流变化为(全部保留至3位小数):
由上表可见
每期的摊余成本减少额=实收利息-应得利息=现金流出-实际利率下应付的利息=票面金额*票面利率-期初摊余成本*实际利率
而摊到最后一期的期末摊余成本999.994元也就约等于票面金额1,000元了。
再举个简单的折价发行的计算例子来说,A公司于日以1,000元购入B公司的5年期债券,面值1,250元,票面年利率4.72%,每年付息59元,到期支付本金,可以通过公式:
计算出实际利率r=10%,那么实际每期的现金流变化为:
由上表可见
每期的摊余成本增加额=应得利息-实收利息=实际利率下应付的利息-现金流出=期初摊余成本*实际利率-票面金额*票面利率
摊到最后一期的期末摊余成本1,250.3091元也就约等于票面金额1,250元。
无论是溢价还是折价发行,都有每期账面成本=票面金额+剩余溢折价,而剩余溢折价会随着摊销而趋近于0,最终账面成本总会回归至债券的票面金额。
从本质来说,摊余成本就是债券未来所能带来的现金流在当期的现值。
设M0为每期的期末本金也就是每期的摊余成本,X为每期的现金流出也就是实收利息,Y为票面金额,r为实际利率,债券期限为5年期(2000年初-2005年初),那么运用债券现值公式有:
则M0=2000年期末摊余成本=该债券未来5年的现金流折现至2000年初的现值。
则M1=2001年期末摊余成本=该债券未来4年的现金流折现至2001年初的现值。
以此类推:
则M5=2005年期末摊余成本=该债券票面金额,正如上面两个例子所示。
二.摊余成本法的应用
摊余成本法目前在我国债券基金估值中多在货币基金中采用,而在应用中多要搭配影子定价法来使用。
影子定价就是指基金管理人于每一计价日,采用市场利率和交易价格,对基金持有的计价对象进行重新评估,即“影子定价”。当基金资产净值与影子定价的偏离达到或超过基金资产净值的0.5%时,或基金管理人认为发生了其他的重大偏离时,基金管理人可以与基金托管人商定后进行调整,使基金资产净值更能公允地反映基金资产价值,确保以摊余成本法计算的基金资产净值不会对基金持有人造成实质性的损害。
从定义就可以看出,影子定价法是对摊余成本法的一个补充,摊余成本法虽然承认了历史成本对债券资产估值的影响,考虑了时间变化的影响,但是如果发生大额赎回的情况,基金经理要卖出原来打算持有至到期的债券,卖出价格比原先计入资产估值的价格低,而货币基金现金交付为T+1日,基金经理在T+1日卖出债券,亏损体现在+1日而不体现在+0日,那么+0日未离场的资金就受到损失,而如果所有投资者都担心会受到损失,就会引起雪崩式的资金离场。
在这种时候,摊余成本法与影子价格配合,一方面承认历史成本对债券资产估值影响,考虑了时间变化的影响;另一方面通过偏离度控制可以让基金估值紧跟市场价格的主要趋势。这一方法基本上做到了平衡各种因素对基金估值的影响,并在一定程度上保证了基金资产按照净值变现的能力。
三、债券估值方法的对比
债券型产品的估值方法总体分为两类:成本法和市价法。其中成本法又分为买入成本法和摊余成本法,成本法总体适用于持有至到期策略的投资;市价法又分为交易所的收盘价和第三方机构的估值价。
(1)买入成本法
买入成本法就是以债券的买入价格加上债券的应计利息来进行估值,但这种情况并没有考虑债券存在的溢折价情况,过于简单粗暴,在溢价时高估债券价值,折价时则低估债券价值。
(2)摊余成本法
摊余成本法就是在债券买入价和应计利息的基础上又考虑了每日摊销的溢折价,它可以在设定的波动范围内,保持投资账面净值和收益的稳定,同时通过登记簿来记录市价变动情况,不需要调整账面净值,相对来说既公允又便捷。
在目前的会计准则中,规定只有持有至到期类型的债券才可以采用摊余成本法估值,所以对于非持有至到期且不好估值的债券就会采用买入成本法估值。
因为持有至到期是债券投资的主要策略之一,所以成本法的优点主要就在于可以很好地回避市场波动的干扰,防止净值的大幅波动;但另一方面,因为被动变现现象的客观存在,如果必须变现就可能发生变现价与估值价的背离,所以一方面要对采用成本法估值的产品设定限制,首先根据存续期约束资产端的债券久期,其次考虑负债端的稳定性和结构,如是特定单一委托人还是特定多个委托人的委托结构;另一方面要搭配影子定价法和偏离度控制来使用。
同时,如果一个债券含有权益信息,如可转债和可交换债,存在行权转股的投资策略,理论上不能采用成本法估值。
(1)交易所收盘价
只有在交易所竞价系统交易的债券才能获得交易所得收盘价,而在银行间,上交所固收平台和深交所大宗平台的交易的债券都无法直接获得交易所的收盘价;另一方面债券的交易流动性也可能很差,其收盘价格并不公允。所以因为债券的流动性和交易场所问题,用交易所收盘价作为市价法的估值方法无法完全反映债券的真实变现价值,在使用前,必须对债券交易所价格的稳定性和公允性进行深入考虑。
(2)第三方机构估值
目前市场上第三方机构估值多采用的是中债金融估值中心有限公司(以下简称“中债”)和中证指数有限公司(以下简称“中证”)两家机构的估值结果,据了解,两家机构都是用统计作出各种债券收益率曲线、行业利差,再根据成交信息和曲线、利差一起对债券估值;两者的区别主要是中债依托于国务院、人民银行和银监会,中证依托于两家交易所和证监会,其统计样本不同,覆盖范围有差别,同时二者绘制收益率曲线时用的插值法不同,中债采用的是单调三次Hermite多项插值法,中证采用的是三阶样条插值法,所以中证的曲线比中债光滑。在公募基金行业实际业务操作中,一般银行间的债券使用“中债估值”,交易所的债券使用“中证估值”。
四.摊余成本法与资管新规
在日最新发布的《关于规范金融机构资产管理业务的指导意见》(以下简称“《资管新规》”)中,为打破“刚性兑付”的预期,对于摊余成本法的适用范围又有了新的限定:
金融资产坚持公允价值计量原则,鼓励使用市值计量。符合以下条件之一的,可按照企业会计准则以摊余成本进行计量:
(一)资产管理产品为封闭式产品,且所投金融资产以收取合同现金流量为目的并持有到期。
(二)资产管理产品为封闭式产品,且所投金融资产暂不具备活跃交易市场,或者在活跃市场中没有报价、也不能采用估值技术可靠计量公允价值。
金融机构以摊余成本计量金融资产净值,应当采用适当的风险控制手段,对金融资产净值的公允性进行评估。当以摊余成本计量已不能真实公允反映金融资产净值时,托管机构应当督促金融机构调整会计核算和估值方法。金融机构前期以摊余成本计量的金融资产的加权平均价格与资产管理产品实际兑付时金融资产的价值的偏离度不得达到5%或以上,如果偏离5%或以上的产品数超过所发行产品总数的5%,金融机构不得再发行以摊余成本计量金融资产的资产管理产品。”
资管新规对于货币基金的估值影响尤其瞩目,目前货币基金在摊余成本法下将净值稳定在1.00元,在资管新规下可能会被认定为隐性的刚性兑付,自然也就在改革的要求之下。以往的货币基金如果在极端情况下发生亏损常常由管理人计提的风险准备金承担,而在市价法的货币基金下则要由委托人来承担。对于摊余成本法货币基金监管的趋紧,也和日正式实施的《公开募集开放式证券投资基金流动性风险管理规定》相呼应。从打破刚性兑付的预期来看,未来可能出现摊余成本法和市价法货币基金共同发展的情况,根据不同的委托人结构来定制相应的估值方法。但是严格来看,资管新规的条款跟现行的货币基金的估值体系还有比较明显的差距。同时在十几年的实践中,摊余成本法和影子定价法结合的估值方法的有效性也已经被证明,市价法的改变,还需要证监会等监管机构和市场的共同论证。实际上,资管新规直接针对的主要是采用摊余成本法估值的银行理财和中短期债券基金。对于预期收益型产品来说,打破刚性兑付是其内在要求;对于中短期债券型基金,其久期是三年以下,成本价格与公允价值之间的差距会比较大,采用摊余成本法显然不公允。
简单来说,资管新规对于摊余成本法的新规的核心就是资产端和负债端的期限一定要匹配,严厉打击期限错配的资管乱象,估值方法和投资策略一定要适配。
以上本期运营小课堂就是关于摊余成本法和债券估值的相关内容,对于债券估值方法的选择和应用一直是市场和各参与主体关注的问题,也希望这次的讲解能为大家解决一些疑问,带来一些启迪与思考~
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点

我要回帖

更多关于 实际利率的计算方法 的文章

 

随机推荐