
    i               #           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
  S SKJr  S SKJrJr  S SKJrJrJrJrJrJrJrJr  S SKJrJr         SS
\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\4"S jjrg	)    )nan)	DataFrameSeries)DictLikeIntIntFloat)ma)mom)
decreasing
increasing)simplify_columnsunsigned_differencesv_boolv_mamodev_offsetv_pos_defaultv_scalarv_series)bbandskcNhighlowclose	bb_lengthbb_std	kc_lengthkc_scalar_narrowkc_scalar_normalkc_scalar_wide
mom_length
mom_smoothuse_trmamodeprenanoffsetkwargsreturnc                    [        US5      n[        US5      n[        U	S5      n	[        U
S5      n
[        X5X5      S-   n[        U U5      n [        UU5      n[        UU5      nU b  Ub  Uc  g[        US5      n[        US5      n[        US5      n[	        US5      nX:  =(       a    Xv:  nU(       d  g[        US	5      n[        US
5      n[        U5      nUR                  SS5      nUR                  SS5      nUR                  SS5      n[        X#XLS9n[        XX%UXS9n[        XX%UXS9n[        XX%UXS9n[        U5      Ul        [        U5      Ul        [        U5      Ul        [        U5      Ul        [        X)S9n[        UUU
S9nUR                  UR                  :  UR                  UR                  :  -  nUR                  UR                  :  UR                  UR                  :  -  nUR                  UR                  :  UR                  UR                  :  -  nUR                  UR                  :  UR                  UR                  :  -  nU) U) -  nUS:w  af  UR!                  U5      nUR!                  U5      nUR!                  U5      nUR!                  U5      nUR!                  U5      nUR!                  U5      nSU;   ar  UR#                  US   SS9  UR#                  US   SS9  UR#                  US   SS9  UR#                  US   SS9  UR#                  US   SS9  UR#                  US   SS9  U(       a  SOSnUSU SU SU SU SU SU 3-  nSU 3Ul        U(       ai  UR'                  [(        5      nUR'                  [(        5      nUR'                  [(        5      nUR'                  [(        5      nUR'                  [(        5      nU(       a;  [        X55      S-
  n [*        USU & [*        USU & [*        USU & [*        USU & [*        USU & UR$                  USUSUSUSUSU0n![-        U!UR.                  S9n"UR$                  U"l        S=U"l        Ul        U(       Gan  UUS:     n#UUS:     n$[3        U#SS 9u  n%n&[3        U$SS 9u  n'n(U%U-  n%U&U-  n&U(U-  n(U'U-  n'U%R5                  S[*        SS9  U&R5                  S[*        SS9  U(R5                  S[*        SS9  U'R5                  S[*        SS9  U[7        U5      -  n)U[9        U5      -  n*U)R5                  S[*        SS9  U*R5                  S[*        SS9  SU;   ar  U)R#                  US   SS9  U*R#                  US   SS9  U%R#                  US   SS9  U&R#                  US   SS9  U(R#                  US   SS9  U'R#                  US   SS9  U)U"S!'   U*U"S"'   U%U"S#'   U&U"S$'   U(U"S%'   U'U"S&'   U"$ )'a  Squeeze Pro

This indicator, based on John Carter's "TTM Squeeze" indicator, attempts
identify momentum using volatility with additional details.

Sources:
    * [usethinkscript](https://usethinkscript.com/threads/john-carters-squeeze-pro-indicator-for-thinkorswim-free.4021/)
    * [tradingview](https://www.tradingview.com/script/TAAt6eRX-Squeeze-PRO-Indicator-Makit0/)

Parameters:
    high (Series): ```high``` Series
    low (Series): ```low``` Series
    close (Series): ```close``` Series
    bb_length (int): BB period. Default: ```20```
    bb_std (float): BB Std. Dev. Default: ```2```
    kc_length (int): KC period. Default: ```20```
    kc_scalar_normal (float): Keltner Channel scalar for normal channel.
        Default: ```1.5```
    kc_scalar_narrow (float): Narrow channel KC scalar. Default: ```1```
    kc_scalar_wide (float): Wide channel KC scalar. Default: ```2```
    mom_length (int): Momentum Period. Default: ```12```
    mom_smooth (int): Momentum Smoothing period. Default: ```6```
    mamode (str): One of: "ema" or "sma". Default: ```"sma"```
    prenan (bool): Apply prenans. Default: ```False```
    offset (int): Post shift. Default: ```0```

Other Parameters:
    tr (value): Use True Range for Keltner Channels.
        Default: ```True```
    asint (bool): Returns as ```Int```. Default: ```True```
    mamode (value): Which MA to use. Default: ```"sma"```
    detailed (value): Extra detailed. Default: ```False```
    fillna (value): ```pd.DataFrame.fillna(value)```

Returns:
    (DataFrame): 6 columns (_default_) or 12 columns if ```detailed=True```

Warning:
    May be depreciated in the future and combined with ```squeeze```.
            Ng      ?   Fg       @smatrTasintdetailed)lengthstdr#   )r2   scalarr#   r/   )r2   r   fillna)inplace hlr_SQZPROSQZPRO_ON_WIDESQZPRO_ON_NORMALSQZPRO_ON_NARROW
SQZPRO_OFF	SQZPRO_NO)indexmomentum)r0   
SQZPRO_INC
SQZPRO_DECSQZPRO_PINCSQZPRO_PDECSQZPRO_NDECSQZPRO_NINC)r   maxr   r   r   r   r   popr   r   r   columnsr
   r	   lushiftr5   nameastypeintr   r   r@   categoryr   replacer   r   )+r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   _lengthvalid_kc_scalerr0   r1   bbdkch_wide
kch_normal
kch_narrowmomosqueezesqueeze_on_widesqueeze_on_normalsqueeze_on_narrowsqueeze_off_wide
no_squeeze_props	nanlengthdatadfpos_squeezeneg_squeezepos_incpos_decneg_incneg_decsqz_incsqz_decs+                                              Y/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/momentum/squeeze_pro.pysqueeze_prorm      so   f i,Ii,Iz2.Jz1-J)
?!CGD'"D
3
 CUG$E|s{em 0!4 0#6na0NFE"F$7 0/  63'Ffe$FfFZZd#FJJw%Ezz*e,H f
DC5>H 53CJ 53CJ #3'CK'1H)*5J)*5Ju(Dj1G uuxzz)ceehjj.@AO-#%%*,,2FG-#%%*,,2FG

*suuxzz/AB!!%5$55J {--')//7-33F;-33F;+11&9%%f-
 6vh'6vh/>  !14 @  !14 @x 0$?&*D9 RuF
)AfXQyk>2B!DTCUUVWgVhiiFF8$GL)005-44S9-44S9+2237&&s+
	-1	&)
#(+*9%(+*9%'*)$!$
:I 	g
?
.
.
'
jD 
4u{{	+BllBG%//BK'" gl+gk*/4H/4H77773-3-3-3-Jw//Jw//3-3- vNN6(+TN:NN6(+TN:NN6(+TN:NN6(+TN:NN6(+TN:NN6(+TN:#Z#Z$[$[$[$[I    )NNNNNNNNNNNN)numpyr   pandasr   r   pandas_ta._typingr   r   r   pandas_ta.mar	   pandas_ta.momentumr
   pandas_ta.trendr   r   pandas_ta.utilsr   r   r   r   r   r   r   r   pandas_ta.volatilityr   r   boolstrrm    rn   rl   <module>rz      s     $ 5 5  " 2	 	 	 , /38<BF.2'+H
HH&,HH#+H H .6H 	H 8@	H
 H
 ),H H "%H H H #+H Hrn   