在评价组合或产品在一段时间内的投资收益或风险情况时,存在各种各样的指标,如年化收益率、波动率、夏普比率、最大回撤等等,但收益率是所有这些指标的基础。本系列文章将分别介绍这些评价指标的含义、计算方法,以及基于Python语言的实现。
作为系列文章的第一篇,本文将从最基础的两种收益率计算方式说起,包括简单收益率和对数收益率。
一、简单收益率
简单收益率(Simple Return),又称为算术收益率(Arithmetic Return),包括单期简单收益率和多期简单收益率。
- 单期简单收益率
假设投资者在0时刻购买一项资产,价格为P0,此后每隔一段时间(每天、每周、每月、每年或者是周期不同的时间段)记录该资产的价格,分别为P1、P2…等等。资产价格序列如下图所示:
假设在[t-1, t]时间段内该资产无分红,则该时间段内的单期简单收益率为:
- 多期简单收益率
单期简单收益率推而广之就成了多期简单收益率。显而易见,[t-k, t]时间段的多期简单收益率为:
可以看到,多期简单收益率可以分解为单期简单收益率的乘积形式。
二、对数收益率
对数收益率(Log Return),又称为几何收益率(Geometric Return),是连续复利下的收益率,它假设将投资期限划分为无限时间段,前一时间段的本金和利息之和作为下一时间段的初始本金,如此连续。对数收益率同样包括单期对数收益率和多期对数收益率。
- 单期对数收益率
同样以上面的例子为例,假设r为[t-1, t]时间段内的利率,m代表该时间段内复利的次数,则有:
当m趋向于无穷大时(也即投资一旦发生,则在瞬间产生复利利息,并持续进行下去),两边取极限则可得到:
因此,有:
- 多期对数收益率
多期对数收益率的计算公式如下:
可以看到,多期对数收益率可以分解为单期对数收益率的连和形式。
三、对比及关系
为什么在金融领域中,我们经常使用对数收益率,而不是简单收益率?
这是因为对数收益率具有可加性,即多期收益率为单期收益率之和,而简单收益率则不具备这个性质。比如,若投资者初始投入1万元,第一年和第二年年化回报率均为10%,则两年的总回报并非20%,而是(1+10%)*(1+10%)-1=21%;同样,若第一年年化回报率为10%,第二年年化回报率为-10%,则两年的总回报也并非0,而是(1+10%)*(1-10%)-1=-1%。而对数收益率则不存在这个问题,直接相加即可。
此外,对数收益率的分布更接近于正态分布,对于金融统计分析和建模带来了诸多方便。
那么,简单收益率与对数收益率之间的关系是什么呢?
假设通过单利和复利投资得到的收益相同,则有:
上述公式即是简单收益率与对数收益率之间的关系。
四、Python实现
为了便于演示,我们下载了沪深300指数的近十年收盘价(从2012-01-04到2022-07-01),并使用前述方法计算简单收益率和对数收益率。
首先,我们导入数据。
接着,我们计算简单收益率。
同样,我们可以计算对数收益率。
最后,我们绘制两种收益率的分布图,观察他们的差异。
直观上可以看出,对数收益率的分布图更接近正态分布。
根据前述公式,我们可以通过单期简单收益率及对数收益率计算沪深300指数在该时间段内的累计收益率,结果如下:
可以看到,以上三种方法计算结果一致。