Indie指标开发报错:无法在Series[float]与float间使用+运算符
解决Indie平台中Series[float]与float类型不匹配的问题
问题根源在于你用sDev[0]取出了单个float值,而mid_line_bb是Series[float]类型的时间序列,Indie平台不支持序列和单个数值直接运算,必须保证两边都是序列类型。
直接修改代码,移除sDev后的[0],用整个序列对象参与计算即可:
sDev = StdDev.new(self.close, length) mid_line_bb = Sma.new(self.close, length) lower_band_bb = mid_line_bb + num_dev_dn * sDev # 移除[0] upper_band_bb = mid_line_bb + num_dev_up * sDev # 移除[0]
关于你之前尝试方法的说明
- 用
MutSeriesF.new()包裹单个float值完全没必要,sDev本身就是合法的序列类型,直接用它和mid_line_bb运算就能保证类型一致,强制构造可变序列反而会引发新的类型冲突。 value_or()是Indie旧版本的方法,v4已经移除,无需再尝试。
Indie的指标计算是基于时间序列设计的,所有运算都要保持序列对序列的操作逻辑,这样才能确保每个时间点的数值都能被正确计算。
内容的提问来源于stack exchange,提问作者Hardik Satasiya
相关产品推荐
相关产品推荐

