
    Q-j	                         d dl mZmZmZmZmZmZmZ d dlm	Z
 d dlmZmZmZ d dl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defdZy)    )appendarangearrayexpfloornan	tensordot)version)DictLikeIntIntFloat)Series)strided_windowv_offsetv_pos_defaultv_seriesNcloselengthsigmadist_offsetoffsetkwargsreturnc                    t        |d      }t        | |      } | yt        |d      }t        |t              rd|cxk  rdk  rn nt        |      }nd}t	        |      }| j                         }t        |      }t        ||dz
  z        }	t        d||z  ||	z
  z  dz  z        }
|
|
j                         z  }
t        d	k\  rdd
lm}  |||      }nt        ||      }t        t        t         g|dz
  z        t#        ||
d            }t%        || j&                        }|dk7  r|j)                  |      }d|v r|j+                  |d   d       d| d| d| |_        d|_        |S )a$  Arnaud Legoux Moving Average

    This indicator attempts to reduce lag with Gaussian smoothing.

    Sources:
        * [prorealcode](https://www.prorealcode.com/prorealtime-indicators/alma-arnaud-legoux-moving-average/)
        * [sierrachart](https://www.sierrachart.com/index.php?page=doc/StudiesReference.php&ID=475&Name=Moving_Average_-_Arnaud_Legoux)

    Parameters:
        close (Series): ```close``` Series
        length (int): The period. Default: ```9```
        sigma (float): Smoothing value. Default ```6.0```
        dist_offset (float): Distribution offset, range ```[0, 1]```.
            Default ```0.85```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (Series): 1 column
    	   Ng      @r      g333333?g         z1.20.0)sliding_window_view)axes)indexfillnaT)inplaceALMA__overlap)r   r   
isinstancefloatr   to_numpyr   r   r   sum
np_versionnumpy.lib.stride_tricksr   r   r   r   r   r	   r   r    shiftr!   namecategory)r   r   r   r   r   r   offset_np_closexkweightsr   windowresultalmas                  d/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/overlap/alma.pyr6   r6   
   ss   8 61%FUF#E}%%E+u%!{*?a*?$fF ~~HvAg!$%A$56>a!e4::;Gw{{}GX?$Xv6&1E3%6A:./fgA68F&,D {zz&! 6F8$d3 xqq	2DIDMK    )NNNN)numpyr   r   r   r   r   r   r	   numpy.versionr
   r*   pandas_ta._typingr   r   r   pandasr   pandas_ta.utilsr   r   r   r   r6    r8   r7   <module>r?      sv    C C C / 5 5  M M
 "&48GGGG)1G G #+G 	Gr8   