code: def kvo(
      high,
      low,
      close,
      volume,
      fast=None,
      slow=None,
      signal=None,
      mamode=None,
      drift=None,
      offset=None,
      **kwargs,
  ):
      """Indicator: Klinger Volume Oscillator (KVO)"""
      # Validate arguments
      fast = int(fast) if fast and fast > 0 else 34
      slow = int(slow) if slow and slow > 0 else 55
      signal = int(signal) if signal and signal > 0 else 13
      mamode = (
          mamode.lower()
          if mamode and isinstance(mamode, str)
          else "ema"
      )
      _length = max(fast, slow, signal)
      high = verify_series(high, _length)
      low = verify_series(low, _length)
      close = verify_series(close, _length)
      volume = verify_series(volume, _length)
      drift = get_drift(drift)
      offset = get_offset(offset)
  
      if high is None or low is None or close is None or volume is None:
          return
  
      # Calculate Result
      signed_volume = volume * signed_series(hlc3(high, low, close), 1)
      sv = signed_volume.loc[signed_volume.first_valid_index() :,]
      kvo = ma(mamode, sv, length=fast) - ma(mamode, sv, length=slow)
      kvo_signal = ma(
          mamode, kvo.loc[kvo.first_valid_index() :,], length=signal
      )
  
      # Offset
      if offset != 0:
          kvo = kvo.shift(offset)
          kvo_signal = kvo_signal.shift(offset)
  
      # Handle fills
      if "fillna" in kwargs:
          kvo.fillna(kwargs["fillna"], inplace=True)
          kvo_signal.fillna(kwargs["fillna"], inplace=True)
      if "fill_method" in kwargs:
          kvo.fillna(method=kwargs["fill_method"], inplace=True)
          kvo_signal.fillna(method=kwargs["fill_method"], inplace=True)
  
      # Name and Categorize it
      _props = f"_{fast}_{slow}_{signal}"
      kvo.name = f"KVO{_props}"
      kvo_signal.name = f"KVOs{_props}"
      kvo.category = kvo_signal.category = "volume"
  
      # Prepare DataFrame to return
      data = {kvo.name: kvo, kvo_signal.name: kvo_signal}
      df = DataFrame(data)
      df.name = f"KVO{_props}"
      df.category = kvo.category
  
      return df
  
label_desc: Use image node_id 1 for calling a global function with example usage: kvo(high, low, close, volume, fast, slow, signal, mamode, drift, offset) and returns: df