使用重采样('Y')和不使用重采样来计算年化平均回报率

  • 本文关键字:重采样 计算 回报率 python
  • 更新时间 :
  • 英文 :


我正试图计算亚马逊股票的年化回报率,但无法计算出以下方法之间的主要区别

df = pdr.get_data_yahoo('amzn',datetime(2015, 1, 1),datetime(2019, 12, 31))['Adj Close']

1(df.pct_change()).mean()*252

结果=0400

2(df.resample('Y').last().pct_change().mean()

结果=0472

为什么会有7%左右的差异?

在阅读了函数的文档后,我想通过对时间序列数据重新采样的示例来更好地理解。

使用重采样方法,DataFrame的价格列按一定的时间跨度分组,在这种情况下,'Y'表示按年份进行重采样,使用last((我们可以获得每年年底的价格值。

data.resample('Y').last()

输出:1。步骤

接下来,使用pct_change((,我们计算每一行的值与前几行的值之间的百分比变化,前几行是我们之前得到的每年年底的价格值。

data.resample('Y').last().pct_change()

输出:2。步骤

现在,在最后一步中,我们使用mean((方法计算整个时间段内的平均百分比变化

data.resample('Y').last().pct_change().mean()

输出:3。步骤

就像@itprorh66已经写过的那样,这两种方法之间的主要区别在于计算值的平均值的时间。

最新更新