
    i                        d Z ddlZddlZddlZej
                  j                  ej
                  j                  ej
                  j                  e	            d      Z
ej
                  j                  e
      s ed        e         ee
d      5 Z ej                   e      Zddd        ed ee              eD  cg c]  } | d   dkD  s|  c} ZeD  cg c]  } | d   dk  s|  c} Z ed ee       d	 ee               ed
 eD              Z ededd        e        i ZeD ]}  Zej3                  dd      j5                  d      d   Zeevr	ddg dee<   ee   dxx   dz  cc<   ee   dxx   ej3                  dd      z  cc<   ee   d   j9                  ed            ed        eej=                         d       D ]9  \  ZZ eed          eed         z  Z  ede ded    ded   dde dd	       ;  e         ed        eD  cg c]  } | j3                  d!d      d"k  s|  c} Z!eD  cg c]#  } d"| j3                  d!d      cxk  rd#k  sn n| % c} Z"eD  cg c]  } | j3                  d!d      d#k\  s|  c} Z#d$e!fd%e"fd&e#ffD ]k  \  Z$Z%e%s	 ed' e%D               ee%      z  Z& ed( e%D               ee%      z  d)z  Z' ed* e%D              Z( ede$ d ee%       d+e&dd,e'd-d.e(dd       m  e         ed/       dZ)ed0d D ]i  Zej3                  d1d      dkD  sed1   ed   z
  Z*e)e*z  Z)e*d2kD  s/ eded3    d4ed1   dd5ed   dd6e*dd7ed    d8ej3                  d!d      d9d:       k  ed;e)dd        e         ed<       i Z+eD ]j  Zej3                  d=d      Z,e,e+vr	dddd>e+e,<   e+e,   dxx   dz  cc<   e+e,   dxx   ej3                  dd      z  cc<   ed   dkD  s[e+e,   d?xx   dz  cc<   l  ee+j=                         d@       D ]0  \  Z,Zed?   ed   z  d)z  Z' ede, ded    dAe'd-d.ed   dd	       2  e         edB       eD  cg c]  } | j3                  dCd      dDk  s|  c} Z-eD  cg c]#  } dD| j3                  dCd      cxk  rdEk  sn n| % c} Z.eD  cg c]  } | j3                  dCd      dEk\  s|  c} Z/dFe-fdGe.fdHe/ffD ]k  \  Z$Z%e%s	 edI e%D               ee%      z  Z& edJ e%D               ee%      z  d)z  Z' edK e%D              Z( ede$ d ee%       d+e&dd,e'd-d.e(dd       m  e         edL       edMd D ]  Zed   dkD  rdNndOZ0 ede0 ded3   dPdQed   dd7ej3                  dd      ddRej3                  d1d      ddSej3                  d!d      d9dTej3                  d=dU       dej3                  dCd      d9dVej3                  ddU               y# 1 sw Y   xY wc c} w c c} w c c} w c c} w c c} w c c} w c c} w c c} w )Wu2   Analyse détaillée des performances du Market Spy    Nzespion_history.jsonzPas d'historique spyrzTotal trades: pnl_pctzWins: z
, Losses: c              #   @   K   | ]  }|j                  d d        ywpnl_usdtr   Nget.0ts     ./analyze_spy_perf.py	<genexpr>r      s     0j!$0   zTotal PnL: z+.4fz USDTexit_reasonunknown )countpnlpnl_listr      r   r   r   zEXIT REASONS:c                     | d   d    S Nr   r    xs    r   <lambda>r   !       1Q4=.     )keyz  z: z	x | PnL: z USDT | Avg: z+.2f%zHOLD TIME ANALYSIS:hold_minutes      z<5minz5-15minz>15minc              #   &   K   | ]	  }|d      ywr   Nr   r
   s     r   r   r   -        ,1!I,,   c              #   2   K   | ]  }|d    dkD  sd  ywr   r   r   Nr   r
   s     r   r   r   .        4q1Y<!#34   d   c              #   @   K   | ]  }|j                  d d        ywr   r   r
   s     r   r   r   /        6QAEE*a(6r   z trades | Avg: z% | WR: z.0fz	% | PnL: zGAINS LEFT ON TABLE (last 30):imax_pnlg      ?symbolz: max=z% sold=z% left=z% (z) hold=z.1fminz  --> Total gains left: zSURGE TYPE PERFORMANCE:
surge_type)r   r   winsr3   c                     | d   d    S r   r   r   s    r   r   r   K   r   r   zx | WR: zSURGE STRENGTH ANALYSIS:surge_strengthg      ?g      @z<1.5%z1.5-3%z>3%c              #   &   K   | ]	  }|d      ywr%   r   r
   s     r   r   r   W   r&   r'   c              #   2   K   | ]  }|d    dkD  sd  ywr)   r   r
   s     r   r   r   X   r*   r+   c              #   @   K   | ]  }|j                  d d        ywr   r   r
   s     r   r   r   Y   r.   r   zLAST 15 TRADES:iu   ✅u   ❌12sz | PnL: z USDT) | Max: z
% | Hold: zmin | Surge:  z
% | Exit: )1__doc__jsonosnumpynppathjoindirnameabspath__file__fexistsprintexitopenfhloadhlenr3   lossessum	total_pnlreasonsr   r	   splitr   appendsorteditemsdavg_pnlshortmedlong_tlabelgrpavgwrtotal
total_leftleftstypesstweakmed_sstrongemoji)r   s   0r   <module>rh      sy   8  GGLL!:;=RS	ww~~a	
 !F	!S\ R		"A s1vh  )a)q()	,!I,!+!	, s4ykCK=1 20a00	 Id#5) *  	
 0A	mY'--c215A ;
AJw1AJuz1--AJz!!!I,/0 o 7==?(@A VDAq!J- 3q}#55G	BqcAgJ<y5$}WTNRS
TUV   6q~q1A56:QqAEE.!49r9q:	9!%%2b8!	9U#i%5&7IJ kJE3
,,,s3x74C44s3x?#E6#665'CH:_SJhr#hiX]^bWcchijk  & '
	
34 dAuuYQ|a	l*d
#:Bq{m6!I,t)<GAiLQUCV WtC-(8'9~WXAYZ]@^^ac dd  D 13 4    		
  A	
|Y	'B	 A6r

2Jw1
2Juz1--|ar
6a  FLLN(@A PEB	
6QwZ	#	%B	Brd"QwZLC	!E(4
NOP    !9a.2S89Aq&6 :@S@A	<!%% 0!4;!	<T?Xu$5vG kJE3
,,,s3x74C44s3x?#E6#665'CH:_SJhr#hiX]^bWcchijk   	
34 /Ay\A%E5E	BugQq{3'x)T/B#aeeJXYFZ[_E` a%%	1%d+:aeeNA6Ns5S TEE,+,Aaee4Da.H-M N55+,. //i  *	,0 	7:	9P :A	<sl   X" X/X/X4'X4X9:X9 X>&X>4YY=YY# YYY-Y"X,