
    i                     X   d Z ddlZddlZ edd      5 Z ej
                  e      Zddd        ej                  dddd	dd      Zg ZeD ]h  Z	d
D ]a  Z
e	j                  e
      Zes	 ej                  j                   ee      j                  dd            Zeek\  rej#                  ee	f        h j ej'                  d         ed ee       d       eD ]  \  ZZ	e	j                  dd      Ze	j                  de	j                  dd            Ze	j                  dd      Ze	j                  dd      Ze	j                  de	j                  dd            Ze	j                  dd      Ze	j                  dd      Zedvr ee      ddndZej?                  d      Z  ede  ded d!ed"d#e d$e d%e d&e d'e          e         ed(d      5 Z ej
                  e      Z!ddd       g Z"e!D ]`  Z#e#j                  d)      Zes	 ej                  j                   ee      j                  dd            Zeek\  re"j#                  ee#f       b e"j'                  d*         ed+ ee"       d       i Z$dZ%e"D ]  \  ZZ#e#j                  dd      Ze#j                  d,d      Z&e#j                  d-d      Ze#j                  d.d/      Z'e#j                  d0d      Z(e#j                  d1i       Z)e)j                  d2e)j                  d3d            Ze)j                  d4e)j                  d5d            Z*ej?                  d      Z e'r!e%d6z  Z% ede  d7ed d8e& d%e d9e* d:e(        e$j                  ed      d6z   e$e<     ed;e%         ed<        e+e$jY                         d=       D ]  \  Z-Z. ed>e- d?e. d@         e         edAd      5 Z ej
                  e      Z/ddd        edB       e/jY                         D ]  \  Z0Z1 ede0 d?e1          e         edC       e"D  cg c]1  \  } }|j                  d.      r|j                  d,d      dDk\  s.| |f3 c}} Z2e2j'                  dE        e2ddF D ]  \  ZZ#e#j                  dd      Ze#j                  d,d      Z&e#j                  d-d      Ze#j                  d0d      Z(e#j                  d1i       Z)e)j                  d2e)j                  d3d            Ze)j                  d4e)j                  d5d            Z*ej?                  d      Z  ede  ded d8e&dGdHedId%e d9e* d:e(         y# 1 sw Y   AxY w# e$ r Y w xY w# 1 sw Y   xY w# e$ r Y w xY w# 1 sw Y   xY wc c}} w )Jz/Analyse du Market Spy depuis 7h le 8 mars 2026.    Nzespion_history.jsonzutf-8)encodingi           )	exit_time
entry_time	timestampZ c                     | d   S Nr    xs    ./_analyze_spy_today.py<lambda>r      s
    1     )keyz=== TRADES SPY DEPUIS 7H (z) ===symbol?pnl_pctpnlentry_price
sell_priceexit_reasonsell_reason
surge_typehold_minutes)r   Nz+.2f%z%H:%Mz  z<14sz  pnl=z<9sz  entry=z  sell=z  surge=z  hold=zmin  raison=zespion_opportunities.jsonr	   c                     | d   S r   r   r   s    r   r   r   6   s
    ad r   z&=== OPPORTUNITES DETECTEES DEPUIS 7H (scorereasonexecutedFpattern
indicatorssurge_strengthchange_1scanvolume_spike	vol_ratio   u     ✅ ACHETE  z  score=z  vol=zx  pattern=u   
  Achetés: u     Ignorés par raison:c                     | d    S )Nr*   r   r   s    r   r   r   L   s    1Q4% r   z    z: r   zspy_status.jsonz=== SPY STATUS ===u@   === OPPORTUNITES MANQUEES (score>=70, non acheté) depuis 7h ===F   c                 .    | d   j                  dd       S )Nr*   r!   r   )getr   s    r   r   r   [   s    1Q488GQ// r      z<6z	  raison=z<30s)3__doc__jsondatetimeopenfloadtradescutofftodaytr   r.   tsfromisoformatstrreplacedtappend	Exceptionsortprintlensymr   entrysellr"   surgeholdfloatpnl_strstrftimehouropps
today_oppsoskippedboughtr!   r#   r$   indvolsorteditemsrcstatuskvmissed)r>   rO   s   00r   <module>r\      s%   5   

'2 aTYYq\F 
		4Aq!Q	/
	 
A7 	UU3Z&&44SW__S"5MN<LL"a) 	
 

~
  "3u:,e4 5 
BEB
%%#
C
%%	155,
-CEE-%E55s#DUU=!%%s";<FEE,$E55%D'*+'=sD!#3G;;wD	BtfBs4jwsm8E7'$xX]W^^efjekkwx~w  A  B
B 	
%8 A499Q<D 
	 A	
{	B		""00Rb1IJBV|!!2q'* N # .s:.?uE F
	
 5EB
%%#
CEE'3EUU8R FuuZ'HeeIs#G
%%b
!CGG$cggnc&BCE
''.#''+s";
<C;;wD!4&s4jxwfUXTYYdeldmno!++fa0145  vh     7==?8 DAq	D2aS
 	
g. !TYYq\F  LLN DAq	BqcA3-  H I)	_eb!z1BquuWVWGX\^G^2q'	_ / 0CR[ 	yEB
%%#
CEE'3EUU8S!FeeIs#G
%%b
!CGG$cggnc&BCE
''.#''+s";
<C;;wD	BtfBs4jr
)F4=QVPWW]^a]bbmnumv
wx	ym   (   		<  
`s[   U'(A	U4V A	V V=V&V&-V&'U14U=<U= V
VVV#