class_docstr: A stream operator that computes an exponential weighted moving average
  on a given float stream.
  
  Parameters
  ----------
  alpha : float
      The smoothing factor :math:`\alpha` directly,
      :math:`0 < \alpha \leq 1`.
  adjust : bool
      Divide by decaying adjustment factor in beginning periods to account
      for imbalance in relative weightings (viewing EWMA as a moving average).
  ignore_na : bool
      Ignore missing values when calculating weights.
  min_periods : int
      Minimum number of observations in window required to have a value
      (otherwise result is NA).
  bias : bool
      Use a standard estimation bias correction
class_docstr_tok: ["A","stream","operator","that","computes","an","exponential","weighted","moving","average","on","a","given","float","stream",".","Parameters","--","--","--","--","--","alpha",":","float","The","smoothing","factor",":","math",":","`","\\alpha","`","directly",",",":","math",":","`","0","<","\\alpha","\\leq","1","`",".","adjust",":","bool","Divide","by","decaying","adjustment","factor","in","beginning","periods","to","account","for","imbalance","in","relative","weightings","(","viewing","EWMA","as","a","moving","average",")",".","ignore_na",":","bool","Ignore","missing","values","when","calculating","weights",".","min_periods",":","int","Minimum","number","of","observations","in","window","required","to","have","a","value","(","otherwise","result","is","NA",")",".","bias",":","bool","Use","a","standard","estimation","bias","correction"]
code: def __init__(
      self,
      alpha: float,
      adjust: bool,
      ignore_na: bool,
      min_periods: int,
      bias: bool,
  ) -> None:
      super().__init__()
      self.alpha = alpha
      self.adjust = adjust
      self.ignore_na = ignore_na
      self.min_periods = min_periods
      self.bias = bias
  
      self.i = 0
      self.n = 0
  
      self.minp = max(self.min_periods, 1)
  
      self.avg = None
      self.factor = 1 - alpha
      self.new_wt = 1 if self.adjust else self.alpha
      self.old_wt = 1
  
      self.mean_x = None
      self.mean_y = None
  
      self.cov = 0
      self.sum_wt = 1
      self.sum_wt2 = 1
      self.old_wt = 1
  
imports: from typing import List, Tuple
  import numpy
  from tensortrade.feed.core.base import Stream
  from tensortrade.feed.api.float import Float
label_desc: Use image node_id 1 to create a new ExponentialWeightedMovingCovariance object from inherited base classes: Stream with example: obj = ExponentialWeightedMovingCovariance(alpha, adjust, ignore_na, min_periods, bias)