o
    ë¬iÈ9  ã                   @   sÔ  d Z ddlZddlZddlmZ ddlZG dd„ dƒZe	dƒ e	dƒ e	dƒ edd	d
d�Z
g d¢Zg Ze	dƒ eD ]aZe	de› d�dd� e
 edd¡Zedu rVe	dƒ q:edd�Ze e¡Zer—eed< e e¡ ed dkrsdn	ed dkr{dndZe	e› ded d›ded d  d!›d"ed# › �ƒ q:e	d$ƒ q:e	d%ƒ e	d&ƒ e	dƒ es²e	d'ƒ edƒ ejd(d)„ d*d+� e	d,d-d.›dd/d0›dd1d2›dd3d2›dd4d5›dd6d5›dd7d5›dd8d5›dd9› �ƒ e	d:ƒ eD ]LZed dkròdn	ed dkrúdndZe	ed d.›ded d;›d<ed d  d=›d<ed> d?›ded# d5›ded@ d?›d<edA d?›d<edB d?›d<e› �ƒ qèdCdD„ eD ƒZe dEdD„ eD ƒ¡Ze dFdD„ eD ƒ¡Ze	dGƒ e	dHeeƒ› �ƒ e	dIeeƒ› dJeeƒeeƒ d  d!›dK�ƒ e	dLed›dM�ƒ e	dNed›dM�ƒ e�r°e dOdD„ eD ƒ¡Ze dPdD„ eD ƒ¡Ze	dQedR›dM�ƒ e	dSed  d!›dM�ƒ e�rïed Z e	dTƒ e	dUe d › �ƒ e	dVe d d›dM�ƒ e	dWe d d  d!›dM�ƒ e	dXe d> dR›�ƒ e	dYe d# › �ƒ e !dZdD„ eD ƒ¡Z"e	d[ƒ e	d\e"dR›dM�ƒ e"dk �reeƒeeƒ d]k�re	d^ƒ n)e"d_k �r0eeƒeeƒ d`k�r0e	daƒ neeƒeeƒ dbk�r@e	dcƒ ne	ddƒ e	deƒ e	dfƒ e	dgƒ e	dhe�rWendd›di�ƒ e#djdkƒ�Z$ej%ee$dle&dm� W d  ƒ n	1 �sxw   Y  e	dnƒ e	d,d› �ƒ edk�r·eeƒeeƒ d]k�r·e	doƒ e	dpeeƒeeƒ d  dq›dr�ƒ e	dsedR›dt�ƒ n,eduk�rÕeeƒeeƒ d`k�rÕe	dvƒ e	dwedR›dM�ƒ nedk�rße	dxƒ ne	dyƒ e	d› ƒ dS )zuE  
SYSTÃˆME HYBRIDE - Meilleur des deux mondes

Combine:
1. ParamÃ¨tres adaptatifs (adaptive_system.py - meilleure performance)
2. Confirmation modÃ©rÃ©e (2 signaux min au lieu de 3)
3. FILTRE MARKET REGIME (skip downtrends forts)
4. Risk management intelligent

RÃ©sout le problÃ¨me ETH: Ã©vite de trader les downtrends forts
é    N)ÚMartingaleBacktesterc                   @   sJ   e Zd ZdZddd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚHybridSystemu1   SystÃ¨me hybride adaptatif + filtres intelligentséè  c                 C   s"   || _ || _d | _g | _d| _d S )Nr   )ÚcapitalÚinitial_capitalÚpositionÚtradesÚconsecutive_losses)Úselfr   © r   úI/var/www/html/HyperOracle/crypto_trader/martingale_degen/hybrid_system.pyÚ__init__   s
   
zHybridSystem.__init__c                 C   s  |dk rdS |j |d |… }|d  d¡ ¡ }|d  d¡ ¡ }|j | d }|dkr2|| | nd}|dk r:dS ||d krCd	}n||d
 k rLd}nd}|d  ¡ }	|	 ¡ }
|d |d  }| ¡ }||d  ¡  d }|d  ¡ }|j | d }|dkrƒ|| nd}|||
|||ddœS )uE   DÃ©tecte le rÃ©gime de marchÃ© et filtre les conditions dÃ©favorableséd   NÚcloseé2   é   r   gš™™™™™©¿gR¸…ëQð?ÚUPTRENDg\�Âõ(\ï?Ú	DOWNTRENDÚRANGINGÚhighÚlowÚvolumeé   T)ÚtrendÚtrend_strengthÚ
volatilityÚatrÚatr_pctÚvolume_ratioÚ	tradeable)ÚilocÚtailÚmeanÚ
pct_changeÚstd)r
   ÚdfÚiÚrecentÚma50Úma20Úcurrent_pricer   r   Úreturnsr   Úhigh_lowr   r   Úvol_maÚcurrent_volr   r   r   r   Údetect_market_regime   s<   ùz!HybridSystem.detect_market_regimec           	      C   s   |d dkr	d}n|d dkrd}n|d dkrd}nd}|d	 dkr*t |d
 ƒ}n|d	 dk r7t |d ƒ}n|}t|dƒ}|d d }|d d }tdt|dƒƒ}tdt|dƒƒ}| jdkrbd}nd}| j| }||d |  }t|| jd ƒ}||||dœS )u-   ParamÃ¨tres adaptatifs basÃ©s sur volatilitÃ©r   g       @é
   ç      ð?r   ç      à?é   é(   r   g333333ó?çffffffæ?r   g      @g333333Ó?g      @é   g{®Gáz„?g{®Gáz”?r   )ÚleverageÚtp_pctÚsl_pctÚposition_size)ÚintÚminÚmaxr	   r   )	r
   ÚregimeÚbase_leverager7   r8   r9   Úrisk_pctÚrisk_amountr:   r   r   r   Úcalculate_adaptive_paramsQ   s8   


üz&HybridSystem.calculate_adaptive_paramsc                 C   sL  |j | }|j td|d ƒ|… }d}d}|d |d  }|d |d   ¡ }	||	d kr/dS |d |d k}
|d	 d
krF|
rFd}|d7 }n|d	 dkrU|
sUd}|d7 }n|d	 dkre|
r_dnd}|d7 }|d dkro|d7 }|d  d¡ ¡ }|
r‡|d |d kr‡|d7 }n|
s•|d |d k r•|d7 }|dk r›dS ||t|d dƒdœS )u6   Signaux avec CONFIRMATION MODÃ‰RÃ‰E (2+ au lieu de 3+)r   r   Nr   r   g      ø?r   Úopenr   r   ÚLONGr   r   ÚSHORTr   r2   r   r   g)\�Âõ(ð?g®Gáz®ï?r6   g      @r1   )ÚsideÚconfirmationsÚ
confidence)r    r=   r"   r!   r<   )r
   r%   r&   r>   Úcurrentr'   rG   rF   Úcurrent_rangeÚ	avg_rangeÚ
is_bullishr)   r   r   r   Údetect_entry_signal�   s>   



ýz HybridSystem.detect_entry_signalc           
      C   sn  |j | }|d dkra|d d|d d   }|d d|d d   }|d |kr+d	S |d |kr3d
S |d |d  |d  }||d d d kr_|d |d |d  d  }	|d |	k r_dS dS |d d|d d   }|d d|d d   }|d |kr�d	S |d |kr‰d
S |d |d  |d  }||d d d krµ|d |d |d  d  }	|d |	krµdS dS )zGestion de sortie avec trailingrF   rD   Úentryr   r8   r   r9   r   )TÚTP)TÚSLr2   r5   )TÚTRAILING)FN)r    )
r
   r%   r&   r   ÚparamsrI   ÚtpÚslÚprofitÚtrailingr   r   r   Úshould_exit´   s4   
òzHybridSystem.should_exitc                 C   sâ   | j sdS | j d }| j d dkr|| j d  | j d  }n| j d | | j d  }||d 9 }|d8 }|d | }|  j|7  _|d	k}|rKd	| _n|  jd
7  _| j | j d || j d ||d ||| j d dœ¡ d| _ dS )zFerme et enregistre le tradeNrR   rF   rD   rN   r7   gü©ñÒMbP?r:   r   r   r   rG   )rN   ÚexitrF   Úpnl_usdÚpnl_pctÚwonÚ	exit_typerG   )r   r   r	   r   Úappend)r
   Ú
exit_pricer\   rR   rZ   rY   r[   r   r   r   Úclose_tradeÛ   s2   
ø
zHybridSystem.close_tradec              	   C   sâ  t dt|ƒƒD ]U}|  ||¡}|r| dd¡sq|  |¡}| jr<|  ||| j| jd ¡\}}|r;|  |j| d |¡ q| j	dkrBq|  
|||¡}|r\|j| d |d ||d d	œ| _q| jsbd
S dd„ | jD ƒ}dd„ | jD ƒ}	| j| j | j d }
t|ƒt| jƒ }|r’t dd„ |D ƒ¡nd}|	r t dd„ |	D ƒ¡nd}|	r¸ttdd„ |D ƒƒtdd„ |	D ƒƒ ƒnd}| j}d}| j}| jD ]}||d 7 }||krÓ|}|| | d }||krá|}qÅ|
| jt| jƒ|||||dœS )u   Backtest le systÃ¨me hybrider   r   FrR   r   é   rF   rG   )rN   rF   rR   rG   Nc                 S   s   g | ]}|d  r|‘qS ©r[   r   ©Ú.0Útr   r   r   Ú
<listcomp>+  ó    z)HybridSystem.backtest.<locals>.<listcomp>c                 S   s   g | ]}|d  s|‘qS ra   r   rb   r   r   r   re   ,  rf   c                 S   ó   g | ]}|d  ‘qS ©rZ   r   rb   r   r   r   re   0  ó    r   c                 S   rg   rh   r   rb   r   r   r   re   1  ri   c                 S   rg   )rY   r   rb   r   r   r   re   2  ri   iç  rY   )Úroir   r   Úwin_rateÚavg_winÚavg_lossÚprofit_factorÚmax_dd)ÚrangeÚlenr/   ÚgetrB   r   rW   r_   r    r	   rM   r   r   r   Únpr"   ÚabsÚsum)r
   r%   r&   r>   rR   rW   r\   ÚsignalÚwinsÚlossesÚtotal_returnrk   rl   rm   rn   Úpeakro   Úcaprd   Úddr   r   r   Úbacktest  sb   

ü€0
€øzHybridSystem.backtestN)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r/   rB   rM   rW   r_   r}   r   r   r   r   r      s    
403')r   zP================================================================================u8   ðŸ”¥ SYSTÃˆME HYBRIDE - Adaptatif + Filtres Intelligentsg     @�@gü©ñÒMb@?é<   )r   Útrading_fee_pctÚtimeout_minutes)ÚBTCUSDTÚETHUSDTÚSOLUSDTÚBNBUSDTÚADAUSDTÚAVAXUSDTu/   
ðŸ“Š Tests 4h avec filtrage de market regime:
u   ðŸ§ª z...ú )ÚendÚ4hiô  u   â�Œr   )r   Úsymbolrj   r0   u   âœ…u   âš ï¸�z ROI: z+.2fz% | WR: rk   r   z.1fz% | Trades: r   u2   âš ï¸�  Aucun trade (marchÃ© dÃ©favorable filtrÃ©)zR

================================================================================u    ðŸ�† RÃ‰SULTATS SYSTÃˆME HYBRIDEu>   
âš ï¸�  Tous les marchÃ©s filtrÃ©s (conditions dÃ©favorables)c                 C   s   | d S )Nrj   r   )Úxr   r   r   Ú<lambda>{  s    r�   T)ÚkeyÚreverseÚ
ÚSymbolz<12zROI%z>8zWR%z>6ÚPFÚTradesz>7zDD%zAvg+zAvg-ÚStatuszZ------------------------------------------------------------------------------------------z>7.2fz% z>5.1frn   z>6.2fro   rl   rm   c                 C   s   g | ]
}|d  dkr|‘qS )rj   r   r   ©rc   Úrr   r   r   re   ‡  s    re   c                 C   rg   ©rj   r   r˜   r   r   r   re   ˆ  ri   c                 C   rg   rš   r   r˜   r   r   r   re   ‰  ri   u   
ðŸ“ˆ STATISTIQUES:z   Tests:               z   Profitables:         z (z%)z   ROI moyen:           ú%u      ROI mÃ©dian:          c                 C   rg   rš   r   r˜   r   r   r   re   ’  ri   c                 C   rg   )rk   r   r˜   r   r   r   re   “  ri   z   ROI moyen (profit):  +z.2fz   WR moyen (profit):   u   
ðŸ¥‡ MEILLEUR:z   Symbol:  z   ROI:     z   WR:      z   PF:      z   Trades:  c                 C   rg   rš   r   r˜   r   r   r   re   ¢  ri   u   
ðŸŽ¯ ROBUSTESSE:u      Ã‰cart-type: r5   u      âœ… SYSTÃˆME TRÃˆS ROBUSTE!é   g333333ã?u      âœ… SYSTÃˆME ROBUSTEr2   u(      âš ï¸�  SystÃ¨me modÃ©rÃ©ment robusteu      â�Œ SystÃ¨me instableu&   
ðŸ“Š COMPARAISON vs AUTRES SYSTÃˆMES:z7   Adaptive System:  +16.37% ROI moyen (sur profitable)z7   Final System:     +11.01% ROI moyen (sur profitable)z   Hybrid System:    z% ROI moyen (sur profitable)zhybrid_system_results.jsonÚwr6   )ÚindentÚdefaultu,   
ðŸ’¾ RÃ©sultats: hybrid_system_results.jsonu>   ðŸŽ‰ SYSTÃˆME HYBRIDE EXCELLENT - ESPÃ‰RANCE POSITIVE ROBUSTE!u      âœ… z.0fu   % de taux de rÃ©ussiteu      âœ… +z% ROI moyené   u9   âœ… SYSTÃˆME HYBRIDE BON - EspÃ©rance positive confirmÃ©ez   ROI moyen: +u(   âš ï¸�  SystÃ¨me lÃ©gÃ¨rement profitableu   â�Œ SystÃ¨me non profitable)'r�   ÚpandasÚpdÚnumpyrs   Úmartingale_backtesterr   Újsonr   ÚprintÚ
backtesterÚsymbolsÚresultsrŽ   Úfetch_binance_datar%   Úsystemr}   Úresultr]   ÚstatusrX   ÚsortÚresÚ
profitabler"   Úavg_roiÚmedianÚ
median_roirq   Ú
avg_profitÚavg_wrÚbestr$   Ústd_roirC   ÚfÚdumpÚstrr   r   r   r   Ú<module>   sØ     <ý


$4
N$*ÿÿÿþþ
þ, 
 

ÿ " 

