
    iX                     F   d dl Z d dlZ e j                   eddd            Zej                  di       Z ed        edej                  d	               ed
ej                  d               edej                  d               edej                  d               edej                  d               edej                  d               edej                  d               edej                  d               edej                  d               edej                  di                e j                   eddd            ZeD  cg c]  } d| j                  dd      v s|  c} Z	 ed  e
e	       d!       e	D ]  Zej                  d	d       Zej                  d"d       Zej                  d#d       Zej                  d$d%      Zej                  d&d%      Z eej                  d'd            dd( Z ed)e d*e d+ed,d-e d.e d/e         ej                  d	d       Zej                  dd       Z ed0        ed1e d2e        ed kD  rQed kD  rLd3Z ed4e        eek  r ed5e d6ed7d8        ed9       n ed:       ed;k7  r ed<e d=        ed>       ej                  d      d?k(  r3 ed@        edAej                  d       dB        edC        edD        edE       ej*                  j-                  dF      rk edFdd      5 Zej1                         Zddd        ee      D ];  \  ZZdGev sdej;                         v s edHedIz    dJej=                                 = yyc c} w # 1 sw Y   VxY w)K    Nzpositions.jsonrzutf-8)encoding	AIXBTUSDTz+=== POSITION AIXBTUSDT (positions.json) ===z  entry_price   : entry_pricez  source        : sourcez  surge_type    : 
surge_typez  surge_strength: surge_strengthz  timestamp     : 	timestampz  trailing_stop : trailing_stopz  stop_loss     : 	stop_lossz  max_price     : 	max_pricez  quantity      : quantityz  indicators    : 
indicatorsztrade_history.jsonAIXBTsymbol z$
=== AIXBT dans trade_history.json (z trade(s)) ===
exit_pricepnlpattern?reason
entry_time   z  entry=z exit=z pnl=z.2fz	 pattern=z reason=z time=z
=== COHERENCE ===z	  Entry: z, Trailing Stop: gܝ.4?z  Prix dashboard: u      ⚠️ PROBLEME: prix actuel (z) < trailing_stop (z.5f)uI        => Position devrait être FERMEE (stop-loss trailing non appliqué?)z%  OK: prix au-dessus du trailing stopg4i?u2   
  ⚠️ INCOHERENCE: entry dans positions.json (z") != entry sur dashboard (0.02241)uX        => Le dashboard affiche peut-être un prix converti (USDT->EUR) ou une autre source
MARKET_SPYuD   
  ℹ️ SOURCE: MARKET_SPY (Spy Bot, pas le trading bot principal)z     => Le pattern 'z' vient du market_spy.pyzL     => Le 'pattern inconnu' n'est PAS un pattern technique classique du botz4     => C'est un signal de surge/momentum du spy botz*
=== TRENDING_SURGE dans market_spy.py ===zmarket_spy.pyTRENDING_SURGEz  L   z: )jsonosloadopenposgetpprinttradesaixbtlententryexitsr   r   r   stretimetsassumed_currentpathexistsf	readlineslines	enumerateilinelowerrstrip)r)   s   0./_check_aixbt.py<module>r;      s    dii%sW=>GGK 3 4 155/01 2 155?+, - 155./0 1 155!1234 5 155-./ 0 155123 4 155-./ 0 155-./ 0 155,-. / 155r234 5 
4,cGD	E=qgx)<<= -c%j\H I	 hAEE-#EEE,"E
%%q/CeeIs#GUU8S!FlB'("-E	HUG6%c#YiyQWPXX^_d^e
fgh 	
mQUU?A   	%)". /6eaiO	/
0100AATUWX[T\\]^_Y[57CE7Jlmnhj 55?l"	QS	 |!4 55M
NO	XZ	@B 3 477>>/"	osW	5 U# 04t#|tzz|'CC!uBt{{}o./0 #K 	>L s   "N<N1NN 