Indie.Var[int].new можно вызывать только из определенного контекста.Python

Программы на Python
Ответить
Anonymous
 Indie.Var[int].new можно вызывать только из определенного контекста.

Сообщение Anonymous »

Я пытаюсь реализовать индекс силы Элдера в Indie, но получаю сообщение об ошибке при вызове indie.Var[int].new() в глобальной области видимости.

Код: Выделить всё

# 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__
метод класса, унаследованного от indie.MainContext, indie.SecContext или indie.Algorithm

Я не знаю, что означает ошибка, но похоже, что Var\[int\].new() нельзя использовать там, где я его поставил. Там упоминается что-то о конкретных функциях или контекстах, но я не уверен, что это значит и как исправить мой код.
Где мне поместить Var\[int\], чтобы эта ошибка не возникала? Что означает ошибка под «определенными контекстами» и как это настроить?

Подробнее здесь: https://stackoverflow.com/questions/795 ... c-contexts
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»