前言
最近小伙伴们都在做毕业论文。而金融学的研究中不可避免要用到的一类变量就是各种金融资产的收益率。尽管这个概念对于大家来讲都不陌生,但是在具体计算和使用的过程中还是会出现一些细节上的问题。本着记录和学习的心态,在这里对收益率
这个概念进行一次详细的讲解和整理。
文章要点
- 解释简单收益率和对数收益率的差异
- 计算金融资产的累计收益率、年化收益率
- 使用Python实现各种收益率的计算
一、两种基础收益率的计算
例如,我们有如下股票价格序列:
简单算数收益率
- S a m p l e R e t u r n Sample Return SampleReturn (用 R R R表示)
R i , t = ( P t − P t − 1 ) P t − 1 = P t P t − 1 − 1 (1) R_{i,t}= \frac {(P_t-P_{t-1})}{P_{t-1}} = \frac {P_t}{ P_{t-1}} -1 \tag1 Ri,t=Pt−1(Pt−Pt−1)=Pt−1Pt−1(1)
对数收益率
- L o g R e t u r n Log Return LogReturn (这里用 r r r表示)
r i , t = l o g ( P t p t − 1 ) (2) r_{i,t} = log(\frac{P_t}{p_{t-1}}) \tag2 ri,t=log(pt−1Pt)(2)
- 简单算数收益率是严格大于-1的(因为价格一定为正),而对数收益率的取值可以小于-1
- 简单收益率一般来讲大于同等情况下的对数收益率
二、区间内收益率的计算
在实证研究中,很多时候我们希望得到周收益率或者月度收益率,那么如何根据日度收益率得到这些指标呢?可能很多同学会想当然地认为:直接加总日收益率即可!可是问题在于:直接对简单收益率进行加总得到的周(月)收益率等于对数日收益率的加总吗?
答案是否定的
因为,区间内简单日收益率的加总意味着投资者每天都在进行交易,而非在区间内买入并持有至末期。
因此。正确的做法是使用时间区间内的对数收益率相加总,得到的才是一段时期内的收益率。
r i , [ T 0 : T t ] = ∑ t = 0 t r i , t (3) r_{i,[T_0:T_t]} = ∑_{t=0}^t r_{i,t} \tag3 ri,[T0:Tt]=t=0∑tri,t(3)
当然,我们也可以通过简单算术日收益率计算区间内的持有期收益,但是需要采用下述方法:
R
i
,
[
T
0
:
T
t
]
=
∏
t
=
0
t
(
1
+
R
t
)
−
1
(4)
R_{i,[T_0:T_t ] }=∏_{t=0}^t {(1+R_t) } -1 \tag4
Ri,[T0:Tt]=t=0∏t(1+Rt)−1(4)