最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Indie.Var[int].new can only be called from specific contexts - Stack Overflow

programmeradmin3浏览0评论

I am trying to implement the Elder’s Force Index in Indie, but I’m getting an error when I call indie.Var[int].new() in the global scope.

# indie:lang_version = 5
from indie import indicator, plot, color, param, MutSeriesF, Var
from indie.algorithms import Ema

# ERROR: Using Var[int].new() in the global scope
trend_counter = Var[int].new(0)

@indicator("Elder's Force Index (FI)", overlay_main_pane=False)
@param.int('length', default=13, min=1, title='EMA Length')
@plot.line(id='#plot_0')
def Main(self, length):
    # Create a mutable time series for the Force Index
    fi_series = MutSeriesF.new((self.close[0] - self.close[1]) * self.volume[0])
    
    smoothed_fi = Ema.new(fi_series, length)[0]
    fi_color = color.GREEN if smoothed_fi > 0 else color.RED
    
    return plot.Line(smoothed_fi, color=fi_color)

Error:

Error: 6:16 `indie.Var[int].new` is a syntactic sugar function in Indie and can only be called from a function decorated with `@indie.algorithm`, `@indie.sec_context` or `@indie.indicator` or from non-`__init__` method of a class inherited from `indie.MainContext`, `indie.SecContext` or `indie.Algorithm`

I don’t know what the error means, but it seems like Var[int].new() can’t be used where I put it. It mentions something about specific functions or contexts, but I’m not sure what that means or how to fix my code.

Where do I put Var[int] so that this error doesn’t happen? What does the error mean by “specific contexts” and how do I set that up?

I found some similar problem, but the solution doesn’t seem to work for me.

发布评论

评论列表(0)

  1. 暂无评论