code: def __init__(self):
      # Original code needs artificial warmup phase - hidden sma to replic
      if self.p.warmup:
          bt.indicators.SMA(period=self.p.warmup, plot=False)
  
      rsi = bt.indicators.RSI(
          period=self.p.rsi_per,
          upperband=self.p.rsi_upper,
          lowerband=self.p.rsi_lower,
      )
  
      crossup = bt.ind.CrossUp(rsi, self.p.rsi_lower)
      self.signal_add(bt.SIGNAL_LONG, crossup)
      self.signal_add(bt.SIGNAL_LONGEXIT, -(rsi > self.p.rsi_out))
  
      crossdown = bt.ind.CrossDown(rsi, self.p.rsi_upper)
      self.signal_add(bt.SIGNAL_SHORT, -crossdown)
      self.signal_add(bt.SIGNAL_SHORTEXIT, rsi < self.p.rsi_out)
  
file_path: backtrader/samples/kselrsi/ksignal.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import argparse
  import datetime
  import backtrader
label_desc: Use image node_id 2 to create a new TheStrategy object from inherited base classes: bt with example: obj = TheStrategy()