
    i                         S SK Jr  S SKJrJrJrJrJr  S SKJ	r	  S SK
JrJr  S SKJr  S SKJrJrJrJr  \" SS9S	 5       r  SS\	S\S\S\S\S\	4S jjrg
)    )njit)arctanisnannanrad2deg
zeros_like)Series)DictLikeInt)Imports)v_offsetv_pos_defaultv_seriesv_talibT)cachec           	      d   SSU R                   p2n[        U 5      [        U 5      pT[        U 5      [        U 5      pv[        U 5      [        U 5      p[        U 5      [        U 5      p[        U 5      [        U 5      p[        U 5      [        U 5      p[        U 5      n[        U 5      nU S S US S& [        SU5       GH  nSUUS-
     -  S-   nSU U   -  S	U US-
     -  -   S
U US-
     -  -   SU US-
     -  -   UU'   UXU   -  X$US-
     -  -   X$US-
     -  -
  XUS-
     -  -
  -  UU'   UXU   -  X%US-
     -  -   X%US-
     -  -
  XUS-
     -  -
  -  UU'   UUS-
     U
U'   UXU   -  X*US-
     -  -   X*US-
     -  -
  XUS-
     -  -
  -  UU'   UXU   -  X&US-
     -  -   X&US-
     -  -
  XUS-
     -  -
  -  U	U'   U
U   U	U   -
  UU'   UU   UU   -   UU'   S
UU   -  SUUS-
     -  -   UU'   S
UU   -  SUUS-
     -  -   UU'   UU   UUS-
     -  UU   UUS-
     -  -   UU'   UU   UUS-
     -  UU   UUS-
     -  -
  UU'   S
UU   -  SUUS-
     -  -   UU'   S
UU   -  SUUS-
     -  -   UU'   UU   S:w  a,  UU   S:w  a#  S[        [	        UU   UU   -  5      5      -  UU'   UU   SUUS-
     -  :  a  SUUS-
     -  UU'   UU   SUUS-
     -  :  a  SUUS-
     -  UU'   UU   S:  a  SUU'   UU   S:  a  SUU'   S
UU   -  SUUS-
     -  -   UU'   SUU   -  SUUS-
     -  -   UU'   [        UU   S-   5      nSn[        U5       H  nUU UU-
     -  nM     US:  a  UU-  nUUU'   US:  d  GM  SUU   -  S	UUS-
     -  -   S
UUS-
     -  -   SUUS-
     -  -   UU'   GM     U$ )Ng-?g.!u?      g333333?   gHzG?g?g333333?g?   g?      g?r   g     v@g      ?gq=
ףp?g      @g      I@gQ?g      ?   )sizer   ranger   r   int)xabmwma4dtq1q2jijqi1i2reimperiodsmpi_trendresultiadj_prev_period	dc_perioddcp_avgks                          W/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/trend/ht_trendline.pynb_ht_trendliner5      s   faff!A!}jm"]JqM]JqM]JqM]JqMQ-ACmG]FCR&F3BK 1a[&Q-/$6!*sQq1uX~-aAh>qQxOQ1Aw;!a%[#@1APQE{?#RUV^_bc^cYdUd#de11!u9qa!e9}#<qa!e9}#LqVWZ[V[S\}#\]11q5	11!u9qa!e9}#<qa!e9}#LqVWZ[V[S\}#\]11!u9qa!e9}#<qa!e9}#LqVWZ[V[S\}#\]1111111becBq1uIo-1becBq1uIo-111q5	!BqEBq1uI$55111q5	!BqEBq1uI$551becBq1uIo-1becBq1uIo-1a5A:"Q%1*r!ur!u}(= >>F1I!9sVAE]**fQUm+F1I!9tfQUm++va!e},F1I!9s?F1I!9tF1I&)OcF1q5M&99q	q	!D3q1u:$55AA%	y!AqQxG " q=y G
r6gaj(3Q+??#PQTUPUBVVY\_fghklgl_mYmmF1Ia d M    Nclosetalibprenanoffsetkwargsreturnc                    [        US5      n[        X5      n U c  g[        U5      n[        U5      n[        S   (       a  U(       a  SSKJn  U" U 5      nO=U R                  5       n[        U5      n	US:  a	  [        U	SU& [        XR                  S9n[        [        U5      5      (       a  gUS:w  a  UR                  U5      n
SU;   a  UR                  US   SS	9  S
Ul        SUl        U$ )a.  Hilbert Transform TrendLine

This indicator uses the Hilbert Transform to smooth values.

Sources:
    * John F Ehlers's "Rocket Science for Traders" Book
    * [mql5](https://c.mql5.com/forextsd/forum/59/023inst.pdf)
    * TA-Lib [ta_HT_TRENDLINE](https://github.com/TA-Lib/ta-lib/blob/main/src/ta_func/ta_HT_TRENDLINE.c)

Parameters:
    close (Series): ```close``` Series.
    talib (bool): If installed, use TA Lib. Default: ```True```
    prenan (int): Prenans to apply. Ehlers's ```6``` or ```12```,
        TALib ```63``` Default: ```63```
    offset (int): Post shift. Default: ```0```

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

Returns:
    (Series): 1 column

Warning:
    TA-Lib Correlation: ```np.float64(0.9979308363057683)```

Tip:
    Corrective contributions welcome!
?   Nr8   r   )HT_TRENDLINE)indexfillnaT)inplaceHT_TLtrend)r   r   r   r   r   r8   r?   to_numpyr5   r   r	   r@   allr   shiftrA   namecategory)r7   r8   r9   r:   r;   mode_talr?   tlnp_closenp_tl
trend_lines              r4   ht_trendlinerO   P   s    D 62&FU#E}u~HfFwH&% >>#)A: E'6NE-
59~~ {XXf%
 6
		&"D	1BGBKIr6   )NNN)numbar   numpyr   r   r   r   r   pandasr	   pandas_ta._typingr
   r   pandas_ta.mapsr   pandas_ta.utilsr   r   r   r   r5   boolrO    r6   r4   <module>rX      s     9 9  + " F F DA AJ "&&*DDDD #D D 	Dr6   