o
    
^Úh3"  ã                   @   s  d Z ddlZddlZddlZddlmZmZmZ G dd„ dƒZe	dkr†eƒ Z
edƒ e
 ¡ r3edƒ ned	ƒ e
 d
dd¡ZerWedeeƒ› d�ƒ eded d d›�ƒ nedƒ e
 d¡Zerkeded›�ƒ nedƒ e
 d
¡Zer€eded›�ƒ dS edƒ dS dS )u—   
Binance Data Provider - RÃ©cupÃ©ration des donnÃ©es historiques depuis Binance
UtilisÃ© pour les signaux uniquement, le trading reste sur Hyperliquid
é    N)ÚDictÚListÚOptionalc                   @   sŒ   e Zd ZdZdd„ Zdedee fdd„Zdd
edededee	e
  fdd„Zd
edee fdd„Zd
edee fdd„Zdefdd„ZdS )ÚBinanceDataProvideru2   Fournisseur de donnÃ©es historiques depuis Binancec                 C   sP  d| _ t t¡| _i | _d| _i dd“dd“dd“d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“d#d$“i d%d&“d'd(“d)d*“d+d,“d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“dEdF“¥i dGdH“dIdJ“dKdL“dMdN“dOdP“dQdR“dSdT“dUdV“dWdX“dYdZ“d[d\“d]d^“d_d`“dadb“dcdd“dedf“dgdh“¥i didj“dkdl“dmdn“dodp“dqdr“dsdt“dudv“dwdx“dydz“d{d|“d}d~“dd€“d�d‚“dƒd„“d…d†“d‡dˆ“d‰dŠ“¥i d‹dŒ“d�dŽ“d�d�“d‘d’“d“d”“d•d–“d—d˜“d™dš“d›dœ“d�dž“dŸd “d¡d¢“d£d¤“d¥d¦“d§d¨“d©dª“d«d¬“¥d­d®d¯d°d±d²d³d´dµd¶d·œ
¥| _d S )¸Nzhttps://api.binance.com/api/v3i,  ÚBTCÚBTCUSDTÚETHÚETHUSDTÚSOLÚSOLUSDTÚAVAXÚAVAXUSDTÚLINKÚLINKUSDTÚDOTÚDOTUSDTÚUNIÚUNIUSDTÚAAVEÚAAVEUSDTÚMATICÚ	MATICUSDTÚADAÚADAUSDTÚATOMÚATOMUSDTÚLTCÚLTCUSDTÚBCHÚBCHUSDTÚXRPÚXRPUSDTÚDOGEÚDOGEUSDTÚTRXÚTRXUSDTÚETCÚETCUSDTÚFILÚFILUSDTÚXLMÚXLMUSDTÚVETÚVETUSDTÚICPÚICPUSDTÚTHETAÚ	THETAUSDTÚFTMÚFTMUSDTÚALGOÚALGOUSDTÚEOSÚEOSUSDTÚHBARÚHBARUSDTÚNEARÚNEARUSDTÚFLOWÚFLOWUSDTÚMANAÚMANAUSDTÚSANDÚSANDUSDTÚCRVÚCRVUSDTÚGRTÚGRTUSDTÚLRCÚLRCUSDTÚENJÚENJUSDTÚBATÚBATUSDTÚZRXÚ0XUSDTÚCOMPÚCOMPUSDTÚMKRÚMKRUSDTÚYFIÚYFIUSDTÚSUSHIÚ	SUSHIUSDTÚSNXÚSNXUSDTÚRENÚRENUSDTÚKNCÚKNCUSDTÚBANDÚBANDUSDTÚSTORJÚ	STORJUSDTÚZECÚZECUSDTÚDASHÚDASHUSDTÚNEOÚNEOUSDTÚQTUMÚQTUMUSDTÚONTÚONTUSDTÚZILÚZILUSDTÚIOSTÚIOSTUSDTÚHOTÚHOTUSDTÚDENTÚDENTUSDTÚWINÚWINUSDTÚBTTÚBTTUSDTÚFUNÚFUNUSDTÚARKÚARKUSDTÚLSKÚLSKUSDTÚBNBÚBNBUSDTÚAPEÚAPEUSDTÚSHIBÚSHIBUSDTÚAPTÚAPTUSDTÚARBÚARBUSDTÚOPÚOPUSDTÚIMXÚIMXUSDTÚDYDXÚDYDXUSDTÚBLURÚBLURUSDTÚLDOÚLDOUSDTÚWLDÚWLDUSDTÚSEIÚSEIUSDTÚSUIÚSUIUSDTÚPEPEÚPEPEUSDTÚBONKÚBONKUSDTÚJTOÚJTOUSDTÚPYTHÚPYTHUSDTÚWIFÚWIFUSDTÚJUPÚJUPUSDTÚTNSRÚTNSRUSDTÚWÚWUSDTÚENAÚENAUSDTÚOMNIÚOMNIUSDTÚREZÚREZUSDTÚIOÚIOUSDTÚZKÚZKUSDTÚZROUSDTÚGUSDTÚDOGSUSDTÚTONUSDTÚCATIUSDTÚ	HMSTRUSDTÚ	EIGENUSDTÚ	NEIROUSDTÚ	TURBOUSDTÚ
PEOPLEUSDT)
ÚZROÚGÚDOGSÚTONÚCATIÚHMSTRÚEIGENÚNEIROÚTURBOÚPEOPLE)Úbase_urlÚloggingÚ	getLoggerÚ__name__ÚloggerÚcacheÚcache_durationÚsymbol_mapping)Úself© rÍ   ú@/var/www/html/HyperOracle/crypto_trader/binance_data_provider.pyÚ__init__   st  ÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$Ü%Û&Ú'Ù(Ø)×*Ö+Õ,Ô-Ó.Ò/Ñ0Ð1Ï2Î3Í4Ì5Ë6Ê7É8È9Ç:Æ;Å<Ä=Ã>Â?Á@ÀA¿B¾C½D¼E»FºG¹H¸I·J¶KµL´M³N²O±P°Q¯R®S­T¬U«V¡zBinanceDataProvider.__init__Úhyperliquid_symbolÚreturnc                 C   s   | j  |¡S )z-Convertit un symbole Hyperliquid vers Binance)rË   Úget)rÌ   rÐ   rÍ   rÍ   rÎ   Úget_binance_symbolz   s   z&BinanceDataProvider.get_binance_symbolÚ1héd   ÚsymbolÚintervalÚlimitc                 C   s˜  z¬|› d|› d|› �}|| j v r#| j | \}}t ¡ | | jk r#|W S |  |¡}|s7| j d|› d�¡ W dS | j› d�}||t|dƒdœ}	tj	||	dd	�}
|
j
d
krc| j d|
j
› d|› �¡ W dS |
 ¡ }g }|D ]&}| t|d ƒt|d ƒt|d ƒt|d ƒt|d ƒt|d ƒdœ¡ qk|t ¡ f| j |< | j dt|ƒ› d|› d�¡ |W S  tyË } z| j d|› d|› �¡ W Y d}~dS d}~ww )u  
        RÃ©cupÃ¨re les candles depuis Binance

        Args:
            symbol: Symbole Hyperliquid (ex: 'BTC')
            interval: Intervalle (1h, 4h, 1d)
            limit: Nombre de candles max 1000

        Returns:
            Liste de candles au format standardisÃ©
        Ú_zSymbole u    non mappÃ© vers BinanceNz/klinesiè  )rÖ   r×   rØ   é
   ©ÚparamsÚtimeoutéÈ   zErreur Binance z pour r   é   é   é   é   é   )ÚtimeÚopenÚhighÚlowÚcloseÚvolumeu   RÃ©cupÃ©rÃ© z	 candles z depuis Binanceu   Erreur rÃ©cupÃ©ration candles ú: )rÉ   rä   rÊ   rÓ   rÈ   ÚwarningrÄ   ÚminÚrequestsrÒ   Ústatus_codeÚerrorÚjsonÚappendÚintÚfloatÚdebugÚlenÚ	Exception)rÌ   rÖ   r×   rØ   Ú	cache_keyÚcached_dataÚ	timestampÚbinance_symbolÚurlrÜ   ÚresponseÚraw_candlesÚcandlesÚrawÚerÍ   rÍ   rÎ   Úget_candles~   sL   

ý







ú
€þzBinanceDataProvider.get_candlesc              
   C   óž   z/|   |¡}|sW dS | j› d�}d|i}tj||dd�}|jdkr-| ¡ }t|d ƒW S W dS  tyN } z| j 	d|› d	|› �¡ W Y d}~dS d}~ww )
u(   RÃ©cupÃ¨re le prix actuel depuis BinanceNz/ticker/pricerÖ   rã   rÛ   rÞ   ÚpricezErreur prix rê   ©
rÓ   rÄ   rí   rÒ   rî   rð   ró   rö   rÈ   rï   ©rÌ   rÖ   rú   rû   rÜ   rü   Údatar   rÍ   rÍ   rÎ   Ú	get_price¿   ó    

€þzBinanceDataProvider.get_pricec              
   C   r  )
u'   RÃ©cupÃ¨re le volume 24h depuis BinanceNz/ticker/24hrrÖ   rã   rÛ   rÞ   ÚquoteVolumezErreur volume rê   r  r  rÍ   rÍ   rÎ   Úget_24h_volumeÕ   r  z"BinanceDataProvider.get_24h_volumec                 C   s0   zt j| j› d�dd�}|jdkW S    Y dS )u#   Teste la connectivitÃ© avec Binancez/pingrã   )rÝ   rÞ   F)rí   rÒ   rÄ   rî   )rÌ   rü   rÍ   rÍ   rÎ   Útest_connectivityë   s
   z%BinanceDataProvider.test_connectivityN)rÔ   rÕ   )rÇ   Ú
__module__Ú__qualname__Ú__doc__rÏ   Ústrr   rÓ   rò   r   r   r  ró   r  r
  Úboolr  rÍ   rÍ   rÍ   rÎ   r      s    k$Ar   Ú__main__z"=== TEST BINANCE DATA PROVIDER ===u   âœ… Connexion Binance OKu   â�Œ ProblÃ¨me connexion Binancer   rÔ   é   u   âœ… u    candles BTC rÃ©cupÃ©rÃ©esz   Dernier prix: $éÿÿÿÿrè   z,.2fu!   â�Œ Ã‰chec rÃ©cupÃ©ration candlesr   u   âœ… Prix ETH: $u   â�Œ Ã‰chec rÃ©cupÃ©ration prixu   âœ… Volume BTC 24h: $z,.0fu    â�Œ Ã‰chec rÃ©cupÃ©ration volume)r  rí   rä   rÅ   Útypingr   r   r   r   rÇ   ÚproviderÚprintr  r  rþ   rõ   r  r  r
  ré   rÍ   rÍ   rÍ   rÎ   Ú<module>   s6    i


à