
    Q-jz                         d dl mZmZmZmZmZ d dl mZ d dlm	Z	 d dl
mZmZmZ d dlmZmZmZmZ 	 	 dde	ded	ed
edede	fdZy)    )averagelognansqrt
zeros_like)power)Series)DictLikeIntIntFloat)v_floatv_offsetv_pos_defaultv_seriesNcloselengthphaseoffsetkwargsreturnc                 
   t        |d      }t        | |      } | yt        |d      }t        |      }t	        |       }t	        |       }t	        |       }dx}	x}
x}}| j
                  d   x|d<   x}x}}d}d|dz
  z  }|dk  rdn|d	kD  rd
nd|dz  z   }t        t        t        |            t        d      z  dz   d      }t        |dz
  d      }|t        |      z  }||dz   z  }d|dz
  z  d|dz
  z  dz   z  }| j                  d   }t        d|      D ]y  }| j
                  |   }||z
  }||z
  }t        |      t        |      k7  rt        t        |      t        |            nd||<   ||dz
     ||   |t        ||z
  d         z
  |z  z   ||<   t        |t        |dz
  d      |dz          }|dk(  rdn||   |z  }t        dt        t        |d|z        |            }t        ||      }t        |t        |            }	|dkD  r|n||	|z  z
  }|dk  r|n||	|z  z
  }t        ||      } t        ||       }!d|!z
  |z  |!|z  z   }d|z
  ||z
  z  ||
z  z   }
|||
z  z   }|||dz
     z
  d|!z
  z  d|!z
  z  |!|!z  |z  z   }||dz
     |z   ||<   | t        || j                         }t"        |j
                  d|dz
   |dk7  r|j%                  |      }d|v r|j'                  |d   d       d| d| |_        d|_        |S )a  Jurik Moving Average Average

    This indicator, by Mark Jurik, attempts to eliminate noise. It claims
    to have extremely low lag, is very smooth and is responsive to gaps.

    Sources:
        * [mql5](https://c.mql5.com/forextsd/forum/164/jurik_1.pdf)
        * [prorealcode](https://www.prorealcode.com/prorealtime-indicators/jurik-volatility-bands/)

    Parameters:
        close (Series): ```close``` Series
        length (int): The period. Default: ```7```
        phase (float): Phase value between [-100, 100]. Default: ```0```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (Series): 1 column
       Ng        r   
   g      ?   id   g      @g      ?g{Gz?g       @g?A   g      ?)indexfillnaT)inplaceJMA__overlap)r   r   r   r   r   ilocmaxr   r   shaperangeabsr   minnp_powerr	   r   r   shiftr   namecategory)"r   r   r   r   r   _lengthjmavoltyv_sumkvdet0det1ma2ma1uBandlBand
sum_lengthprlength1pow1length2betbetamipricedel1del2	avg_voltyd_voltyr_voltypow2r   alphas"                                     c/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/overlap/jma.pyr.   r.   
   s   4 FA&GUG$E}E3EfF U
CuEuE  B  s#(::a=0CF0S055 JGaK F##:LB3tF|$s3x/36:Gw}c"DV$G
Wq[
!C7Q;47Q;#7##=>DAA1a[

1 u}u}03D	SY0F3s4y#d),Aa Q<1Xc!j.!455CDaE#a"fa.Q78	 A~!58i+?c3xT:GDE &c4:&("t))<("t))< $'u% 5yE!ECK/ DUS[)D4K7BIo s1q5z!a%i0U % 46QUd"AI L EKK
(C!CHHQw{ {ii 6

6(#T
2 gYaw'CHCLJ    )NNN)numpyr   r   r   r   r   r   r)   pandasr	   pandas_ta._typingr
   r   r   pandas_ta.utilsr   r   r   r   r.    rJ   rI   <module>rP      sd    5 5 #  5 5 F F
 ?Ckk#k3;kk"*k krJ   