在Indie v5中使用calc_on()时,如何正确引用当前品种ID以获取更高时间周期数据?
在Indie v5中使用calc_on()时,如何正确引用当前品种ID以获取更高时间周期数据?
我来帮你搞定这个问题!你遇到的这个“symbol not found”错误,是因为在Indie v5的指标上下文里,self.symbol和self.id都不是传递当前品种标识的正确方式。
正确的解决方法
在Indie v5的指标类中,框架内部用self._symbol(注意前面的下划线)来存储当前品种的代码,这才是calc_on()方法需要的参数。你可以把代码改成这样:
sec_ctx = self.calc_on(self._symbol, htf)
为什么之前的方式不行?
self.symbol并不是Indie v5指标类对外公开的属性,框架并没有提供这个属性来获取品种代码,所以调用它会找不到对应的值。self.id是指标本身的唯一标识,用来区分不同的指标实例,而不是当前运行指标的品种代码,所以传递它自然会提示找不到对应品种。
小提示
如果你不确定self._symbol的值是否正确,可以在指标的初始化方法里打印出来验证:
def __init__(self): print("当前运行的品种代码:", self._symbol)
备注:内容来源于stack exchange,提问作者neuepsae
相关产品推荐
相关产品推荐

