
    iW                         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  S SKJrJr  S SKJrJrJrJrJrJrJr  S SKJrJr  SS	KJr        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)emalinregsma)
decreasing
increasing)simplify_columnsunsigned_differencesv_boolv_mamodev_offsetv_pos_defaultv_series)bbandskc   )momNhighlowclose	bb_lengthbb_std	kc_length	kc_scalar
mom_length
mom_smoothuse_trmamodeprenanoffsetkwargsreturnc           
      f
   [        US5      n[        US5      n[        US5      n[        US5      n[        X5Xx5      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S	5      n[        U5      nUR                  S
S5      n	UR                  SS5      nUR                  SS	5      nUR                  SS	5      n[        X#XJS9n[        XX%UXS9n[        U5      Ul
        [        U5      Ul
        U(       ad  U R                  U5      R                  5       nUR                  U5      R                  5       nSSUU-   -  UR                  -   -  n[        UU-
  US9nO2[        X'S9nU
R!                  5       S:X  a  [#        UUS9nO
[%        UUS9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  aD  UR+                  U5      nUR+                  U5      nUR+                  U5      nUR+                  U5      nSU;   aL  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 3-  nUU(       a  SOS-  nSU 3Ul        U(       a?  UR1                  [2        5      nUR1                  [2        5      nUR1                  [2        5      nU(       a)  [        X55      S-
  n[4        USU& [4        USU& [4        USU& UR.                  USUSUSU0n[7        UUR8                  S 9nUR.                  Ul        S!=Ul        Ul        U(       Gan  UUS:     n UUS:     n![=        U SS"9u  n"n#[=        U!SS"9u  n$n%U"U-  n"U#U-  n#U%U-  n%U$U-  n$U"R?                  S[4        SS9  U#R?                  S[4        SS9  U%R?                  S[4        SS9  U$R?                  S[4        SS9  U[A        U5      -  n&U[C        U5      -  n'U&R?                  S[4        SS9  U'R?                  S[4        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

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

Sources:
    * "Mastering the Trade" (chapter 11), John Carter
    * [thinkorswim](https://tlc.thinkorswim.com/center/reference/Tech-Indicators/studies-library/T-U/TTM-Squeeze)
    * [tradestation](https://tradestation.tradingappstore.com/products/TTMSqueeze)
    * [tradingview](https://www.tradingview.com/scripts/lazybear/)

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 (float): KC scalar. Default: ```1.5```
    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```
    lazybear (value): LazyBear's TradingView. Default: ```False```
    detailed (value): Extra detailed. Default: ```False```
    fillna (value): ```pd.DataFrame.fillna(value)```

Returns:
    (DataFrame):
        * Default: 4 columns
        * Detailed: 10 columns

Note: Volatility
    * Increasing: ```kc``` and ```bbands``` difference increases
    * Decreasing: ```kc``` and ```bbands```  difference decreases
         r   Ng       @g      ?r   FtrTasintdetailedlazybear)lengthstdr#   )r0   scalarr#   r,   g      ?)r0   r	   r   fillna)inplace hlr__LBSQZ   SQZ_ONSQZ_OFFSQZ_NO)indexmomentum)r-   SQZ_INCSQZ_DECSQZ_PINCSQZ_PDECSQZ_NDECSQZ_NINC)"r   maxr   r   r   r   popr   r   r   columnsrollingminbr
   r   lowerr	   r   lushiftr3   nameastypeintr   r   r>   categoryr   replacer   r   )(r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   _lengthr-   r.   r/   bbdkchhighest_high
lowest_lowavg_squeezemomo
squeeze_onsqueeze_off
no_squeeze_props	nanlengthdatadfpos_squeezeneg_squeezepos_incpos_decneg_incneg_decsqz_incsqz_decs(                                           U/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/momentum/squeeze.pyr[   r[      ss   f i,Ii,Iz2.Jz1-J)
?!CGD"D
3
 CU$E|s{em63'Fi-Ife$FFE"FfFZZd#FJJw%Ezz*e,Hzz*e,H f
DC
59C #3'CK"3'CK||I.224[[+//1
c\J67#%%?@i8 5,<<>U"$z2G$z2G %%#%%-CEECEEM2J55355=SUUSUU]3K|+J {--'%%f-
!''/%%f-
 6vh'6&*D96(+T:&*D9 RuF
)AfXQyk9+>>F
xeR'F>GL&&s+
!((-&&s+
	-1	!$
:I"%JY!$
:I 	g
:
K
:	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: W W!X!X!X!XI    )
NNNNNNNNNN)numpyr   pandasr   r   pandas_ta._typingr   r   r   pandas_ta.overlapr	   r
   r   pandas_ta.trendr   r   pandas_ta.utilsr   r   r   r   r   r   r   pandas_ta.volatilityr   r   r   boolstrr[    rm   rl   <module>rx      s     $ 5 5 . . 2   ,  /315.2'+x
xx&,xx#+x x '/x 	x ),	x
 x
 "%x x x #+x xrm   