
    iZ                        S SK Jr  S SKJrJr  S SKJr  S SKJr  S SK	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  S SKJr  S SK7  S SK7  S\R6                  l        \" S5       " S S\5      5       rg)    )	dataclass)	cpu_countPool)Path)perf_counter)simplefilter)loglog10ndarray)register_dataframe_accessor)PerformanceWarning)	DataFrameSeries)options)tqdm)*Ttac                   	   \ rS rSrSrSr\" 5       rSr\	" 5       r
\S   (       a  SOSrSr\" \SS9rS	rS
\4S jr  SS\S\S\S\4S jjr\S\4S j5       r\R2                  S\SS4S j5       r\S\4S j5       r\R2                  S\SS4S j5       r\S\4S j5       r\R2                  S\SS4S j5       r\S\4S j5       r\R2                  S\SS4S j5       r SS\S\S\4S jjr  SS\S\S\4S jjr!S  r"S!\#\-  S-  4S" jr$S\S\%4S# jr&S$\'4S% jr(S\#\	-  S\S\#\	-  4S& jr)S'\*S\'4S( jr+  SS)\S*\,S+\S,\S-\S\	4S. jjr-S\.4S/ jr/S0\S1\0\%-  S\1S-  4S2 jr2S\4S3 jr3SS4\SS\4-  4S5 jjr5SS6\S7\.S\4\.-  4S8 jjr6S\4S9 jr7SS: jr8S'\*S\S\94S; jr:   SS<\S=\S>\S?\;S@\<S\S\4SA jjr=SSB jr>SS\4SC jjr?SSD jr@SSE jrASSF jrBSSG jrCSSH jrDSSI jrESSJ jrFSSK jrGSSL jrHSSM jrISSN jrJSSO jrKSSP jrLSSQ jrMSSR jrNSSS jrOSST jrPSSU jrQSSV jrRSSW jrSSSX jrTSSY jrUSSZ jrVSS[ jrWSS\ jrXSS] jrYSS^ jrZSS_ jr[SS` jr\SSa jr]SSb jr^SSc jr_SSd jr`SSe jraSSf jrbSSg jrcSSh jrdSSi jreSSj jrfSSk jrgSSl jrhSSm jriSSn jrjSSo jrkSSp jrlSSq jrmSSr jrnSSs jroSSt jrpSSu jrqSSv jrrSSw jrsSSx jrtSSy jruSSz jrvSS{ jrwSS| jrxSS} jrySS~ jrzSS jr{SS jr|SS jr}SS jr~SS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrS rSS jrSS jrSS jrSS jrSS jrSrg)AnalysisIndicators   a  Pandas DataFrame Extension: "ta"

The "ta" extension simplifies the processing of concatenating
Technical Analysis indicators onto the existing Pandas DataFrame.
To do so, this extension assumes that the DataFrame includes a DateTime
oriented index and columns named: "open", "high", "low", "close", "volume".

Returns:
    (Series | DataFrame | None): See Notes

Features:
    * Attributes and methods for _ohlcv_ data.
    * Indicator Wrappers for each. Simplifies
        ```sma = ta.sma(df["Close"]); df["sma"] = sma``` to ```df.ta.sma(append=True)```
    * A ```study``` method, that simplifies processing multiple indicators
        with or without multiprocessing. See: ```help(ta.study)```

See Also:
    * Pandas TA [DataFrame Extension](http://127.0.0.1:8000/docs/api/dataframe/) Documention
    * [Pandas DataFrame Accessor](https://pandas.pydata.org/docs/reference/api/pandas.api.extensions.register_dataframe_accessor.html#pandas.api.extensions.register_dataframe_accessor)

Notes:
    Most Indicators will return a Pandas Series. Others like MACD,
    BBANDS, KC, et al will return a Pandas DataFrame. Ichimoku on the
    other hand will return two DataFrames, the Ichimoku DataFrame for
    the known period and a Span DataFrame for the future of the Span values.

    Documentation is formatted for [mkdocs](https://www.mkdocs.org/) and [mkdocs-docstrings](https://mkdocstrings.github.io/).

Tip:
    Remember to adjust the ```cores``` for maximum speed!
NyfinanceyfNYSET	to_stringyearsobjc                 X    [        U5        Xl        [        U R                  SS9U l        g )NTr   )v_dataframe_dfget_time	_exchange	_last_run)selfr   s     I/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/core.py__init__AnalysisIndicators.__init__D   s!    C!$..DA    kindtimedversionkwargsc                    U(       a  [        SU 35         [        U[        5      (       a  UR                  5       n[	        X5      nU(       a
  [        5       nU" S0 UD6nU(       a+  [        W5      Ul        [        SU SUR                   35        [        U R                  SS9U l
        U$ U R                  5         g ! [         a     g f = f)N-Pandas TA - Technical Analysis Indicators - vz[+] : Tr    )print
isinstancestrlowergetattrr   
final_timer*   r!   exchanger#   helpBaseException)r$   r)   r*   r+   r,   fnstimeresults           r%   __call__AnalysisIndicators.__call__K   s     A'KL	$$$zz|
 T((NE f#-e#4FLDb78!)$--4!H		 		s   BB> -B> >
C
Creturnc                     U R                   $ )zGet/Set the **adjusted_close** column.

Parameters:
    name (str): The column ```name```, to set as the *adjusted*
        column. Default: ```None```

Returns:
    (str): The *adjusted* column.
)	_adjustedr$   s    r%   adjustedAnalysisIndicators.adjustedo   s     ~~r(   namec                 P    Ub  [        U[        5      (       a  Xl        g S U l        g N)r2   r3   rA   r$   rE   s     r%   rC   rD   }   s     
4 5 5!N!DNr(   c                     U R                   $ )aB  Manage the number of ```cpus``` to utilize for multiprocessing.

Parameters:
    cpus (Int): Number of ```cores``` Default: ```cpu_count()```

Returns:
    (Int): The number of ```cores``` set for multiprocessing

!!! tip "Disable multiprocessing"
    Set: ```df.ta.cores = 0```

!!! warning "Multiprocessing caveats"
    * Multiprocessing **will not** work when using the following keys: ```"col_names"```.
    * Multiprocessing **may not** work or complete as expected when indicator _chaining_.
        * Chained indicators use non-default, _ohlcv_, sources as input Series.
)_coresrB   s    r%   coresAnalysisIndicators.cores   s    $ {{r(   cpusc                     [        5       nUb8  [        U[        5      (       a#  SUs=::  a  U::  a  O  O[        U5      OUU l        g X l        g )Nr   )r   r2   intrJ   )r$   rM   _cpuss      r%   rK   rL      s9    
4 5 5'(D'9E'9#d)uDKKr(   c                     U R                   $ )zA label property of the major _exchange_ the _ohlcv_ data is
associated with.

Parameters:
    value (str):  The ```exchange```.  Must be one of the following
        ```ta.EXCHANGE_TZ.keys()```. Default: ```"NYSE"```

Returns:
    (str): Exchange label
)r"   rB   s    r%   r7   AnalysisIndicators.exchange   s     ~~r(   valuec                 v    Ub6  [        U[        5      (       a   U[        R                  5       ;   a  Xl        g g g g rG   )r2   r3   EXCHANGE_TZkeysr"   r$   rS   s     r%   r7   rR      s5    E3!7!7E[EUEUEW<W"N =X!7r(   c                 B    [        U R                  U R                  5      $ )zUseful for annualization.

Parameters:
    value (str): ```"months", "weeks", "days", "hours", "minutes",
        "seconds"```. Default: ```"years"```

Returns:
    (float): Time elapsed between the first and last DateTimeIndex
)
total_timer    _time_rangerB   s    r%   
time_rangeAnalysisIndicators.time_range   s     $((D$4$455r(   c                 P    Ub  [        U[        5      (       a  Xl        g SU l        g )Nr   )r2   r3   rZ   rW   s     r%   r[   r\      s"    E3!7!7$&Dr(   r<   c                 "   Uc  gS=p4UR                  SS5      nSU;   a	  US    U 3nSU;   a	  U US    3n[        U[        5      (       a  X1R                  -   U-   Ul        gUR                   Vs/ s H
  ocU-   U-   PM     snUl        gs  snf )z.Add prefix and/or suffix to the result columnsN 	delimiter_prefixsuffix)
setdefaultr2   r   rE   columns)r$   r<   r,   rb   rc   r`   columns          r%   _add_prefix_suffix%AnalysisIndicators._add_prefix_suffix   s     >  F))+s;I6!"8,-i[96!%;vh'7&89&&))${{2V;IO!Xv6/F":!X!Xs   2Bc                 L   Uc  gSU;   a!  [        US   [        5      (       d	  US   4US'   U R                  n[        U[        5      (       Ga  [	        S[
        S9  S[        R                  l        SU;   a  [        US   [        5      (       a  [        US   5      [        UR                  5      :  a8  [        UR                  US   5       H  u  pEUR                  SS2U4   X5'   M     g[        S[        US   5       S[        UR                  5       S35        g[        UR                  5       H)  u  pgUR                  SS2U4   UR                  SS2U4'   M+     gSU;   a   [        US   [        5      (       a  US   S   OUR                   nXR                  SS2U4'   g)	z9Appends a Pandas Series or DataFrame columns to self._df.N	col_namesignore)actioncategoryz.[!] Not enough col_names were specified : got z, expected .r   )r2   tupler    r   r   r   
pd_optionsmodechained_assignmentlenre   ziplocr1   	enumerateilocrE   )r$   r<   r,   dfcolind_nameirf   s           r%   _appendAnalysisIndicators._append   s    >6& F;4G)O)O#)+#6"8F;XXfi((3EF15JOO. f$F;4G)O)Ovk*+s6>>/BB),V^^VK=P)Q'-zz!S&'9 *R J3vVaObKcJddopstz  uC  uC  qD  pE  EF  G  H!*6>>!:IA*0++ad*;BFF1v;' ";
 &(Z{8KU-S-S {#A&[[ 
 %+FF1x=!r(   c                     U R                   R                   Vs/ s H2  n[        U R                   U   R                  5       5      (       d  M0  UPM4     sn$ s  snf )z4Returns the columns in which all it's values are na.)r    re   allisna)r$   xs     r%   _check_na_columns$AnalysisIndicators._check_na_columns  s>    88++G+as488A;3C3C3E/F+GGGs   /AAseriesc                    U R                   nUc  g[        U[        5      (       a  U$ Uc  U R                  b  X R                     $ S$ [        U[        5      (       a  XR
                  ;   a  X!   $ UR
                  R                  R                  USS9n[        U5       VVs/ s H  u  pEU(       d  M  UPM     nnnSU S3nSR                  [        UR
                  5      5      n[        UR
                  5      (       a	  USU 3-  nOUS-  n[        U5      (       a  UR                  SS2US	   4   $ [        U5        ggs  snnf )
z=Attempts to get the correct series or 'column' and return it.NF)casez	[X] The 'z' column was not found in, r/   z the DataFramer   )r    r2   r   rC   r3   re   matchrv   joinlistrs   rw   r1   )	r$   r   rx   matchesr{   r   r   	NOT_FOUNDcolss	            r%   _get_columnAnalysisIndicators._get_column
  s#   XX:v ff%%M^(,(A2mm$KtK$$#z! **....vE.B'0'9?'9tqQ'9?'x/HI	yybjj!12rzz??I2dV$<I$-1A$AIu::771eAh;//)$' % @s   "E3Ec                 >    XR                  5       ;   a	  [        U   $ S$ )z'Returns indicators by Categorical name.N)
categoriesCategoryrH   s     r%   _indicators_by_category*AnalysisIndicators._indicators_by_category,  s    !%):!:x~DDr(   	argumentsc                 b    Uu  p#nUS:w  a  [        X5      " U0 UD6$ [        X5      " U0 UD6S   $ )z3Multiprocessing Worker to handle different Methods.ichimokur   )r5   )r$   r   methodargsr,   s        r%   
_mp_workerAnalysisIndicators._mp_worker1  sC    (fZ4($9&994($9&9!<<r(   c                    UR                  SS5      n[        U[        [        45      (       d  U(       a  [	        S5        U R
                  $ [        U[        5      (       a<  SU;   a6  US   b0  UR                  SS2US    Vs/ s H  n[        U5      PM     sn4   OUnU R                  " SSU0UD6  SU;   aC  [        US   [        5      (       a+  US   (       d  [	        U5        U$ U R                  " SSU0UD6  U$ s  snf )	zApplies any additional modifications to the DataFrame

* Applies prefixes and/or suffixes
* Appends the result to main DataFrame
verboseFz,[X] The result is not a Series or DataFrame.col_numbersNr<   appendr0   )popr2   r   r   r1   r    rw   rO   rg   boolr|   )r$   r<   r,   r   ns        r%   _post_process AnalysisIndicators._post_process;  s     **Y.&69"566DF88O fi00'}%1 A}0EF0E1A0EFFG 8>	  ##<6<V<6!j1A4&H&Hh' &M  LL99&9!  Gs   C>r   c                 >   SnSSSS.n[        U5      S:X  a  SUS'   X#4$ U R                  5       n[        US   [        5      (       a?  US   R	                  5       S:X  a  USso#S'   US   R	                  5       U;   a
  US   Sso#S'   [        US   [
        5      (       a}  US   nUR                  b  UR                  R	                  5       S:X  a
  USso#S'   X#4$ UR                  R	                  5       U;   a  UR                  Sso#S'   X#4$ UR                  Sso#S'   X#4$ )	z$Returns tuple: (name:str, mode:dict)AllF)r   rm   customr   Tr   rm   r   )rs   r   r2   r3   r4   Studyr   rE   )r$   r   rE   rq   _categoriesstudy_s         r%   _study_modeAnalysisIndicators._study_mode_  s5   %5At9>DK$ z! //+K$q'3''7==?e+(,d%Du+7==?k1-1!Wd*Dz*$q'5))a99$(9(9(;u(D(,d%Du+ z [[&&(K7-3[[$*Dz* z ,2;;(Dx.zr(   zeroindexkto_logsavec                    U R                  S5      nU R                  S5      nU R                  S5      nU R                  S5      n	[        US5      n[        US5      n[        US5      n[        US5      n[        US5      nX R                  R
                  S   :  a  U R                  R
                  S   S-
  nU(       ak  U(       a8  X`R                  S'   XpR                  S	'   XR                  S
'   XR                  S'   [        U5      n[        U5      n[        U5      n[        U	5      n	X6-  UR                  U   -  U R                  R                  SS2UR                  4'   X7-  UR                  U   -  U R                  R                  SS2UR                  4'   X8-  UR                  U   -  U R                  R                  SS2UR                  4'   X9-  U	R                  U   -  U R                  R                  SS2U	R                  4'   U(       a  U R                  R                  SS2UR                  4==   U-  ss'   U R                  R                  SS2UR                  4==   U-  ss'   U R                  R                  SS2UR                  4==   U-  ss'   U R                  R                  SS2U	R                  4==   U-  ss'   gg)aK  baseline

This method updates the DataFrame _ohlc_ values with a baseline
of ```k=1```. Useful for comparisons.

Parameters:
    zero (bool): Zero the _ohlc_ data.
    index (bool): Index to baseline at.
    k (IntFloat): Scaler.
    to_log (bool): Pre apply ```np.log```.
    save (bool): Preserve _ohlc_ when using ```to_log```.
openhighlowcloseFr      _open_high_low_closeN)
r   v_boolv_pos_defaultv_scalarr    shaper	   rw   ru   rE   )
r$   r   r   r   r   r   open_r   r   r   s
             r%   baselineAnalysisIndicators.baseline{  s2       ('u%  )dE"eQ'QN&dE"HHNN1%%HHNN1%)E$)!$(!#& %*"JEt9Dc(CJE()	EJJu4E(EQ_%'(x$))E2B'BQ^$&'g&?Q]#()	EJJu4E(EQ_%HHLLUZZ)Q.)HHLLTYY(A-(HHLLSXX'1,'HHLLUZZ)Q.)	 r(   c                 <    [        [        R                  5       5      $ )z[categories

List of categories.

Returns:
    (ListStr): List of the indicator categories.
)r   r   rV   rB   s    r%   r   AnalysisIndicators.categories  s     HMMO$$r(   r   valuesc                 &   [        U[        5      (       d  [        U[        5      (       ag  U(       aH  U H  nX0R                  U '   M     U R                  U R                  R                  [        U5      * S    $ U H  nU R                  U 	 M     gg)a  constants

Concatenate / Drop constant(s) to the DataFrame.

Parameters:
    append (bool): Concatenate if ```True```. Drop if ```False```.
        Default: ```None```
    values (Array): List/Numpy array of ```values``` to append/drop from
        the DataFrame.

Returns:
    (Series, DataFrame, None): Depends upon parameters.

See Also:
    * [TA DataFrame Constants](../support/how-to.md)
N)r2   r   r   r    re   rs   )r$   r   r   r   s       r%   	constantsAnalysisIndicators.constants  s|    " fg&&*VT*B*BA'(HHs$  xx 0 0#f+ ?@@AA3(   +Cr(   c                 ,    [        U R                  5      $ )zdatetime_ordered

DataFrame DateTime ordered?

Returns:
    (bool): ```True``` if the DataFrame is DateTime ordered,
        otherwise ```False```.
)v_datetime_orderedr    rB   s    r%   datetime_ordered#AnalysisIndicators.datetime_ordered  s     "$((++r(   sc                     [        U5      $ )zhelp

Help!

Parameters:
    s (str): String to search for. Default: ```""```

Returns:
    (None | TextIO): Opens web browser to relevant Pandas TA website
        page or prints all search keywords.
)r8   )r$   r   s     r%   r8   AnalysisIndicators.help  s     Awr(   as_listexcludec                    [        U[        5      (       a  [        U5      OSn/ n[        U[        5      (       a  [        U5      (       a  Un/ SQn/ SQn[        S [	        [        5       R                  5       5       5      nXE-   n[        U[        5      (       a  [        U5      S:  a  Xs-  nU Vs/ s H  oR                  U5      PM       nU(       a  U$ [        U5      n	S[         3n
U
 S3SpU	S:  ae  SSK	J
n  US	U	 S
SR                  U5       S3-  nX-  n[        S   (       a2  US[        U5       S
SR                  U5       S3-  nU[        U5      -  nUSU 3-  n[        U5        gs  snf )a   indicators

List indicators.

Parameters:
    as_list (bool): Return as a list. Default: ```False```
    exclude (ListStr): The passed in list will be excluded
        from the indicators list. Default: ```None```

Returns:
    (TextIO | ListStr): Prints list or returns a ```ListStr```.
F)r   r   r   r   r8   
indicatorslast_runreversestudytickerto_utc)rC   rK   r7   r[   c              3      #    U  H6  oR                  S 5      (       a  M  UR                  S 5      (       a  M2  Uv   M8     g7f)ra   N)
startswithendswith).0r   s     r%   	<genexpr>0AnalysisIndicators.indicators.<locals>.<genexpr>  s/     n)<ALLQTDUa^_^h^hil^maa)<s   A A 	A r   r.   
)ALL_PATTERNSz
Indicators and Utilities [z]:
    r   talibz
Candle Patterns [z*
Total Candles, Indicators and Utilities: N)r2   r   r   rs   dirr   r   remover+   pandas_ta.candle.cdl_patternr   r   Importsr1   )r$   r   r   user_excludeddf_ext_methodsta_propertiesta_indicatorsremovedr   indicator_countheaderr   _countr   s                 r%   r   AnalysisIndicators.indicators  sv    $.gt#<#<$w-%gt$$W#M

 nY[^^)<no !0 mT**s=/AA/E$G +22'Q		a	 '2  m,@	JhbM16QA//@S`IaHbbdeeA%Fw*3|+<*=XdiiP\F]E^^`aa#l++	:6(CCa# 	3s   1E/c                     U R                   $ )zllast_run

Detailed string of last run time.

Returns:
    (str): Detailed date and time of the lastest run.
)r#   rB   s    r%   r   AnalysisIndicators.last_run;  s     ~~r(   c                 n    U R                   R                  SSS2   R                  U R                   l        g)zZreverse

Reverse the DataFrame inplace.

Returns:
    (None): DataFrame reversed inplace.
N)r    rw   r   rB   s    r%   r   AnalysisIndicators.reverseF  s&     tt,22r(   c                 b   UR                  SS5      nUR                  SS5        UR                  SS5      nUR                  SU R                  5      nUR                  SU R                  5      nX`l        U R                  R                  S   n/ S	QnU R
                  " U6 u  pUR                  S
/ 5      n[        U[        5      (       a  [        U5      S:  a  U/nU
S   (       d
  U
S   (       a  X-  nU
S   (       aH  U R                  U	R                  5       5      nU Vs/ s H  oU;   d  M
  UR                  U5      PM       nOU
S   (       a|  [        US   S5      (       aJ  [        US   R                  [        5      (       a(  [        US   R                  U R                  5      U l        US   R                  nU H  nSUS'   M
     O'U
S   (       a  U R!                  SUS9nO[#        S5        gUR                  SS5      nU(       aP  [#        SU	 SU 35        U
S   (       d
  U
S   (       a+  SR%                  U5      n[#        S[        U5       SU 35        UR                  SS5      n/ nU R                  S:  a  SOSnSnU(       a
  ['        5       nU(       ae  U
S   (       a[  [        U Vs/ s H'  nSU;   d  M  [        US   [(        5      (       d  M%  SPM)     sn5      (       a  SOSnU(       a  Sn[#        S5        U(       GaF  [        U5      n[+        U R                  5       nUU:  a  US-
  nO US:  a  UnO[        [-        U5      5      S-   nU(       a*  [#        SU SU SU R                   S[/        5        S3	5        SnU
S   (       a  U Vs/ s H2  nUS    S!U;   a  [        US!   [(        5      (       a  US!   OS"0 UEUE4PM4     nnU(       a2  [1        UR3                  U R4                  UU5      [        U5      U-  S#9nOUR3                  U R4                  UU5      nOU Vs/ s H  nU[)        5       U4PM     nn[        U5      U-  nU(       aK  U(       a&  [1        UR7                  U R4                  UU5      US#9nOhUR7                  U R4                  UU5      nOJU(       a&  [1        UR9                  U R4                  UU5      US#9nOUR9                  U R4                  UU5      nUc  [#        S$U	 S%35         SSS5        gUR;                  5         UR%                  5         [=        U R>                  SS&9U l         SSS5        GOMU(       a  S'nU(       a  S(n[#        U5        U
S   (       a  U(       a\  [1        US)5      nU HI  nS!U;   a  [        US!   [(        5      (       a  US!   O	[)        5       n[C        U US    5      " U0 0 UEUED6  MK     OU HI  nS!U;   a  [        US!   [(        5      (       a  US!   O	[)        5       n[C        U US    5      " U0 0 UEUED6  MK     OsU(       a0  [1        US)5      nU H  n[C        U U5      " [)        5       0 UD6  M     O#U H  n[C        U U5      " [)        5       0 UD6  M     [=        U R>                  SS&9U l         U V s/ s H  n U RD                  " U 40 UD6PM       n U R                  R                  S   n!U!U-
  n"U(       a=  [#        S*[        U5       35        [#        S+U" 35        [#        S,U R@                   35        U(       aH  [G        W5      n#U"S:  a  ['        5       U-
  U"-  n$O['        5       U-
  n$[#        S-U# S.U" S/U$S0-  S1 S235        U(       a  U R                  $ gs  snf s  snf s  snf s  snf ! , (       d  f       GN= fs  sn f )3a#  study

Applies the ```ta``` listed in a [```Study```](studies.md).

Other Parameters:
    chunksize (int): Multiprocessing Pool chunksize.
        Default: ```df.ta.cores```
    cores (int): Number of Multiprocessing cores.
        Default: ```df.ta.cores```
    exclude (ListStr): List of indicator names. Default: ```[]```
    ordered (bool): Run ```ta``` in order. Default: ```True```
    returns (bool): Return the DataFrame. Default: ```False```
    timed (bool): Print the process time. Default: ```False```
    verbose (bool): More verbose output. Default: ```False```

Note: Multiprocessing
    Multiprocessing is **not** viable or efficient for some cases.
    Customize for production. See [Multiprocessing](https://docs.python.org/3.12/library/multiprocessing.html)
    for more information.
orderedTr   returnsF	chunksizerK   r   )long_run	short_runtsignalsxsignalsr   r   rm   r   r   )r   r   z[X] Study not available.Nr   z[+] Study: z
[i] Indicator arguments: r   z[i] Excluded[z]: r*   rj   zH[i] Multiprocessing is disabled (cores=0) when using custom "col_names".z[i] Multiprocessing z indicators with chunksize z and /z cpus.r)   paramsr0   )totalz[X] ta.study('z') has no results.r   z#[i] No multiprocessing. (cores = 0)z<[i] No multiprocessing support with the 'col_names' keyword.z[i] Progressz[i] Total indicators: z[i] Columns added: z[i] Last Run: z[i] Pandas TA Time: z for z columns (avg i  z2.4fz
 ms / col))$r   rd   rK   r    r   r   r2   r3   rs   r   r4   r   hasattrrO   minr   r   r1   r   r   ro   r   r
   r   r   mapr   imapimap_unorderedr   r!   r7   r#   r5   r   r6   )%r$   r   r,   all_orderedr   mp_chunksizerK   initial_column_countexcludedrE   rq   r   r   r   kwdsr   excluded_strr*   resultsuse_multiprocessinghas_col_namesr;   	_total_tapool
_chunksizeind	custom_ta
default_ta
tqdm_total_col_msgpbarr   rfinal_column_count_added_columnsftavgtds%                                        r%   r   AnalysisIndicators.studyQ  s4   * jjD1(D)**Y.zz+tzz:

7DJJ/
  $xx~~a0D %%t,
 

9b1mS))c-.@1.D*OM;$z*%H 
--djjl;B#+78aBw\RYYq\87(^tAw((ZQs-K-K a

;
aB!%X %[x@B,.**Y.Kv%@IJE{d:.#yy2c(m_C~FG

7E*&*jj1nd% NE4>%( * !# (21[>5(I b* & &T  
 &+#bdBIdjj!T  )+!-!1J!A%!-J!$U9%5!6!:J0;VWaVbbghlhrhrgsstu~  vA  uB  BH  I  J> "$	!% "$# F)1SZHW\=]=]Hce)3)&)" "$	  !% "&txxJ'W_bcl_mq{_{"|"&((4??Iz"RDF!GBS3"8BJ!G!$ZJ!>J""&*499T__jR\+]eo&pG&*iiZ&XG"&*4+>+>tPZ\f+goy&zG&*&9&9$//:Wa&bG?N4&0BCDU "!X 

		!)$--4!H] "!d @ !]HhH~l4D#2:c/jQTU]Q^`eFfFfXlqlsc&k2FP>O>O>OP  $  "2:c/jQTU]Q^`eFfFfXlqlsc&k2FP>O>O>OP  " l4D#c*EG>v>  $  "c*EG>v>  "!)$--4!H 3::'Q		A	(	(':!XX^^A.+.BB*3r7)45''789N4>>"234E"B!%%/>A$.(E.1APUX\P\]aObblmn88O O 8<*4!% "H7 "!Z 	;sW   !	^.^1
^?^^+A.^9^A^/^B?^9^"^,
^
^)r   periodintervalr   proxyc                 t   U R                   c  [        S5        g[        US5      n[        US5      n[        US5      n[        U[        5      (       a  UO0 n[        US5      nSu  pU R                   S:X  aE  UbB  S	SKn
U
R                  U5      nU(       a
  [        5       n	UR                  " SX#US
.UD6nXl
        OgU(       a7  [        U	5      Ul        [        SU UR                   SUR                   35        Xl        Ub*  [        U[        5      (       a  U R                   " U4SU0UD6  U R                  $ )a  ticker

Download Historical _ohlcv_ data as a Pandas DataFrame if _yfinance_
package is installed. It also can run a ```ta.Study``` afterwards.

Parameters:
    ticker (str): Any string for a ticker you would use
        with ```yfinance```. Default: ```"SPY"```
    period (str): See the yfinance ```history()``` method for
        more options. Default: ```"max"```
    interval (str): Default: ```"1d"```
    study (ta.Study | str): After downloading, apply ```Study```
        Default: ```None```
    proxy (dict): Proxy dictionary. Default: ```{}```
    timed (bool): Print download time to stdout. Default: ```False```

Returns:
    (DataFrame | None): _ohlcv_ ```df``` or ```None```

Tip: YFinance ```history``` parameters
    * [_yfinance_](https://ranaroussi.github.io/yfinance/index.html)
    * _yfinance_ [```history()```](https://github.com/ranaroussi/yfinance/blob/main/yfinance/scrapers/history.py)

Example:
    ```py
    import panadas as pd
    import pandas_ta as ta

    # Simple
    df = pd.DataFrame().ta.ticker("SPY", period="2y", timed=True)

    # Built In Study
    df = pd.DataFrame().ta.ticker("SPY", period="2y", study=ta.AllStudy, timed=True)
    ```
NzF[X] Please install yfinance to use this method. (pip install yfinance)SPYmax1dFNNr   r   )r  r  r  z	[+] yf | r/   r*   r0   )_dsr1   v_strr2   dictr   r   Tickerr   historyrE   r6   r*   r   r    r   r   )r$   r   r  r  r   r  r*   r,   rx   r;   r   yfts               r%   r   AnalysisIndicators.ticker  s!   P 88Z\vu%vu%4(#E400bue$	88t 2!))F#Clne %B G!%(BHIfXbhhZr"((<=E5!9!9JJu4E4V4xxr(   c                 8    [        U R                  5      U l        g)zVto_utc

Set the DataFrame index to UTC.

Returns:
    (None): Performs the operation.
N)r   r    rB   s    r%   r   AnalysisIndicators.to_utcX  s     $((#r(   c           
      N   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXEXgXS.UD6nU R                  " U40 UD6$ )Nr   r   r   r   )r   r   r   r   rE   offsetr0   )r   r   cdl_patternr   )	r$   rE   r.  r,   r   r   r   r   r<   s	            r%   r/  AnalysisIndicators.cdl_patterni  s      FF!;<

66 :;vzz%78  GW!=>n5PTngmn!!&3F33r(   c           
      N   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXEXgXS.UD6nU R                  " U40 UD6$ )Nr   r   r   r   )r   r   r   r   fullr.  r0   )r   r   cdl_zr   )	r$   r2  r.  r,   r   r   r   r   r<   s	            r%   r3  AnalysisIndicators.cdl_zq  s      FF!;<

66 :;vzz%78  GW!=>hU3$hagh!!&3F33r(   c           	      N   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SX4XVUS.UD6nU R                  " U40 UD6$ Nr   r   r   r   )r   r   r   r   r.  r0   )r   r   har   r$   r.  r,   r   r   r   r   r<   s           r%   r7  AnalysisIndicators.hay  s      FF!;<

66 :;vzz%78  GW!=>Z%ZSYZ!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXX4S.UD6nU R                  " U40 UD6$ )Nr   )r   lengthbarsr.  r0   )r   r   ebswr   )r$   r   r;  r<  r.  r,   r<   s          r%   r=  AnalysisIndicators.ebsw  sG      GW!=>UEtUfU!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXX4XVUS.UD6n	U R                  " U	40 UD6$ Nr   )r   r;  smoothalphapisqrt2r.  r0   )r   r   reflexr   
r$   r   r;  rA  rB  rC  rD  r.  r,   r<   s
             r%   rE  AnalysisIndicators.reflex  sN      GW!=>|e6SUkq|u{|!!&3F33r(   c           	          U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXUS.UD6nU R                  " U40 UD6$ Nr   r   )r   r   fastslowr.  r0   )r   r   aor   r$   rJ  rK  r.  r,   r   r   r<   s           r%   rL  AnalysisIndicators.ao  sd    

66 :;vzz%78VTVVvV!!&3F33r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ )Nr   )r   rJ  rK  mamoder.  r0   )r   r   apor   )r$   rJ  rK  rP  r.  r,   r   r<   s           r%   rQ  AnalysisIndicators.apo  sJ      GW!=>_5$f_X^_!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ Nr   )r   r;  rP  r.  r0   )r   r   biasr   r$   r;  rP  r.  r,   r   r<   s          r%   rU  AnalysisIndicators.bias  H      GW!=>YEYRXY!!&3F33r(   c           
      N   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXEXgXS.UD6nU R                  " U40 UD6$ )Nr   r   r   r   )r   r   r   r   
percentager.  r0   )r   r   bopr   )	r$   rZ  r.  r,   r   r   r   r   r<   s	            r%   r[  AnalysisIndicators.bop  s      FF!;<

66 :;vzz%78  GW!=>r5jrkqr!!&3F33r(   c                 P   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	[        SXgXXX4S.UD6n
U R                  " U
40 UD6$ )Nr   r   r   r   )r   r   r   r   r;  scalardriftr.  r0   )r   r   brarr   )r$   r;  r^  r_  r.  r,   r   r   r   r   r<   s              r%   r`  AnalysisIndicators.brar  s      FF!;<

66 :;vzz%78  GW!=>  HE#6hm  H  AG  H!!&3F33r(   c           
         U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXqX#S.UD6nU R                  " U40 UD6$ )Nr   r   r   )r   r   r   r;  cr.  r0   )r   r   ccir   )	r$   r;  rc  r.  r,   r   r   r   r<   s	            r%   rd  AnalysisIndicators.cci  s    

66 :;vzz%78  GW!=>b$uqb[ab!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ Nr   )r   r;  r.  r0   )r   r   cfor   r$   r;  r.  r,   r   r<   s         r%   rh  AnalysisIndicators.cfo  G      GW!=>I5I&I!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   cgr   ri  s         r%   rm  AnalysisIndicators.cg  sG      GW!=>H%vHH!!&3F33r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ Nr   )r   r;  r^  r_  r.  r0   )r   r   cmor   r$   r;  r^  r_  r.  r,   r   r<   s           r%   rq  AnalysisIndicators.cmo  K      GW!=>e5TZe^de!!&3F33r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ Nr   )r   r;  rJ  rK  r.  r0   )r   r   coppockr   r$   r;  rJ  rK  r.  r,   r   r<   s           r%   rw  AnalysisIndicators.coppock  sK      GW!=>cu$RXc\bc!!&3F33r(   c           
          U R                  UR                  SS5      5      n[        SXqX#XES.UD6nU R                  " U40 UD6$ )Nr   )r   
rsi_lengthstreak_lengthrank_lengthr_  r.  r0   )r   r   crsir   )	r$   r{  r|  r}  r_  r.  r,   r   r<   s	            r%   r~  AnalysisIndicators.crsi  sX      GW!=>  VEv{  V  OU  V!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   ctir   ri  s         r%   r  AnalysisIndicators.cti  rk  r(   c           	          U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXUS.UD6nU R                  " U40 UD6$ )Nr   r   )r   r   r_  rP  r.  r0   )r   r   dmr   )r$   r_  r.  rP  r,   r   r   r<   s           r%   r  AnalysisIndicators.dm  se    

66 :;vzz%78\e6\U[\!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ Nr   )r   r;  r_  r.  r0   )r   r   err   r$   r;  r_  r.  r,   r   r<   s          r%   r  AnalysisIndicators.er  sG      GW!=>U%eUfU!!&3F33r(   c           	         U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXEXaUS.UD6nU R                  " U40 UD6$ Nr   r   r   r   r   r   r;  r.  r0   )r   r   erir   r$   r;  r.  r,   r   r   r   r<   s           r%   r  AnalysisIndicators.eri      

66 :;vzz%78  GW!=>]$uF]V\]!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXX#XEUS.UD6n	U R                  " U	40 UD6$ )Nr   )r   r;  capasintshow_allnozerosr.  r0   )r   r   exhcr   )
r$   r;  r  r  r  r  r.  r,   r   r<   s
             r%   r  AnalysisIndicators.exhc  s[      GW!=>  EEcQYsy  E  ~D  E!!&3F33r(   c           	          U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXUS.UD6nU R                  " U40 UD6$ )Nr   r   )r   r   r;  signalr.  r0   )r   r   fisherr   )r$   r;  r  r.  r,   r   r   r<   s           r%   r  AnalysisIndicators.fisher  sf    

66 :;vzz%78bT6QWb[ab!!&3F33r(   c	                 B   U R                  U	R                  SS5      5      n
Uc  UbU  U R                  U	R                  SS5      5      nU R                  U	R                  SS5      5      n[        SXXX#XEXgUS.U	D6nO[        SXX#XEXgUS.	U	D6nU R                  " U40 U	D6$ )Nr   r   r   )r   r   r   r;  
rvi_lengthr^  refinedthirdsrP  r_  r.  )	r   r;  r  r^  r  r  rP  r_  r.  r0   )r   r   inertiar   )r$   r;  r  r^  r  r  rP  r_  r.  r,   r   r   r   r<   s                 r%   r  AnalysisIndicators.inertia  s      GW!=>&"4##FJJvv$>?D""6::eU#;<C  H5Xb  |C  [a  w}  H  AG  HF  t5Jgn  GM  ci  t  ms  tF!!&3F33r(   c           
         U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXqX#S.UD6nU R                  " U40 UD6$ )Nr   r   r   )r   r   r   r;  r  r.  r0   )r   r   kdjr   )	r$   r;  r  r.  r,   r   r   r   r<   s	            r%   r  AnalysisIndicators.kdj      

66 :;vzz%78  GW!=>l$uFlekl!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXX#XEXgXU
S.UD6nU R                  " U40 UD6$ )Nr   )r   roc1roc2roc3roc4sma1sma2sma3sma4r  r.  r0   )r   r   kstr   )r$   r  r  r  r  r  r  r  r  r  r.  r,   r   r<   s                 r%   r  AnalysisIndicators.kst  sd      GW!=>  b5$^btx  QW  b  [a  b!!&3F33r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ )Nr   )r   rJ  rK  r  r.  r0   )r   r   macdr   )r$   rJ  rK  r  r.  r,   r   r<   s           r%   r  AnalysisIndicators.macd  sJ      GW!=>`E4v`Y_`!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   momr   ri  s         r%   r  AnalysisIndicators.mom  rk  r(   c           	         U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXEXaUS.UD6nU R                  " U40 UD6$ r  )r   r   pgor   r  s           r%   r  AnalysisIndicators.pgo  r  r(   c           
          U R                  UR                  SS5      5      n[        SXqX#XES.UD6nU R                  " U40 UD6$ )Nr   )r   rJ  rK  r^  rP  r.  r0   )r   r   ppor   )	r$   rJ  rK  r^  rP  r.  r,   r   r<   s	            r%   r  AnalysisIndicators.ppo  J      GW!=>n5$fngmn!!&3F33r(   c           
          Ub!  U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXqX#XES.UD6nU R                  " U40 UD6$ )Nr   r   )r   r   r;  r^  r_  r.  r0   )r   r   pslr   )	r$   r   r;  r^  r_  r.  r,   r   r<   s	            r%   r  AnalysisIndicators.psl  sl    $$VZZ%?@E  GW!=>r5fSXrkqr!!&3F33r(   c           
          U R                  UR                  SS5      5      n[        SXqX#XES.UD6nU R                  " U40 UD6$ )Nr   )r   r;  rA  factorrP  r.  r0   )r   r   qqer   )	r$   r;  rA  r  rP  r.  r,   r   r<   s	            r%   r  AnalysisIndicators.qqe$  sK      GW!=>v5V\vouv!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   rocr   ri  s         r%   r  AnalysisIndicators.roc)  rk  r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ rp  )r   r   rsir   rr  s           r%   r  AnalysisIndicators.rsi.  rt  r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ r  )r   r   rsxr   r  s          r%   r  AnalysisIndicators.rsx3  G      GW!=>V5uVvV!!&3F33r(   c                 P   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXxXUS.UD6n	U R                  " U	40 UD6$ )Nr   r   r   r   )r   r   r   r   r;  swma_lengthr.  r0   )r   r   rvgir   )
r$   r;  r  r.  r,   r   r   r   r   r<   s
             r%   r  AnalysisIndicators.rvgi8  s      FF!;<

66 :;vzz%78  GW!=>  EE#6sy  E  ~D  E!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   sloper   ri  s         r%   r  AnalysisIndicators.slope@  G      GW!=>KU&KFK!!&3F33r(   c
                 V   U R                  U
R                  SS5      5      nU R                  U
R                  SS5      5      nU R                  U
R                  SS5      5      nU R                  U
R                  SS5      5      n[        SXXXX4XVXxU	S.U
D6nU R                  " U40 U
D6$ )Nr   r   r   r   )r   r   r   r   
abr_lengthclose_length
vol_lengthpercent	vol_ratior  rP  r   r.  r0   )r   r   smcr   )r$   r  r  r  r  r  r  rP  r   r.  r,   r   r   r   r   r<   s                   r%   r  AnalysisIndicators.smcE  s      FF!;<

66 :;vzz%78  GW!=>  t5j  AK  hq  GM  ci  t  ms  t!!&3F33r(   c           
          U R                  UR                  SS5      5      n[        SXqX#XES.UD6nU R                  " U40 UD6$ )Nr   )r   rJ  rK  r  r^  r.  r0   )r   r   smir   )	r$   rJ  rK  r  r^  r.  r,   r   r<   s	            r%   r  AnalysisIndicators.smiM  r  r(   c
                    U R                  U
R                  SS5      5      nU R                  U
R                  SS5      5      nU R                  U
R                  SS5      5      n[        SXXX#XEXgXS.U
D6nU R                  " U40 U
D6$ )Nr   r   r   )r   r   r   	bb_lengthbb_std	kc_length	kc_scalar
mom_length
mom_smoothuse_trrP  r.  r0   )r   r   squeezer   )r$   r  r  r  r  r  r  r  rP  r.  r,   r   r   r   r<   s                  r%   r  AnalysisIndicators.squeezeR  s    

66 :;vzz%78  GW!=>  md5V\  ~G  ku  MS  m  fl  m!!&3F33r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXXX#XEXgXXS.UD6nU R                  " U40 UD6$ )Nr   r   r   )r   r   r   r  r  r  kc_scalar_widekc_scalar_normalkc_scalar_narrowr  r  r  rP  r.  r0   )r   r   squeeze_pror   )r$   r  r  r  r  r  r  r  r  r  rP  r.  r,   r   r   r   r<   s                    r%   r  AnalysisIndicators.squeeze_proY  s    

66 :;vzz%78  GW!=>  A$uZ`  GU  K[  I  ag  A  z@  A!!&3F33r(   c	                     U R                  U	R                  SS5      5      n
[        SXX#XEXgUS.	U	D6nU R                  " U40 U	D6$ )Nr   )	r   tclengthma1ma2oscrJ  rK  r  r.  r0   )r   r   stcr   )r$   r  r  r  r  rJ  rK  r  r.  r,   r   r<   s               r%   r  AnalysisIndicators.stc`  sa      GW!=>  N53`d  }C  N  GM  N!!&3F33r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	U R                  UR                  SS5      5      n
[        SXXX#XEUS.	UD6nU R                  " U40 UD6$ )Nr   r   r   )	r   r   r   r   dsmooth_krP  r   r.  r0   )r   r   stochr   )r$   r   r  r  rP  r   r.  r,   r   r   r   r<   s               r%   r  AnalysisIndicators.stoche  s    

66 :;vzz%78  GW!=>  JDq\bx~  J  CI  J!!&3F33r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	[        SXxXX#XES.UD6n
U R                  " U
40 UD6$ )Nr   r   r   )r   r   r   r   r  rP  r   r.  r0   )r   r   stochfr   )r$   r   r  rP  r   r.  r,   r   r   r   r<   s              r%   r   AnalysisIndicators.stochfl  s    

66 :;vzz%78  GW!=>wT%X]wpvw!!&3F33r(   c                    U R                  UR                  SS5      5      n	U R                  UR                  SS5      5      n
U R                  UR                  SS5      5      n[        SXXX#XEXgS.
UD6nU R                  " U40 UD6$ )Nr   r   r   )
r   r   r   r;  r{  r   r  rP  r   r.  r0   )r   r   stochrsir   )r$   r;  r{  r   r  rP  r   r.  r,   r   r   r   r<   s                r%   r  AnalysisIndicators.stochrsis  s    

66 :;vzz%78  GW!=>  `tEU_hi  AF  `  Y_  `!!&3F33r(   c                     U R                  UR                  SS5      5      n	U R                  UR                  SS5      5      n
[        SXXX4XVUS.	UD6nU R                  " U40 UD6$ )Nr   r   )	r   r   
tmo_lengthcalc_lengthsmooth_lengthrP  compute_momentumnormalize_signalr.  r0   )r   r   tmor   )r$   r  r  r  rP  r	  r
  r.  r,   r   r   r<   s               r%   r  AnalysisIndicators.tmoz  s      FF!;<  GW!=>  j5*mz  ]m  Y_  j  ci  j!!&3F33r(   c           
          U R                  UR                  SS5      5      n[        SXqX#XES.UD6nU R                  " U40 UD6$ )Nr   )r   r;  r  r^  r_  r.  r0   )r   r   trixr   )	r$   r;  r  r^  r_  r.  r,   r   r<   s	            r%   r  AnalysisIndicators.trix  sK      GW!=>uEV[untu!!&3F33r(   c           
          U R                  UR                  SS5      5      n[        SXqX#XES.UD6nU R                  " U40 UD6$ )Nr   )r   rJ  rK  r_  rP  r.  r0   )r   r   tsir   )	r$   rJ  rK  r_  rP  r.  r,   r   r<   s	            r%   r  AnalysisIndicators.tsi  sJ      GW!=>l5$Flekl!!&3F33r(   c	                    U R                  U	R                  SS5      5      n
U R                  U	R                  SS5      5      nU R                  U	R                  SS5      5      n[        SXXX#XEXgUS.U	D6nU R                  " U40 U	D6$ )Nr   r   r   )r   r   r   rJ  mediumrK  fast_wmedium_wslow_wr_  r.  r0   )r   r   uor   )r$   rJ  r  rK  r  r  r  r_  r.  r,   r   r   r   r<   s                 r%   r  AnalysisIndicators.uo  s    

66 :;vzz%78  GW!=>  qevag  DJ  `f  q  jp  q!!&3F33r(   c           
         U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXqX#S.UD6nU R                  " U40 UD6$ )Nr   r   r   )r   r   r   r;  rZ  r.  r0   )r   r   willrr   )	r$   r;  rZ  r.  r,   r   r   r   r<   s	            r%   r  AnalysisIndicators.willr  s    

66 :;vzz%78  GW!=>vDR\vouv!!&3F33r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ )Nr   )r   jawteethlipsr.  r0   )r   r   	alligatorr   )r$   r  r  r   r.  r,   r   r<   s           r%   r!  AnalysisIndicators.alligator  sK      GW!=>auPVaZ`a!!&3F33r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ )Nr   )r   r;  sigmadistribution_offsetr.  r0   )r   r   almar   )r$   r;  r$  r%  r.  r,   r   r<   s           r%   r&  AnalysisIndicators.alma  sT      GW!=>  AEou  Ay  A!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   demar   ri  s         r%   r)  AnalysisIndicators.dema  G      GW!=>JEJ6J!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   emar   ri  s         r%   r-  AnalysisIndicators.ema  rk  r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   fwmar   ri  s         r%   r0  AnalysisIndicators.fwma  r+  r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXgXX#US.UD6n	U R                  " U	40 UD6$ )Nr   r   r   )r   r   r   high_length
low_lengthrP  r.  r0   )r   r   hilor   )
r$   r3  r4  rP  r.  r,   r   r   r   r<   s
             r%   r5  AnalysisIndicators.hilo  s    

66 :;vzz%78  GW!=>  O4[e  ~D  O  HN  O!!&3F33r(   c                     U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SX4US.UD6nU R                  " U40 UD6$ )Nr   r   )r   r   r.  r0   )r   r   hl2r   )r$   r.  r,   r   r   r<   s         r%   r8  AnalysisIndicators.hl2  sb    

66 :;vzz%78A$A&A!!&3F33r(   c                 
   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SX4XQS.UD6nU R                  " U40 UD6$ Nr   r   r   )r   r   r   r.  r0   )r   r   hlc3r   r$   r.  r,   r   r   r   r<   s          r%   r<  AnalysisIndicators.hlc3  s}    

66 :;vzz%78  GW!=>O4OO!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ rT  )r   r   hmar   rV  s          r%   r@  AnalysisIndicators.hma  sH      GW!=>X5XQWX!!&3F33r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ )Nr   )r   nanbncr.  r0   )r   r   hwmar   )r$   rC  rD  rE  r.  r,   r   r<   s           r%   rF  AnalysisIndicators.hwma  sI      GW!=>PERvPP!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr   )r   r;  phaser.  r0   )r   r   jmar   )r$   r;  rI  r.  r,   r   r<   s          r%   rJ  AnalysisIndicators.jma  r  r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ rv  )r   r   kamar   rx  s           r%   rM  AnalysisIndicators.kama  sJ      GW!=>`Etv`Y_`!!&3F33r(   c                 d   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	[        SXxXX#XES.UD6u  pU R                  " U
40 UD6  U R                  " U40 UD6  U R                  " U
40 UD6  X4$ )Nr   r   r   )r   r   r   tenkankijunsenkouinclude_chikour.  r0   )r   r   r   rg   r|   )r$   rP  rQ  rR  rS  r.  r,   r   r   r   r<   spans               r%   r   AnalysisIndicators.ichimoku  s    

66 :;vzz%78  GW!=>  dT%V[  |J  d  ]c  d1&1//V&v&|r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr   )r   r;  r.  adjustr0   )r   r   linregr   )r$   r;  r.  rW  r,   r   r<   s          r%   rX  AnalysisIndicators.linreg  sH      GW!=>[e6[TZ[!!&3F33r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ )Nr   )r   	fastlimit	slowlimitprenanr.  r0   )r   r   mamar   )r$   r[  r\  r]  r.  r,   r   r<   s           r%   r^  AnalysisIndicators.mama  sK      GW!=>tE)citmst!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   mcgdr   ri  s         r%   ra  AnalysisIndicators.mcgd  r+  r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   midpointr   ri  s         r%   rd  AnalysisIndicators.midpoint  G      GW!=>NVNvN!!&3F33r(   c                     U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXEXS.UD6nU R                  " U40 UD6$ )Nr   r   )r   r   r;  r.  r0   )r   r   midpricer   )r$   r;  r.  r,   r   r   r<   s          r%   rh  AnalysisIndicators.midprice  sb    

66 :;vzz%78UtVUfU!!&3F33r(   c           	      N   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SX4XVUS.UD6nU R                  " U40 UD6$ r6  )r   r   ohlc4r   r8  s           r%   rk  AnalysisIndicators.ohlc4  s      FF!;<

66 :;vzz%78  GW!=>]U3F]V\]!!&3F33r(   c           
      N   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXEXgXS.UD6nU R                  " U40 UD6$ )Nr   r   r   r   )r   r   r   r   r   anchorr0   )r   r   pivotsr   )	r$   r   rn  r,   r   r   r   r   r<   s	            r%   ro  AnalysisIndicators.pivots  s      FF!;<

66 :;vzz%78  GW!=>meCVmflm!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   pwmar   ri  s         r%   rr  AnalysisIndicators.pwma  r+  r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   rmar   ri  s         r%   ru  AnalysisIndicators.rma  rk  r(   c           	          U R                  UR                  SS5      5      n[        S[        [        XAUS.UD6nU R
                  " U40 UD6$ )Nr   r  r0   )r   r   rwir   r   r   ri  s         r%   rx  AnalysisIndicators.rwi  sL      GW!=>]$CuF]V\]!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   sinwmar   ri  s         r%   r{  AnalysisIndicators.sinwma  G      GW!=>Le6LVL!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   smar   ri  s         r%   r  AnalysisIndicators.sma#  rk  r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   smmar   ri  s         r%   r  AnalysisIndicators.smma(  r+  r(   c           
          U R                  UR                  SS5      5      n[        SXqX#XES.UD6nU R                  " U40 UD6$ )Nr   )r   r;  evergetrC  rD  r.  r0   )r   r   ssfr   )	r$   r;  r  rC  rD  r.  r,   r   r<   s	            r%   r  AnalysisIndicators.ssf-  sJ      GW!=>n5ungmn!!&3F33r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ )Nr   )r   r;  rC  sqrt3r.  r0   )r   r   ssf3r   )r$   r;  rC  r  r.  r,   r   r<   s           r%   r  AnalysisIndicators.ssf32  sJ      GW!=>^ERV^W]^!!&3F33r(   c           
         U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXqX#S.UD6nU R                  " U40 UD6$ )Nr   r   r   )r   r   r   r;  
multiplierr.  r0   r   r   
supertrendr   )	r$   r;  r  r.  r,   r   r   r   r<   s	            r%   r  AnalysisIndicators.supertrend7      

66 :;vzz%78  GW!=>{eWa{tz{!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   swmar   ri  s         r%   r  AnalysisIndicators.swma>  r+  r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr   )r   r;  ar.  r0   )r   r   t3r   )r$   r;  r  r.  r,   r   r<   s          r%   r  AnalysisIndicators.t3C  sG      GW!=>M%!MfM!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   temar   ri  s         r%   r  AnalysisIndicators.temaH  r+  r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   trimar   ri  s         r%   r  AnalysisIndicators.trimaM  r  r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   vidyar   ri  s         r%   r  AnalysisIndicators.vidyaR  r  r(   c                 
   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SX4XQS.UD6nU R                  " U40 UD6$ r;  )r   r   wcpr   r=  s          r%   r  AnalysisIndicators.wcpW  s}    

66 :;vzz%78  GW!=>N$uNvN!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   wmar   ri  s         r%   r  AnalysisIndicators.wma^  rk  r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ rT  )r   r   zlmar   rV  s          r%   r  AnalysisIndicators.zlmac  rX  r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ Nr   )r   r;  
cumulativer  r.  r0   )r   r   
log_returnr   r$   r;  r  r  r.  r,   r   r<   s           r%   r  AnalysisIndicators.log_returni  sK      GW!=>x%:gmxqwx!!&3F33r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ r  )r   r   percent_returnr   r  s           r%   r  !AnalysisIndicators.percent_returnn  sK      GW!=>|ezkq|u{|!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr   )r   r;  baser.  r0   )r   r   entropyr   )r$   r;  r  r.  r,   r   r<   s          r%   r  AnalysisIndicators.entropyt  sH      GW!=>Xu$XQWX!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   kurtosisr   ri  s         r%   r  AnalysisIndicators.kurtosisy  rf  r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   madr   ri  s         r%   r  AnalysisIndicators.mad~  rk  r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   medianr   ri  s         r%   r  AnalysisIndicators.median  r}  r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr   )r   r;  qr.  r0   )r   r   quantiler   )r$   r;  r  r.  r,   r   r<   s          r%   r  AnalysisIndicators.quantile  sG      GW!=>SSFS!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   skewr   ri  s         r%   r  AnalysisIndicators.skew  r+  r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   stdevr   ri  s         r%   r  AnalysisIndicators.stdev  r  r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr   )r   r;  stdsr.  r0   )r   r   tos_stdevallr   )r$   r;  r  r.  r,   r   r<   s          r%   r  AnalysisIndicators.tos_stdevall  sH      GW!=>]Et]V\]!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ rg  )r   r   variancer   ri  s         r%   r  AnalysisIndicators.variance  rf  r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr   )r   r;  stdr.  r0   )r   r   zscorer   )r$   r;  r  r.  r,   r   r<   s          r%   r  AnalysisIndicators.zscore  sG      GW!=>UeUfU!!&3F33r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	U R                  UR                  SS5      5      n
[        SXXX#XEUS.	UD6nU R                  " U40 UD6$ Nr   r   r   )	r   r   r   r;  lensigrP  r^  r_  r.  r0   )r   r   adxr   r$   r;  r  rP  r^  r_  r.  r,   r   r   r   r<   s               r%   r  AnalysisIndicators.adx      

66 :;vzz%78  GW!=>  X$uFjp  GM  X  QW  X!!&3F33r(   c
                    U R                  U
R                  SS5      5      nU R                  U
R                  SS5      5      nU R                  U
R                  SS5      5      nU R                  U
R                  SS5      5      nUb!  U R                  U
R                  SS5      5      n[        SXXXX4XVXxU	S.U
D6nU R                  " U40 U
D6$ )Nr   r   r   r   volume)r   r   r   r   r  srcr;  r  	thresholdlagrP  r   r.  r0   )r   r   
alphatrendr   )r$   r  r  r;  r  r  r  rP  r   r.  r,   r   r   r   r   r<   s                   r%   r  AnalysisIndicators.alphatrend  s      FF!;<

66 :;vzz%78  GW!=>%%fjj8&DEF  [%QWio  S\  nt  JP  [  TZ  [!!&3F33r(   c           
          U R                  UR                  SS5      5      n[        SXqX#XES.UD6nU R                  " U40 UD6$ )Nr   )r   rJ  rK  rP  lookbackr.  r0   )r   r   amatr   )	r$   rJ  rK  rP  r  r.  r,   r   r<   s	            r%   r  AnalysisIndicators.amat  sK      GW!=>sE4QYslrs!!&3F33r(   c           	          U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXUS.UD6nU R                  " U40 UD6$ )Nr   r   )r   r   r;  r^  r.  r0   )r   r   aroonr   )r$   r;  r^  r.  r,   r   r   r<   s           r%   r  AnalysisIndicators.aroon  sf    

66 :;vzz%78aD&PVaZ`a!!&3F33r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	U R                  UR                  SS5      5      n
[        SXXX#XEUS.	UD6nU R                  " U40 UD6$ )Nr   r   r   )	r   r   r   r;  
atr_lengthlnr^  r_  r.  r0   )r   r   chopr   )r$   r;  r  r  r^  r_  r.  r,   r   r   r   r<   s               r%   r  AnalysisIndicators.chop  s    

66 :;vzz%78  GW!=>  Y4Q[kq  HN  Y  RX  Y!!&3F33r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	[        SXxXX#XES.UD6n
U R                  " U
40 UD6$ )Nr   r   r   )r   r   r   pr   r  rP  r.  r0   )r   r   ckspr   )r$   r  r   r  rP  r.  r,   r   r   r   r<   s              r%   r  AnalysisIndicators.cksp  s    

66 :;vzz%78  GW!=>m4aVmflm!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr   )r   r;  rq   r.  r0   )r   r   decayr   )r$   r;  rq   r.  r,   r   r<   s          r%   r  AnalysisIndicators.decay  sG      GW!=>VUVvV!!&3F33r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ Nr   )r   r;  strictr  r.  r0   )r   r   
decreasingr   r$   r;  r  r  r.  r,   r   r<   s           r%   r  AnalysisIndicators.decreasing  K      GW!=>l%v[alekl!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr   )r   r;  centeredr.  r0   )r   r   dpor   )r$   r;  r  r.  r,   r   r<   s          r%   r   AnalysisIndicators.dpo  sH      GW!=>\5(\U[\!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr   )r   r   r]  r.  r0   )r   r   ht_trendliner   )r$   r   r]  r.  r,   r   r<   s          r%   r  AnalysisIndicators.ht_trendline  sH      GW!=>_Ev_X^_!!&3F33r(   c           	          U R                  UR                  SS5      5      n[        SXaX#US.UD6nU R                  " U40 UD6$ r  )r   r   
increasingr   r  s           r%   r  AnalysisIndicators.increasing  r  r(   c                 h    Uc  Uc  U R                   $ [        SXX4S.UD6nU R                  " U40 UD6$ N)rJ  rK  r;  r.  r0   )r    r   r   r$   rJ  rK  r;  r.  r,   r<   s          r%   r   AnalysisIndicators.long_run  s?    <DL88O[46[TZ[F%%f777r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS 5      5      n	[        SXxXX#XES.UD6n
U R                  " U
40 UD6$ )Nr   r   r   )r   r   r   af0afmax_aftvr.  r0   )r   r   psarr   )r$   r  r  r  r  r.  r,   r   r   r   r<   s              r%   r  AnalysisIndicators.psar  s    

66 :;vzz%78  GT!:;u42Y[untu!!&3F33r(   c                     U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXEXS.UD6nU R                  " U40 UD6$ )Nr   r   )r   r   r;  r.  r0   )r   r   qstickr   )r$   r;  r.  r,   r   r   r<   s          r%   r  AnalysisIndicators.qstick  sc      FF!;<  GW!=>YeYRXY!!&3F33r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	U R                  UR                  SS5      5      n
[        SXXX#XEUS.	UD6nU R                  " U40 UD6$ r  )r   r   rx  r   r  s               r%   rx  ry    r  r(   c                 h    Uc  Uc  U R                   $ [        SXX4S.UD6nU R                  " U40 UD6$ r	  )r    r   r   r
  s          r%   r   AnalysisIndicators.short_run  s?    <DL88O\DF\U[\F%%f777r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	[        SXxXX#XES.UD6n
U R                  " U
40 UD6$ )Nr   r   r   )r   r   r   r  r  rP  r_  r.  r0   r  )r$   r  r  rP  r_  r.  r,   r   r   r   r<   s              r%   r  r    s    

66 :;vzz%78  GW!=>  XeWax}  X  QW  X!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXX4XVUS.UD6n	U R                  " U	40 UD6$ r@  )r   r   	trendflexr   rF  s
             r%   r  AnalysisIndicators.trendflex  sN      GW!=>fVXntx~!!&3F33r(   c                 d    Uc  U R                   $ [        U4X$X5S.UD6nU R                  " U40 UD6$ )N)asbooltrend_offsettrend_resetr.  )r    r   r   )r$   trendr  r   r  r.  r,   r<   s           r%   r   AnalysisIndicators.tsignals  sG    =88Oe  AF[f  Ay  AF%%f777r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ r  )r   r   vhfr   r  s          r%   r$  AnalysisIndicators.vhf  r  r(   c           	         U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXEXaUS.UD6nU R                  " U40 UD6$ Nr   r   r   )r   r   r   r_  r.  r0   )r   r   vortexr   r$   r_  r.  r,   r   r   r   r<   s           r%   r(  AnalysisIndicators.vortex$  s    

66 :;vzz%78  GW!=>^T%V^W]^!!&3F33r(   c
                 h    Uc  U R                   $ [        SXX4XVXU	S.	U
D6nU R                  " U40 U
D6$ )N)	r  xaxbabovelongr  r  r   r.  r0   )r    r   r   )r$   r  r,  r-  r.  r/  r  r   r  r.  r,   r<   s               r%   r   AnalysisIndicators.xsignals+  sT    >88O  oVrTo{  ^d  o  hn  oF%%f777r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	Ub!  U R                  UR                  SS5      5      n[        SXXX4XVS.UD6n
U R                  " U
40 UD6$ )Nr   r   r   )r   r   r   legs	deviationretracelast_extremer.  r0   )r   r   zigzagr   )r$   r   r2  r3  r4  r5  r.  r,   r   r   r<   s              r%   r6  AnalysisIndicators.zigzag2  s    

66 :;vzz%78$$VZZ%ABE  ^T%i  xD  ^  W]  ^!!&3F33r(   c           
         U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXqX#S.UD6nU R                  " U40 UD6$ )Nr   r   r   )r   r   r   r;  r  r.  r0   )r   r   
aberrationr   )	r$   r;  r  r.  r,   r   r   r   r<   s	            r%   r9  AnalysisIndicators.aberration;  r  r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXgXX#US.UD6n	U R                  " U	40 UD6$ )Nr   r   r   )r   r   r   r;  rc  rP  r.  r0   )r   r   accbandsr   )
r$   r;  rc  rP  r.  r,   r   r   r   r<   s
             r%   r<  AnalysisIndicators.accbandsB  s    

66 :;vzz%78  GW!=>vtEAekvouv!!&3F33r(   c           
         U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXqX#S.UD6nU R                  " U40 UD6$ )Nr   r   r   )r   r   r   r;  rP  r.  r0   )r   r   atrr   )	r$   r;  rP  r.  r,   r   r   r   r<   s	            r%   r?  AnalysisIndicators.atrI  r  r(   c                    U R                  UR                  SS5      5      n	U R                  UR                  SS5      5      n
U R                  UR                  SS5      5      n[        SXXX#XEXgS.
UD6nU R                  " U40 UD6$ )Nr   r   r   )
r   r   r   r;  	ma_lengthr  rP  r   r_  r.  r0   )r   r   atrtsr   )r$   r;  rB  r  rP  r   r_  r.  r,   r   r   r   r<   s                r%   rC  AnalysisIndicators.atrtsP  s    

66 :;vzz%78  GW!=>  uDQZ  {A  V[  u  nt  u!!&3F33r(   c           
          U R                  UR                  SS5      5      n[        SXqX#XES.UD6nU R                  " U40 UD6$ )Nr   )r   r;  	lower_std	upper_stdrP  r.  r0   )r   r   bbandsr   )	r$   r;  rF  rG  rP  r.  r,   r   r<   s	            r%   rH  AnalysisIndicators.bbandsW  sX    !!&**Wg">?  Feiek  F  E  F!!&3F33r(   c
                    U R                  U
R                  SS5      5      nU R                  U
R                  SS5      5      nU R                  U
R                  SS5      5      n[        SXXX#XEXgXS.U
D6nU R                  " U40 U
D6$ )Nr   r   r   )r   r   r   r3  r4  r  r  rP  r   	use_closer_  r.  r0   )r   r   chandelier_exitr   )r$   r3  r4  r  r  rP  r   rK  r_  r.  r,   r   r   r   r<   s                  r%   rL  "AnalysisIndicators.chandelier_exit\  s    

66 :;vzz%78  GW!=>   wd5fp  U_  v{  X]  w  pv  w!!&3F33r(   c           	          U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXUS.UD6nU R                  " U40 UD6$ )Nr   r   )r   r   lower_lengthupper_lengthr.  r0   )r   r   donchianr   )r$   rO  rP  r.  r,   r   r   r<   s           r%   rQ  AnalysisIndicators.donchianc  sf    

66 :;vzz%78|t<kq|u{|!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXX#XEUS.UD6n	U R                  " U	40 UD6$ )Nr   )r   rC  rD  rE  ndr^  r.  r0   )r   r   hwcr   )
r$   rC  rD  rE  rT  r^  r.  r,   r   r<   s
             r%   rU  AnalysisIndicators.hwci  sM      GW!=>e5B"TZe^de!!&3F33r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXgXX#US.UD6n	U R                  " U	40 UD6$ )Nr   r   r   )r   r   r   r;  r^  rP  r.  r0   )r   r   kcr   )
r$   r;  r^  rP  r.  r,   r   r   r   r<   s
             r%   rX  AnalysisIndicators.kcn  s    

66 :;vzz%78  GW!=>ze6iozsyz!!&3F33r(   c           	          U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXUS.UD6nU R                  " U40 UD6$ rI  )r   r   massir   rM  s           r%   r[  AnalysisIndicators.massiu  se    

66 :;vzz%78YDYRXY!!&3F33r(   c                    U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXgXX#US.UD6n	U R                  " U	40 UD6$ )Nr   r   r   )r   r   r   r;  rP  r^  r.  r0   )r   r   natrr   )
r$   r;  rP  r^  r.  r,   r   r   r   r<   s
             r%   r^  AnalysisIndicators.natr{  s    

66 :;vzz%78  GW!=>|4Vkq|u{|!!&3F33r(   c           
      N   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXEXgXS.UD6nU R                  " U40 UD6$ )Nr   r   r   r   )r   r   r   r   r_  r.  r0   )r   r   pdistr   )	r$   r_  r.  r,   r   r   r   r   r<   s	            r%   ra  AnalysisIndicators.pdist  s      FF!;<

66 :;vzz%78  GW!=>jU35jcij!!&3F33r(   c                    U R                  UR                  SS5      5      n	U R                  UR                  SS5      5      n
U R                  UR                  SS5      5      n[        SXXX#XEXgS.
UD6nU R                  " U40 UD6$ )Nr   r   r   )
r   r   r   r;  r^  r  r  rP  r_  r.  r0   )r   r   rvir   )r$   r;  r^  r  r  rP  r_  r.  r,   r   r   r   r<   s                r%   rd  AnalysisIndicators.rvi  s    

66 :;vzz%78  GW!=>  i$uFlr  JO  i  bh  i!!&3F33r(   c                     U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	[        SXXX4XVS.UD6n
U R                  " U
40 UD6$ )Nr   r   )r   r   r/  shortr;  rP  r_  r.  r0   )r   r   thermor   )r$   r/  rg  r;  rP  r_  r.  r,   r   r   r<   s              r%   rh  AnalysisIndicators.thermo  su    

66 :;vzz%78  HT6hm  H  AG  H!!&3F33r(   c           	         U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXEXaUS.UD6nU R                  " U40 UD6$ r'  )r   r   
true_ranger   r)  s           r%   rk  AnalysisIndicators.true_range  s    

66 :;vzz%78  GW!=>beQWb[ab!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr   )r   r;  r^  r.  r0   )r   r   uir   )r$   r;  r^  r.  r,   r   r<   s          r%   rn  AnalysisIndicators.ui  sH      GW!=>W%vWPVW!!&3F33r(   c                    Ub!  U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXxXUS.UD6n	U R                  " U	40 UD6$ )Nr   r   r   r   r  )r   r   r   r  r   signedr.  r0   )r   r   adr   )
r$   r   rq  r.  r,   r   r   r   r  r<   s
             r%   rr  AnalysisIndicators.ad  s    $$VZZ%?@E

66 :;vzz%78  GW!=>!!&**Xx"@Axe%gmxqwx!!&3F33r(   c                    Ub!  U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	U R                  UR                  SS5      5      n
[        SXxXXX4US.	UD6nU R                  " U40 UD6$ )Nr   r   r   r   r  )	r   r   r   r  r   rJ  rK  rq  r.  r0   )r   r   adoscr   )r$   r   rJ  rK  rq  r.  r,   r   r   r   r  r<   s               r%   ru  AnalysisIndicators.adosc  s    $$VZZ%?@E

66 :;vzz%78  GW!=>!!&**Xx"@A  RDUdh  AG  R  KQ  R!!&3F33r(   c                     U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	[        SXXX4XVS.UD6n
U R                  " U
40 UD6$ )Nr   r  )r   r  rJ  rK  rP  max_lookbackmin_lookbackr.  r0   )r   r   aobvr   )r$   rJ  rK  rP  rx  ry  r.  r,   r   r  r<   s              r%   rz  AnalysisIndicators.aobv  sy      GW!=>!!&**Xx"@A  fEtv  @L  f  _e  f!!&3F33r(   c                    Ub!  U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXxXUS.UD6n	U R                  " U	40 UD6$ )Nr   r   r   r   r  )r   r   r   r  r   r;  r.  r0   )r   r   cmfr   )
r$   r   r;  r.  r,   r   r   r   r  r<   s
             r%   r}  AnalysisIndicators.cmf  s    $$VZZ%?@E

66 :;vzz%78  GW!=>!!&**Xx"@Ay$u5hnyrxy!!&3F33r(   c           
          U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXgXX$S.UD6nU R                  " U40 UD6$ )Nr   r  )r   r  r;  r.  rP  r_  r0   )r   r   efir   )	r$   r;  rP  r.  r_  r,   r   r  r<   s	            r%   r  AnalysisIndicators.efi  sf      GW!=>!!&**Xx"@At5V\tmst!!&3F33r(   c                 P   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	[        SXgXXX4S.UD6n
U R                  " U
40 UD6$ )Nr   r   r   r  )r   r   r   r  r;  divisorr.  r_  r0   )r   r   eomr   )r$   r;  r  r.  r_  r,   r   r   r   r  r<   s              r%   r  AnalysisIndicators.eom  s    

66 :;vzz%78  GW!=>!!&**Xx"@A  K$uFlr  K  DJ  K!!&3F33r(   c                 R   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n	U R                  UR                  SS5      5      n
U R                  UR                  SS5      5      n[        SXXXX4XVS.
UD6nU R                  " U40 UD6$ )Nr   r   r   r  )
r   r   r   r  rJ  rK  
length_sigrP  r.  r_  r0   )r   r   kvor   )r$   rJ  rK  r  rP  r.  r_  r,   r   r   r   r  r<   s                r%   r  AnalysisIndicators.kvo  s    

66 :;vzz%78  GW!=>!!&**Xx"@A  g$u$fp  IO  g  `f  g!!&3F33r(   c                 P   U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVXxXUS.UD6n	U R                  " U	40 UD6$ )Nr   r   r   r  )r   r   r   r  r;  r_  r.  r0   )r   r   mfir   )
r$   r;  r_  r.  r,   r   r   r   r  r<   s
             r%   r  AnalysisIndicators.mfi  s    

66 :;vzz%78  GW!=>!!&**Xx"@Ay$uFhnyrxy!!&3F33r(   c           
          U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXgXX4S.UD6nU R                  " U40 UD6$ )Nr   r  )r   r  r;  initialrq  r.  r0   )r   r   nvir   )	r$   r;  r  rq  r.  r,   r   r  r<   s	            r%   r  AnalysisIndicators.nvi  sf      GW!=>!!&**Xx"@Ax5X^xqwx!!&3F33r(   c                     U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SX4US.UD6nU R                  " U40 UD6$ Nr   r  )r   r  r.  r0   )r   r   obvr   r$   r.  r,   r   r  r<   s         r%   r  AnalysisIndicators.obv  b      GW!=>!!&**Xx"@AI5I&I!!&3F33r(   c                     U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXxXX4US.UD6n	U R                  " U	40 UD6$ )Nr   r  )r   r  r;  r  rP  overlayr.  r0   )r   r   pvir   )
r$   r;  r  rP  r  r.  r,   r   r  r<   s
             r%   r  AnalysisIndicators.pvi  sv      GW!=>!!&**Xx"@A  J5X^x~  J  CI  J!!&3F33r(   c           
          U R                  UR                  SS5      5      n[        SXqX#XES.UD6nU R                  " U40 UD6$ )Nr  )r  rJ  rK  r  r^  r.  r0   )r   r   pvor   )	r$   rJ  rK  r  r^  r.  r,   r  r<   s	            r%   r  AnalysisIndicators.pvo  sK    !!&**Xx"@ApFDPVpiop!!&3F33r(   c                     U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXAUS.UD6nU R                  " U40 UD6$ r  )r   r   pvolr   )r$   r  r.  r,   r   r<   s         r%   r  AnalysisIndicators.pvol  sb      GW!=>!!&**Xx"@AJEJ6J!!&3F33r(   c                     U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        X#S9nU R                  " U40 UD6$ )Nr   r  )r   r  )r   r   pvrr   )r$   r,   r   r  r<   s        r%   r  AnalysisIndicators.pvr  sX      GW!=>!!&**Xx"@A50!!&3F33r(   c                     U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SX4US.UD6nU R                  " U40 UD6$ r  )r   r   pvtr   r  s         r%   r  AnalysisIndicators.pvt	  r  r(   c                     U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXVX#S.UD6nU R                  " U40 UD6$ )Nr   r  )r   r  r  r.  r0   )r   r   tsvr   )r$   r;  r  r.  r,   r   r  r<   s           r%   r  AnalysisIndicators.tsv  sc      GW!=>!!&**Xx"@AX5XQWX!!&3F33r(   c                     U R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr  )r  r;  
std_lengthr.  r0   )r   r   vhmr   )r$   r;  r  r.  r,   r  r<   s          r%   r  AnalysisIndicators.vhm  sH    !!&**Xx"@AbFjb[ab!!&3F33r(   c           
         U R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  UR                  SS5      5      nU R                  5       (       d  U R                  R                  Ul        [        SXEXgXS.UD6nU R                  " U40 UD6$ )Nr   r   r   r  )r   r   r   r  rn  r.  r0   )r   r   r   r    r   vwapr   )	r$   rn  r.  r,   r   r   r   r  r<   s	            r%   r  AnalysisIndicators.vwap  s    

66 :;vzz%78  GW!=>!!&**Xx"@A$$&&88>>FLm4Vmflm!!&3F33r(   c                     U R                  UR                  SS5      5      nU R                  UR                  SS5      5      n[        SXQX#S.UD6nU R                  " U40 UD6$ )Nr   r  )r   r  r;  r.  r0   )r   r   vwmar   )r$   r  r;  r.  r,   r   r<   s          r%   r  AnalysisIndicators.vwma&  sc      GW!=>!!&**Xx"@AYEYRXY!!&3F33r(   )rA   rJ   r    r"   r#   rZ   rK   )NFFrG   )Fr   r   FF)r_   r#  )r?   N)NNNNNF)r   N)NNNN)NNNNNNN)NNN)FN)NNNNN)NNNNNN)NNNNNNNN)
NNNNNNNNNN)	NNNNNNNNN)NNNNNNNNNNN)NNNNFFN)NTN)NNNTN)NFFN)NNNFN)NNTN)__name__
__module____qualname____firstlineno____doc__rA   r   rJ   _customr   r    r   r$  r"   r!   r#   rZ   SeriesFramer&   r3   r   DictLiker=   propertyrC   setterIntrK   r7   IntFloatr[   MaybeSeriesFramerg   r|   r   r   r   Listr   Tupler   r   Argsr   rO   r   ListStrr   ArrayPandasDTypeLiker   r   TextIOr8   r   r   r   r   r   r   r&  r   r   r/  r3  r7  r=  rE  rL  rQ  rU  r[  r`  rd  rh  rm  rq  rw  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r!  r&  r)  r-  r0  r5  r8  r<  r@  rF  rJ  rM  r   rX  r^  ra  rd  rh  rk  ro  rr  ru  rx  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r   r  r  r   r  r   r$  r(  r   r6  r9  r<  r?  rC  rH  rL  rQ  rU  rX  r[  r^  ra  rd  rh  rk  rn  rr  ru  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  __static_attributes__r0   r(   r%   r   r      s   B I[FG
+C*%$4CId3IKBK B 38!!!+/!!-5!H 
# 
 
 __"S "T " " s  & \\ #  $     #   __#c #d # #
 
6H 
6 
6 ' ' ' ' $(Y Y3;Y	Y, $( +  +3; +	 +FH
%&3,"5 %DEC ED E
=E =!"!.6!	)	!H % : *+<A3/3/#&3/3/!%3/593/ 
3/l%G %) )edl )QU?U )6	,$ 	,c $- F$ F F6T[K[ FR# 3x4 x8 x	 xx AE+/II$'I:=II$(I I (0IX$"4 4444
444
4
4444
4
4
4
4
4
44
44
4	444
4
4
44
44
4
4
4
44
44
444
44444
4
444
4
4
4
4
4444
4
4
4
	4
4
4
4
4444
4
4
4
4
4
4
4
44
4
4
4
4
44
44
44
4
4
4
4
4
4
4
4
4444
4444
4
4
4
4
8444844
84
48444444
444
44444444444444444444
44444

44r(   r   N)dataclassesr   multiprocessingr   r   pathlibr   timer   warningsr   numpyr	   r
   r   pandas.api.extensionsr   pandas.errorsr   pandasr   r   r   rp   r   pandas_ta._typing	pandas_tarq   copy_on_writeobjectr   r0   r(   r%   <module>r     s`    ! +   ! % % = , $ (    !%
  T"R4 R4 #R4r(   