# indie:lang_version = 5 from indie import indicator, MutSeries, color, param, MainContext, Optional, Var from math import isnan from indie.drawings import LineSegment, AbsolutePosition, line_segment_style, line_ending_style, extend_type
@indicator('lines', overlay_main_pane=True) class Main(MainContext): def __init__(self): none_line: Optional[LineSegment] = None self._line: Var[Optional[LineSegment]] = self.new_var(none_line) self._visible = True def calc(self): if self._line.get() is not None: self.chart.erase(self._line.get().value()) self._line.set(None) if self._visible: p1 = AbsolutePosition(self.time[1], self.high[1]) p2 = AbsolutePosition(self.time[0], self.close[0]) self._line.set(LineSegment( p1, p2, color=color.GREEN, a_end=line_ending_style.ARROW, b_end=line_ending_style.DIAMOND, extend_type=extend_type.RIGHT, line_style=line_segment_style.SOLID, line_width=4, )) self.chart.draw(self._line.get().value()) self._visible = not self._visible
return
Comments