code: def zlma(series, window=20, min_periods=None, kind="ema"):
      
      min_periods = window if min_periods is None else min_periods
  
      lag = (window - 1) // 2
      series = 2 * series - series.shift(lag)
      if kind in ['ewm', 'ema']:
          return wma(series, lag, min_periods)
      elif kind == "hma":
          return hma(series, lag, min_periods)
      return sma(series, lag, min_periods)
docs: John Ehlers' Zero lag (exponential) moving average
      https://en.wikipedia.org/wiki/Zero_lag_exponential_moving_average