error: [внутренняя] не может инициализировать переменную. . < /p>
< /blockquote>
Это мой упрощенный код, чтобы понять ошибку: < /p>
Код: Выделить всё
# indie:lang_version = 4
from indie import (
indicator, MainContext, algorithm,
SeriesF, MutSeriesF, Var,
param, plot, color, Plot
)
from indie.algorithms import Sma, Ema
@indicator("Trend Following System")
class Main(MainContext):
def __init__(self):
"""Initializing state tracking variables"""
self.trend_state: Var[int] = None #!! Causes Error
self.signal_counter: Var[int] = None #!! Causes Error
def calc(self):
"""Trend calculation and state tracking"""
if self.trend_state is None:
self.trend_state = Var[int].new(0)
if self.signal_counter is None:
self.signal_counter = Var[int].new(0)
prev_state = self.trend_state.get()
# Test logic
strength = self.close[0] - self.close[1] # Simplified for testing
# Update trend state
if strength > 0.5:
self.trend_state.set(1)
elif strength < -0.5:
self.trend_state.set(-1)
else:
self.trend_state.set(0)
if self.trend_state.get() != prev_state:
self.signal_counter.set(self.signal_counter.get() + 1)
return Plot(strength, color=color.GREEN if strength > 0 else color.RED)
Что я попробовал
- Declare self.trend_state in __init __ () → worm var.nemaisd
- . calc () → Является ли эта лучшая практика?
- Проверьте self.trend_state.get () только после инициализации
- try optional [var [int]] Но Indie не поддерживает IT li
подозреваемые проблемы
Должен var.new () только в calc () вместо __init __ () ? Переменные отслеживания состояний в индикаторах?Есть ли лучший способ инициализации var [int] в инди без ошибок типа?>
Подробнее здесь: https://stackoverflow.com/questions/794 ... or-context