所以我试图从
给出的累积回报中获益hist_data = (hist_data - hist_data.iloc[0]) / hist_data.iloc[0]
而我正试图从这个累积的回报中恢复到每日回报,但我却在如何有效地做到这一点。有任何想法吗? 我认为如果我减去一个
,这可能会有效(hist_data[1:] - hist_data[:-1]) / hist_data[:-1]
答案 0 :(得分:4)
如果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))