对数收益可以在Python中以这种方式计算-参见parent class
import pandas as pd
import numpy as np
np.random.seed(0)
df = pd.DataFrame(100 + np.random.randn(5).cumsum(), columns=['price'])
df['pct_change'] = df.price.pct_change()
df['log_ret'] = np.log(df.price) - np.log(df.price.shift(1))
df
Out[84]:
price pct_change log_ret
0 101.883151 NaN NaN
1 100.535392 -0.013228 -0.013317
2 99.264907 -0.012637 -0.012718
3 100.234303 0.009766 0.009718
4 99.061180 -0.011704 -0.011773
对于给定的起始价格,如果仅提供log_ret
数据,如何获得后续价格?
首选熊猫解决方案。
答案 0 :(得分:0)
您必须查看原木返回的定义并为价格解决此问题:
df['price_'] = np.exp(df['log_ret']) * df['price'].shift(1)