o
    ðù‹iÏ  ã                   @   sü   d dl Zd dlZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Z dS )<é    Nc                 C   s   t jj| ||d dd ¡ S )Né   T)ÚspanÚmin_periodsÚadjust)ÚpdÚSeriesÚewmÚmean©ÚDFÚN© r   úG/opt/alphahud/venv/lib/python3.10/site-packages/tushare/util/formula.pyÚEMA   s   r   c                 C   ó   t j | |¡ ¡ S ©N)r   r   Úrollingr	   r
   r   r   r   ÚMA   ó   r   c                 C   s~   |   d¡} t| ƒ}t |¡}| d |d< td|ƒD ]}| | | ||d  ||   | ||< qt|ƒD ]}|| | |< q4| S )Nr   r   )ÚfillnaÚlenÚnpÚzerosÚrange)r   r   ÚMÚzÚvarÚir   r   r   ÚSMA   s   

*r   c                 C   sV   | d }| d }| d }t t || tt|dƒ| ƒƒtt|dƒ| ƒƒ}t||ƒ}|S )NÚcloseÚhighÚlowr   )ÚMAXÚABSÚREFr   )r   r   ÚCÚHÚLÚTR1Úatrr   r   r   ÚATR   s   0
r*   c                 C   r   r   )r   r   r   Úmaxr
   r   r   r   ÚHHV$   r   r,   c                 C   r   r   )r   r   r   Úminr
   r   r   r   ÚLLV(   r   r.   c                 C   r   r   )r   r   r   Úsumr
   r   r   r   ÚSUM,   r   r0   c                 C   s   t | ƒS r   )Úabs)r   r   r   r   r#   0   s   r#   c                 C   s   t | |k| |ƒ}|S r   ©ÚIF©ÚAÚBr   r   r   r   r"   4   ó   r"   c                 C   s   t | |k | |ƒ}|S r   r2   r4   r   r   r   ÚMIN9   r7   r8   c                 C   s0   t  | ||¡}tt|ƒƒD ]}|| ||< q|S r   )r   Úwherer   r   )ÚCONDÚV1ÚV2r   r   r   r   r   r3   >   s   r3   c                 C   s   |   |¡}| | }|S r   )Údiff)r   r   r   r   r   r   r$   E   s   
r$   c                 C   r   r   )r   r   r   Ústdr
   r   r   r   ÚSTDK   r   r?   c                 C   sL   t | |ƒ}t | |ƒ}|| }t ||ƒ}|| d }|||dœ}	t |	¡}
|
S )Né   )ÚDIFFÚDEAÚMACD©r   r   Ú	DataFrame)r   ÚFASTÚSLOWÚMIDÚEMAFASTÚEMASLOWrA   rB   rC   ÚDICTÚVARr   r   r   rC   O   s   



rC   c                 C   s€   | d }| d }| d }|t ||ƒ t||ƒt ||ƒ  d }t||dƒ}t||dƒ}	d| d|	  }
||	|
dœ}t |¡}|S )	Nr   r    r!   éd   r   é   r@   )ÚKDJ_KÚKDJ_DÚKDJ_J)r.   r,   r   r   rE   )r   r   ÚM1ÚM2r%   r&   r'   ÚRSVÚKÚDÚJrK   rL   r   r   r   ÚKDJZ   s   &
rX   c                 C   s<   | d }|t ||ƒ d }t||ƒ}||dœ}t |¡}|S )Nr   rM   )ÚOSCÚMAOSC)r   r   r   rE   )r   r   r   r%   ÚOSrZ   rK   rL   r   r   r   rY   g   s   


rY   c           	      C   sJ   | d }t ||ƒt ||ƒ t ||ƒ t ||ƒ d }d|i}t |¡}|S )Nr   é   ÚBBI©r   r   rE   )	r   ÚN1ÚN2ÚN3ÚN4r%   ÚbbirK   rL   r   r   r   r]   p   s
   ,
r]   c                 C   sN   t | ||||ƒ}||t||ƒ  }||t||ƒ  }	|||	dœ}
t |
¡}|S )N)ÚBBIBOLLÚUPERÚDOWN)r]   r?   r   rE   )r   r_   r`   ra   rb   r   r   Úbbibollre   rf   rK   rL   r   r   r   rd   x   s   
rd   c                 C   s$  | d }t ||ƒt |d| ƒ t |d| ƒ d }t ||ƒt |d| ƒ t |d| ƒ d }	t ||ƒt |d| ƒ t |d| ƒ d }
t ||ƒt |d| ƒ t |d| ƒ d }t ||ƒt |d| ƒ t |d| ƒ d }t ||ƒt |d| ƒ t |d| ƒ d }||	|
|||dœ}t |¡}|S )Nr   r@   r\   rN   )ÚPBX1ÚPBX2ÚPBX3ÚPBX4ÚPBX5ÚPBX6rD   )r   r_   r`   ra   rb   ÚN5ÚN6r%   rh   ri   rj   rk   rl   rm   rK   rL   r   r   r   ÚPBX   s   ******ÿ
rp   c                 C   sP   | d }t ||ƒ}|dt||ƒ  }|dt||ƒ  }|||dœ}t |¡}|S )Nr   r@   )ÚBOLLÚUBÚLB)r   r?   r   rE   )r   r   r%   Úbollrr   rs   rK   rL   r   r   r   rq      s   

rq   c                 C   sF   | d }d|t ||ƒ  t ||ƒ }t||ƒ}||dœ}t |¡}|S )Nr   rM   )ÚROCÚMAROC©r$   r   r   rE   )r   r   r   r%   Úrocrv   rK   rL   r   r   r   ru   ™   s   


ru   c                 C   s8   | d }|t ||ƒ }t||ƒ}||dœ}t |¡}|S )Nr   )ÚMTMÚMTMMArw   )r   r   r   r%   Úmtmrz   rK   rL   r   r   r   ry   ¢   s   


ry   c                 C   s–   | d }| d }| d }| d }|| | d }t t|t|dƒk|| dƒ|ƒt t|t|dƒk || dƒ|ƒ }ddd|   }d	|i}	t |	¡}
|
S )
Nr   r    r!   ÚvolrN   r   r   rM   ÚMFI)r0   r3   r$   r   rE   )r   r   r%   r&   r'   ÚVOLÚTYPr;   ÚmfirK   rL   r   r   r   r}   «   s   ÿ
r}   c                 C   sj   | d }t | d |ƒ}t| d |ƒ}t|| ||  d |ƒ}t||ƒ}t||ƒ}||dœ}	t |	¡}
|
S )Nr   r!   r    rM   )ÚSKDJ_KÚSKDJ_D)r.   r,   r   r   r   rE   )r   r   r   ÚCLOSEÚLOWVÚHIGHVrT   rU   rV   rK   rL   r   r   r   ÚSKDJ¹   s   



r†   c           
      C   s|   | d }| d }| d }dt ||ƒ|  t ||ƒt||ƒ  }dt ||ƒ|  t ||ƒt||ƒ  }||dœ}t |¡}	|	S )Nr    r!   r   rM   )ÚWR1ÚWR2)r,   r.   r   rE   )
r   r   r_   ÚHIGHÚLOWrƒ   r‡   rˆ   rK   rL   r   r   r   ÚWRÅ   s   &&

r‹   c           
      C   sv   | d }|t ||ƒ t ||ƒ d }|t ||ƒ t ||ƒ d }|t ||ƒ t ||ƒ d }|||dœ}t |¡}	|	S )Nr   rM   )ÚBIAS1ÚBIAS2ÚBIAS3r^   )
r   r_   r`   ra   rƒ   rŒ   r   rŽ   rK   rL   r   r   r   ÚBIASÐ   s   
r   c                 C   s¶   | d }t |dƒ}tt|| dƒ|dƒtt|| ƒ|dƒ d }tt|| dƒ|dƒtt|| ƒ|dƒ d }tt|| dƒ|dƒtt|| ƒ|dƒ d }|||dœ}	t |	¡}
|
S )Nr   r   r   rM   )ÚRSI1ÚRSI2ÚRSI3)r$   r   r"   r#   r   rE   )r   r_   r`   ra   rƒ   ÚLCr   r‘   r’   rK   rL   r   r   r   ÚRSIÚ   s   
...
r”   c              	   C   sÎ   | d }| d }| d }t |t|dƒkdt|| |t|dƒ ƒƒ}t |t|dƒkdt|| |t|dƒ ƒƒ}t||ƒ}t||ƒ}	t ||	k||	 | t ||	kd||	 |	 ƒƒ}
t|
|ƒ}|
|dœ}t |¡}|S )Nr    r!   Úopenr   r   )ÚADTMÚMAADTM)r3   r$   r"   r0   r   r   rE   )r   r   r   r‰   rŠ   ÚOPENÚDTMÚDBMÚSTMÚSBMÚADTM1r—   rK   rL   r   r   r   r–   å   s    ÿ*

ÿ


r–   c              
   C   s  | d }| d }t || t|dƒt|dƒ kdtt|t|dƒ ƒt|t|dƒ ƒƒƒ}t || t|dƒt|dƒ kdtt|t|dƒ ƒt|t|dƒ ƒƒƒ}t||ƒt||ƒt||ƒ  }	t||ƒt||ƒt||ƒ  }
|	|
 }t|||ƒ}t||ƒ}|||dœ}t |¡}|S )Nr    r!   r   r   )ÚDDIÚADDIÚAD)	r3   r$   r"   r#   r0   r   r   r   rE   )r   r   r_   r   rR   r&   r'   ÚDMZÚDMFÚDIZÚDIFÚddirŸ   r    rK   rL   r   r   r   rž   ö   s    $ÿ$ÿ

rž   )!Únumpyr   Úpandasr   r   r   r   r*   r,   r.   r0   r#   r"   r8   r3   r$   r?   rC   rX   rY   r]   rd   rp   rq   ru   ry   r}   r†   r‹   r   r”   r–   rž   r   r   r   r   Ú<module>   s>   			
		
