annual_return = 0 if self.trade_day == 0 else (1 + self.ret_day).cumprod()[len(self.ret_day) - 1] ** (
这个问题触发的原因是self.ret_day这个pandas Series中存在负值无法进行幂运算,因 annual_return在其他地方也参与了很多运算,我财务公式不太熟悉,暂不知如何解决。
该错误未处理之前跑demo的时候建议先使用WtBtAnalyst().run或者WtBtAnalyst().run_simple进行分析方便定位错误,策略收益为正时再使用WtBtAnalyst().run_new做进一步的绩效分析。
更简单的方法是把绩效分析的资金改大一些,避免在策略周期内亏完……
这个问题触发的原因是self.ret_day这个pandas Series中存在负值无法进行幂运算,因 annual_return在其他地方也参与了很多运算,我财务公式不太熟悉,暂不知如何解决。
该错误未处理之前跑demo的时候建议先使用WtBtAnalyst().run或者WtBtAnalyst().run_simple进行分析方便定位错误,策略收益为正时再使用WtBtAnalyst().run_new做进一步的绩效分析。
更简单的方法是把绩效分析的资金改大一些,避免在策略周期内亏完……