文章目录
显示
如何计算累计收益率
一、如何利用单次收益率计算累计收益率。
1.1计算公式
理财产品(本金100元)
- 第1天:3% :(1+3%) ✖ 100 = 103
- 第2天:2% :(1+2%)✖ 以上 = 103 +2.06
- 第3天:5% : (1+5%)✖ 以上 = 收益 ✖ 以上
- 第4天:6% :(1+6%)✖ 以上 = 收益 ✖ 以上
- ... 累计收益=(1+当天收益率)的累计乘积-1
这里的计算公式为什么需要减去1
呢? 因为我们上面的公式都是包括本金的,比如说103
应该减去100
,只有3
元才是我们的利润,所以这里需要减去1
,将本金删除掉
1.2定义方法:
import pandas as pd
# 计算累计收益率
def calculate_cum_prof(data):
data['cum_profit'] = pd.DataFrame(1+data['profit_pct']).cumprod()-1
return data
1.3调用方法:
# 考虑特殊情况
data = compose_signal(data)
# 计算单次的收益率
data = calculate_profit_pct(data)
# 计算累计收益率
data = calculate_cum_prof(data)
return data
if __name__ == '__main__':
data = week_period_strategy(stock_code='000001.XSHE', timefrequency='daily', start_date=None, end_date='2021-06-01')
print(data)
print(data.describe())
data['cum_profit'].plot()
plt.show()
运行:
最终的收益图:
从这个收益图来看,如果我坚持周四买入 周一卖出的策略,钱已经翻了10倍,换句话说,如果我在2005年投入了1000元,现在就是1000*10 = 1万。感觉还是很可观。