
    i#                        d Z  ed        ed        e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+d,d-d
d.d/d0d1d2d3d4d
d5d6d7d8d9d:d&d
d;d<d=d>d?d@d4d
dAdBdCdDdEdFd	d
dG
Z edH        eej	                         dI      D ]N  \  Z\  ZZ edJe dKe         edLedM            edNedO            edPedQ            edRedS           P  edT        edU        ed       dVdWdXdYdZd[d\d]d^d_d`d[daddbdcddd[gZ eedI      D ]N  \  ZZ	 edJe dKe	de            edfe	dg            edhe	dQ            edie	dj            edke	dl           P  edT        edm        ed       dnZ
 ee
        edT        edo        ed       g dpZeD ]  Z edqe          edT       yr)suH   
Diagnostic des contraintes parasites - Vérification complète du code
zd====================================================================================================u)   🔍 DIAGNOSTIC DES CONTRAINTES PARASITESztrading_bot.py ligne 3722z)Score minimum absolu pour tous les achatsu+   CREUX_REBOUND avec score 60-64 sera BLOQUÉzAPattern CREUX_REBOUND peut avoir score base 36 + bonus 30 = 66 OKu2   FAIBLE - Score final généralement >65 avec bonusu'   Vérifier score final après tous bonusu   ⚠️ À SURVEILLER)fichierdescriptionimpactproblemerisqueactionstatusztrading_bot.py ligne 3999-4010u&   Score minimum selon régime de marchéu4   En régime BEAR/CORRECTION: min_score peut être 85!u8   CREUX_REBOUND score 70 sera BLOQUÉ en régime défensifu,   ÉLEVÉ - Peut bloquer totalement les achatsz8Exception pour pattern CREUX_REBOUND (haute performance)u   🔴 CORRECTION REQUISEztrading_bot.py ligne 4035u   Double vérification score >=65zRedondant avec regime_min_scorezDuplication de filtreu,   FAIBLE - Déjà couvert par regime_min_scoreu   Peut être suppriméu   ✅ OK (redondant)ztrading_bot.py ligne 1802u3   1 minute de cooldown entre trades sur même symboleu;   Si LTC quick-exit à 12h14, re-achat bloqué jusqu'à 12h15u2   Peut rater re-entry rapide après sortie techniqueu&   MOYEN - Empêche re-entry opportunisteu0   Réduire à 30s ou 15s pour patterns performantsu   ⚠️ À OPTIMISERzai_predictor.py ligne 616z)Score minimum pour ready dans AIPredictorz2Score 60-64 reste en 'watching' au lieu de 'ready'z4CREUX_REBOUND avec score 66 passe, mais marge faibleu   FAIBLE - Seuil déjà abaisséu   OK - Cohérent avec bonus +30u   ✅ OKzai_predictor.py ligne 1672u%   Pattern POSSIBLE bloqué si score <80z4Pattern POSSIBLE moins prioritaire que CREUX_REBOUNDzAucun - POSSIBLE a 15% win rateu   AUCUN - Protection nécessairezGarder tel quelu   ✅ OK (protection)zai_predictor.py ligne 1652-1667u6   Vérification RSI trap pour signaux ACHAT et score >70u2   Si signal ACHAT avec RSI <30 + bearish → BLOQUÉu.   CREUX_REBOUND DOIT être EXEMPTÉ de ce check!u,   CRITIQUE - Peut bloquer le pattern optimiséz0Ajouter exception: if pattern != 'CREUX_REBOUND'u   🔴 CORRECTION URGENTEztrading_bot.py ligne 3747u#   Signal trop vieux (>10 min) rejetéz%Si cycle IA lent, signal peut expirerz%10 min devrait suffire avec cycle 50szFAIBLE - Marge suffisanteu   OK - Marge de sécuritézai_predictor.py ligne 1653z3not (rsi < 30 and ema_bearish and momentum < 0.002)u2   CREUX_REBOUND avec RSI 20 sera considéré UNSAFE!u>   Exception is_creux_rebound_early existe mais pas utilisée iciu-   CRITIQUE - Bloque exactement le cas optimiséz+Ajouter: ... and not is_creux_rebound_earlyztrading_bot.py ligne 3789z.Revalidation avec score frais depuis watchlistu:   Si watchlist pas à jour, score frais peut être obsolètez+CREUX_REBOUND doit forcer refresh watchlistu*   MOYEN - Dépend de la fraîcheur watchlistz(Forcer update watchlist avant validation)
z1. MIN_SCORE_ABSOLUTE = 65z2. regime_min_score = 65z3. score >= 65 (ligne 4035)z4. trade_cooldown = 60sz5. SCORE_THRESHOLD = 60z6. POSSIBLE score >= 80z$7. RSI trap check (lignes 1652-1667)z8. MAX_SIGNAL_AGE = 600sz&9. is_safe_entry RSI trap (ligne 1653)z10. Fresh score validationu,   
📋 RÉSUMÉ DES CONTRAINTES IDENTIFIÉES:   
z. z   Status: r   z   Risque: r   z   Impact: r   z   Action: r   ze
====================================================================================================u&   🔴 CONTRAINTES CRITIQUES À CORRIGERz)RSI trap check sur signaux ACHAT/score>70z ai_predictor.py lignes 1652-1667z
is_safe_entry = not (rsi < 30 and ema_trend_bearish == 1 and momentum_3 < 0.002)
if is_safe_entry:
    item.status = 'ready'
else:
    item.status = 'rsi_trap_blocked'
u   
# Exception pour CREUX_REBOUND qui NÉCESSITE RSI <30
is_safe_entry = not (rsi < 30 and ema_trend_bearish == 1 and momentum_3 < 0.002 and not is_creux_rebound_early)
if is_safe_entry:
    item.status = 'ready'
else:
    item.status = 'rsi_trap_blocked'
z3CREUX_REBOUND avec RSI 20-30 pourra passer en ready)r   localisationcode_actuel
correctionr   u&   regime_min_score peut être 85 en BEARztrading_bot.py lignes 3999-4029u~   
if score < regime_min_score:
    print(f"Score {score} < {regime_min_score} (régime {regime_name}) - BLOQUÉ")
    continue
u  
# Exception pour CREUX_REBOUND (pattern haute performance 60-75% win rate)
if score < regime_min_score and pattern != 'CREUX_REBOUND':
    print(f"Score {score} < {regime_min_score} (régime {regime_name}) - BLOQUÉ")
    continue
elif pattern == 'CREUX_REBOUND' and score < 60:
    # Pour CREUX_REBOUND: seuil minimum absolu 60
    print(f"CREUX_REBOUND score {score} < 60 minimum - BLOQUÉ")
    continue
u@   CREUX_REBOUND pourra trader même en régime BEAR avec score 60+ztrade_cooldown 60s trop longzself.trade_cooldown = 60z.self.trade_cooldown = 30  # 30s au lieu de 60su+   Re-entry possible après 30s au lieu de 60sr   u      📍 r   u      ⚡ Impact: z   Code actuel:r   z   Correction:r   u%   📊 SIMULATION AVEC/SANS CORRECTIONSuO  
CAS: LTC creux à 12h05, RSI 20, Score base 36 + CREUX_REBOUND +30 = 66
Régime: CORRECTION (min_score = 65)

SANS CORRECTIONS:
├─ ai_predictor.py ligne 1653: is_safe_entry check
│  └─ RSI 20 < 30 + bearish + momentum < 0.002
│  └─ ❌ BLOQUÉ: item.status = 'rsi_trap_blocked'
│  └─ Pattern jamais assigné à 'ready'
│
└─ ❌ ACHAT IMPOSSIBLE

AVEC CORRECTIONS:
├─ ai_predictor.py ligne 1653: is_safe_entry check
│  └─ Exception: not ... and not is_creux_rebound_early
│  └─ ✅ AUTORISÉ: item.status = 'ready'
│  └─ Pattern = 'CREUX_REBOUND', Score = 66
│
├─ trading_bot.py ligne 4010: regime_min_score check
│  └─ Score 66 >= 65 (min régime) ✅
│  └─ Pattern = 'CREUX_REBOUND' → Exception ✅
│  └─ ✅ AUTORISÉ
│
└─ ✅ ACHAT EXÉCUTÉ à 12h05 au creux!
u   ✅ ACTIONS À APPLIQUER)u]   1. 🔴 URGENT: Ajouter exception is_creux_rebound_early dans is_safe_entry (ai_predictor.py)uV   2. 🔴 URGENT: Ajouter exception CREUX_REBOUND dans regime_min_score (trading_bot.py)uL   3. 🟠 IMPORTANT: Réduire trade_cooldown 60→30 secondes (trading_bot.py)uB   4. 🟡 OPTIONNEL: Vérifier fraîcheur watchlist avant validationuA   5. ✅ TESTER: Redémarrer bot et observer prochain creux RSI <30z   N)__doc__printCONTRAINTES_IDENTIFIEES	enumerateitemsinomdetails	critiquescrit
simulationactionsr        #./diagnose_contraintes_parasites.py<module>r      s\   i  1 2 i  /B?WF;(# 4?HN@L+! /83+@(&$ /LOH:D'  /BFJ21  0>H52#'  5OFD@D+- /<9;-,! 0LFTA?+/ /GNA><(#wd L 5 6"#:#@#@#BAF -A~W	BqcC5/	K)*
+,	K)*
+,	K)*
+,	K)*
+,-   . / i  @: H%* =9
	 U%* 331F?S0	d A& 1GAt	BqcD$%
&'	HT.)*
+,	ODN+
,-	OD/0
12	N4-.
/01   - . i 
4 j      ! i   F	Cx.  r   