所以我试图从给出的累积收益

hist_data = (hist_data - hist_data.iloc[0]) / hist_data.iloc[0]


我正在尝试从这种累积收益转变为每日收益,但是却在如何有效地做到这一点方面空白。有任何想法吗?
我以为如果减一就可以

(hist_data[1:] - hist_data[:-1]) / hist_data[:-1]

最佳答案

如果hist_data包含累积收益,则这是计算每日收益的常用快捷方式。假设hist_data是返回百分比的向量,则需要将1.0添加到hist_data中,如下所述。这样,我们就有了收益率向量而不是收益率百分比。

import numpy as np

daily_returns = np.exp(np.log(hist_data + 1.0).diff())


在这里,我们只是使用自然日志(ln)的属性,即

ln(a/b) = ln(a) - ln(b)
   a/b  = exp(ln(a) - ln(b))

关于python - 使用 Pandas 将累积 yield 转换为每日 yield ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45820852/

10-15 18:55