parameters: (
          self,
          n: int,
          dev: float,
          array: bool = False
      )
return_statement: return up, down
docstring: Keltner Channel.
docstring_summary: Keltner Channel.
docstring_tokens: Keltner Channel .
function: def keltner(
          self,
          n: int,
          dev: float,
          array: bool = False
      ) -> Union[
          Tuple[np.ndarray, np.ndarray],
          Tuple[float, float]
      ]:
          """
          Keltner Channel.
          """
          mid = self.sma(n, array)
          atr = self.atr(n, array)
  
          up = mid + atr * dev
          down = mid - atr * dev
  
          return up, down
function_tokens: def keltner ( self , n : int , dev : float , array : bool = False ) -> Union [ Tuple [ np . ndarray , np . ndarray ] , Tuple [ float , float ] ] : mid = self . sma ( n , array ) atr = self . atr ( n , array ) up = mid + atr * dev down = mid - atr * dev return up , down