年化收益率是什么意思 如何计算

2023年11月27日 337点热度 1人点赞 0条评论

年化收益率是衡量投资收益回报的重要指标。它是把当前收益率(例如日收益率、周收益率、月收益率)换算成年收益率来计算的,并不是真正的已取得的收益率。以日收益率为例,反算为年化收益率,可以简单理解为,按照过去每日的收益的一个平均情况,维持在这个水平上,平均一年能赚到多少个百分点,年化收益率是一个复合的年增长率。QThinker Plus 上提供了这个计算工具,可以直接计算。下面说一下计算方法。

具体到计算上,一般有两种方式计算年化收益率:

一、通过日收益率序列计算年化收益率

这种计算,通常以资产期初价值为1,先计算期末的累计收益率,然后用期末收益率开周期天数次方后减一,得到年化收益率。伪代码如下:

# 计算历史回报占一年天数的比率
num_years = len(returns) / ann_factor
# 以资产期初价值为1,计算期末累计收益率
ending_value = cum_returns_final(returns, starting_value=1)
# 对期末收益率开num_year次方后 - 1 得到年化收益率
annual_return = ending_value ** (1 / num_years) - 1

这里需要注意的是ann_factor这个变量,这个变量的取值需要和returns,即回报序列匹配。如果你的returns序列不包含假期,比如股市投资的日收益率序列,那么对应的ann_factor这个变量应该设置为252,即一年的交易日数量。如果你的returns序列是包含假期的,比如你持有货币基金,周末也有收益,那么这个ann_factor应该设置为一年的天数,即365。

二、通过期初期末资产数值及持有天数计算年化收益率

直接给个函数,里面的365是与入参days对应的,如果days这个持有天数是包含假期的自然日天数,则设置为365,如果days是不包含假日的交易日天数,则为252。

def cal_annual_return(start:float , end:float , days:int) -> float:
    pct = end/start
    return pct ** ( 1 / ( days / 365 )) - 1

QThinker

前地产从业者,假装是个程序员,热爱编程与交易 自研QThinker量化交易框架

文章评论