
    i                     v    S SK Jr  S SKJr  S SKJrJr  S SKJr  S SK	J
r
JrJr    SS\S\S	\S
\S\S\4S jjrg)    )sqrt)Series)DictLikeInt)sma)v_offsetv_pos_defaultv_seriesNcloselengthscalaroffsetkwargsreturnc                    [        US5      n[        US5      n[        U SU-  S-
  5      n U c  g[        U5      nU R                  U5      R	                  5       nX U-
  -  U-  nXf-  nUR                  SS5      nU(       a  [        Xq5      n	OUR                  U5      R                  5       n	[        X-  5      n
US:w  a  U
R                  U5      n
S	U;   a  U
R                  US	   S
S9  SU(       d  SOS SU 3U
l        SU
l        U
$ )a  Ulcer Index

This indicator, by Peter Martin, attempts to quantify downside volatility
with a Quadratic Mean.

Sources:
    * [tangotools](http://www.tangotools.com/ui/ui.htm)
    * [tradingtechnologies](https://library.tradingtechnologies.com/trade/chrt-ti-ulcer-index.html)
    * [wikipedia](https://en.wikipedia.org/wiki/Ulcer_index)

Parameters:
    close (Series): ```close``` Series
    length (int): The period. Default: ```14```
    scalar (float): Bands scalar. Default: ```100```
    offset (int): Post shift. Default: ```0```

Other Parameters:
    everget (value): Use Evergets' TradingView SMA.
        Default: ```False```
    fillna (value): ```pd.DataFrame.fillna(value)```

Returns:
    (Series): 1 column
   d         NevergetFr   fillnaT)inplaceUI e_
volatility)r	   r
   r   rollingmaxpopr   sumr   shiftr   namecategory)r   r   r   r   r   highest_closedownsided2r   _uiuis              R/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/volatility/ui.pyr)   r)   
   s   : 62&F63'FUAJN+E}fF MM&)--/M./-?H		BjjE*G"ojj $$&	cl	B {XXf 6
		&"D	1 W2#.ax8BGBKI    )NNN)numpyr   pandasr   pandas_ta._typingr   r   pandas_ta.overlapr   pandas_ta.utilsr   r	   r
   r)    r+   r*   <module>r2      sV      + ! = =
 6:???/2??"*? ?r+   