Код: Выделить всё
# 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)
Ошибка: 6:16 indie.Var[int].new — это синтаксическая сахарная функция в Indie, которую можно вызывать только из функции, украшенной @indie.algorithm, @indie.sec_context или @indie.indicator, или из сторонних функций.
Код: Выделить всё
__init__Я не знаю, что означает ошибка, но похоже, что Var\[int\].new() нельзя использовать там, где я его поставил. Там упоминается что-то о конкретных функциях или контекстах, но я не уверен, что это значит и как исправить мой код.
Где мне поместить Var\[int\], чтобы эта ошибка не возникала? Что означает ошибка под «определенными контекстами» и как это настроить?
Подробнее здесь: https://stackoverflow.com/questions/795 ... c-contexts
Мобильная версия