cnil在python_在Python中使用cumprod()计算权益曲线

本文探讨在Python中使用cumprod()函数计算复合收益时如何根据特定条件(如买入和卖出指令)来调整计算过程。通过示例数据和公式说明,解释了如何在'Final_Order'为'Buy'时开始计算,并在'Final_Order'为'Sell'时停止,以实现期望的'Backtest'列输出。
摘要由CSDN通过智能技术生成

我在使用cumprod()计算复合收益时遇到困难。它从一开始就开始复利,但我只希望它在“最终指令”等于买入时开始,在“最终指令”等于卖出时停止,然后在下一个买入指令时重新设置。请看下面的例子。

下面的示例数据显示了我希望看到的列“Backtest”的输出。

Time Adj_Price Final_Order Backtest

0 7 nan 1000

1 6 nan 1000

2 5 Buy 1000

3 7 Buy 1400

4 8 Sell 1600

5 6 Sell 1600

6 4 Buy 1600

7 5 Buy 2000

8 7 Buy 2800

9 9 Sell 3600

10 7 Sell 3600

11 7 Sell 3600

12 6 Sell 3600

下面是“回溯测试”的计算。

时间1=IF(Final_Order=“Buy(t0)”,(6/7)*1000,Else 1000)=1000

时间2=IF(Final_Order=“Buy(t1)”,(5/6)*1000,Else 1000)=1000

时间3=IF(Final_Order=“Buy(t2)”,(7/5)*1000,Else 1000)=1400

时间4=IF(Final_Order=“购买(t3)”,(8/7)*1400,Else 1400)=1600

时间5=IF(Final_Order=“Buy(t4)”,(6/8)*1600,Else 1600)=1600

时间6=IF(Final_Order=“Buy(t5)”,(4/6)*1600,否则1600)=1600

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值