code: def qstick(open_, close, length=None, offset=None, **kwargs):
      """Indicator: Q Stick"""
      # Validate Arguments
      length = int(length) if length and length > 0 else 10
      ma = kwargs.pop("ma", "sma")
      open_ = verify_series(open_, length)
      close = verify_series(close, length)
      offset = get_offset(offset)
  
      if open_ is None or close is None:
          return
  
      # Calculate Result
      diff = non_zero_range(close, open_)
  
      if ma == "dema":
          qstick = dema(diff, length=length, **kwargs)
      elif ma == "ema":
          qstick = ema(diff, length=length, **kwargs)
      elif ma == "hma":
          qstick = hma(diff, length=length)
      elif ma == "rma":
          qstick = rma(diff, length=length)
      else:  # "sma"
          qstick = sma(diff, length=length)
  
      # Offset
      if offset != 0:
          qstick = qstick.shift(offset)
  
      # Handle fills
      if "fillna" in kwargs:
          qstick.fillna(kwargs["fillna"], inplace=True)
      if "fill_method" in kwargs:
          qstick.fillna(method=kwargs["fill_method"], inplace=True)
  
      # Name and Categorize it
      qstick.name = f"QS_{length}"
      qstick.category = "trend"
  
      return qstick
  
label_desc: Use image node_id 1 for calling a global function with example usage: qstick(open_, close, length, offset) and returns: qstick