
    iV                         S SK Jr  S SKJrJr  S SKJrJrJr  S SK	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\S\4S jjrg)    )isnan)	DataFrameSeries)DictLikeIntIntFloat)v_mamodev_offsetv_pos_defaultv_seriesv_tradingview)atrNhighlowclosepxqtvmodemamodeoffsetkwargsreturnc	                    [        U5      n
[        US5      n[        U[        5      (       a  US:  a  [        U5      OUSL a  SOSn[        U[        5      (       a  US:  a  [	        U5      OUSL a  SOSnX5-   n[        X5      n [        X5      n[        X+5      nU b  Ub  Uc  gU
(       a  [        US	5      O[        US
5      n[        U5      n[        XX#US9nUb  [        [        U5      5      (       a  gU R                  U5      R                  5       XL-  -
  nUR                  U5      R                  5       nUR                  U5      R                  5       XL-  -   nUR                  U5      R                  5       nUS:w  a"  UR                  U5      nUR                  U5      nSU	;   a&  UR                  U	S   SS9  UR                  U	S   SS9  SU SU SU 3nSU 3Ul        SU 3Ul        S=Ul        Ul        UR                   UUR                   U0n[%        UUR&                  S9nSU 3Ul        UR"                  Ul        U$ )a  Chande Kroll Stop

This indicator, by Tushar Chande and Stanley Kroll, attempts to identify
trends with long and short stops.

Sources:
    * "The New Technical Trader", Wiley 1st ed. ISBN 9780471597803, page 95
    * [multicharts](https://www.multicharts.com/discussion/viewtopic.php?t=48914)

Parameters:
    close (Series): ```close``` Series
    p (int): ATR and first stop period; see Note.
        Default: ```10``` for both modes
    x (float): ATR scalar; see Note. Default: ```1``` or ```3```
    q (int): Second stop period; see Note. Default: ```9``` or ```20```
    tvmode (bool): Trading View mode. Default: ```True```
    mamode (str): See ```help(ta.ma)```. Default: ```None```
    offset (int): Post shift. Default: ```0```

Other Parameters:
    fillna (value): ```pd.DataFrame.fillna(value)```

Returns:
    (DataFrame): 2 columns

Note: Book vs TradingView Defaults
    * Book: ```p=10, x=3, q=20, ma="sma"```
    * Trading View: ```p=10, x=1, q=9,  ma="rma"```

   r   T      	      Nrmasma)r   r   r   lengthr   fillna)inplace_CKSPlCKSPstrend)indexCKSP)r   r   
isinstancefloatintr   r	   r
   r   allr   rollingmaxminshiftr#   namecategoryr   r)   )r   r   r   r   r   r   r   r   r   r   mode_tv_lengthatr_
long_stop_	long_stopshort_stop_
short_stop_propsdatadfs                       O/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/trend/cksp.pyckspr@      s9   H F#GaAq%((QUaVt^QRAQ&&1q5A6T>arAeGD"D
3
 CU$E|s{em(/Xfe$Xfe5LFfF DHD|s5;''a$$&1J""1%))+I++a.$$&1K$$Q'++-J {OOF+	%%f-
 6)48&*D9 1QCq_FVH%INfX&JO/66I,NNIz
CD	4u{{	+BVHoBG$$BKI    )NNNNNN)numpyr   pandasr   r   pandas_ta._typingr   r   r   pandas_ta.utilsr	   r
   r   r   r   pandas_ta.volatilityr   boolstrr@    rA   r?   <module>rJ      s     $ 5 5  % 15'+	U
UU&,U
UU*-U U "%U 	U #+	U
 UrA   