
    i
                         S SK JrJr  S SKJrJrJr  S SKJr  S SK	J
r
JrJrJrJrJr  SSKJr     SS\S	\S
\S\S\S\S\S\S\S\4S jjrg)    )	DataFrameSeries)DictLikeIntIntFloat)ma)high_low_rangev_boolv_mamodev_offsetv_pos_defaultv_series   )
true_rangeNhighlowcloselengthscalartrmamodeoffsetkwargsreturnc                    [        US5      nUS-   n	[        X	5      n [        X5      n[        X)5      nU b  Ub  Uc  g[        US5      n[        US5      n[        US5      n[	        U5      nU(       a  [        XU5      O
[        X5      n
[        XbUS9n[        XjUS9nXU-  -
  nXU-  -   nUS:w  a3  UR                  U5      nUR                  U5      nUR                  U5      nS	U;   a9  UR                  US	   SS
9  UR                  US	   SS
9  UR                  US	   SS
9  [        U5      (       a  UR                  5       S   OS SU SU 3nSU 3Ul        SU 3Ul        SU 3Ul        S=Ul        =Ul        Ul        UR                  XR                  XR                  U0n[        UUR                  S9nSU 3Ul        UR                  Ul        U$ )a  Keltner Channels

This indicator attempts to identify volatility similarily to
Bollinger Bands and Donchian Channels.

Sources:
    * [tradingview](https://www.tradingview.com/wiki/Keltner_Channels_(KC))

Parameters:
    high (Series): ```high``` Series
    low (Series): ```low``` Series
    close (Series): ```close``` Series
    length (int): The period. Default: ```20```
    scalar (float): Band scalar. Default: ```2```
    mamode (str): See ```help(ta.ma)```. Default: ```"ema"```
    offset (int): Post shift. Default: ```0```

Other Parameters:
    tr (bool): Use True Range calculation. Otherwise use ```high - low```
        for range computation. Default: ```True```
    fillna (value): ```pd.DataFrame.fillna(value)```

Returns:
    (DataFrame): 3 columns
   r   N   Tema)r   r   fillna)inplace _KCLKCBKCU
volatility)indexKC)r   r   r
   r   r   r   r	   r   shiftr   lenlowernamecategoryr   r'   )r   r   r   r   r   r   r   r   r   _lengthrange_basisbandr+   upper_propsdatadfs                     R/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/volatility/kc.pykcr7      s   @ 62&FqjGD"D
3
 CU$E|s{em61%F	D	Bfe$FfF .0Z5)^D5NFvV,EfV,DTM!ETM!E {F#F#F# 6VH%t4VH%t4VH%t4 &)[[q!b96(!F8LFvhEJvhEJvhEJ7CCENCU^enJJzz5**eDD	4u{{	+B6(mBG..BKI    )NNNNN)pandasr   r   pandas_ta._typingr   r   r   pandas_ta.mar   pandas_ta.utilsr	   r
   r   r   r   r   r   boolstrr7    r8   r6   <module>r@      s    $ 5 5   # ,0#'	N
NN&,NN (N 	N !N 	N #+	N
 Nr8   