
    H$j                         S r SSKrSSKrSSKrSSKJr  SSKJrJrJ	r	J
r
Jr  \" \5      R                  R                  S-  S-  r " S S	5      rg)
u   
V16 — Market: ventana de 5 min en Polymarket.

Strike compartido entre live y paper via fichero en logs/strikes/.
Garantiza que ambos modos ven EXACTAMENTE el mismo precio de referencia.
    N)Path   )Config	GAMMA_API	PRICE_APIUAisologsstrikesc                       \ rS rSrS\S\4S jr SS\R                  S\	S\
4S jjrS\R                  S\S	-  4S
 jrSrg	)Market   start_tscfgc                     Xl         XR                  -   U l        UR                   U 3U l        S U l        S U l        S U l        S U l        X l	        g )N)
r   win_secsend_tsslug_prefixslug	token_yestoken_nostrikestrike_source_cfg)selfr   r   s      $/var/www/html/Poly/V16/v16/market.py__init__Market.__init__   sL    !!LL0OO,XJ7	!	    sessionbinance_pricereturnc                    [        S5       GH)  n UR                  [         SU R                   3S[        S9R                  5       nUS   S   n[
        R                  " US   5      nUS   US   sU l        U l         U R                  R                  [        U R                  5      U R                  R                  [        U R                  5      S	.n[        R                  " [         US
[        S9R                  5       nUR                  S5      (       a  [#        US   5      U l        SU l         [(        R+                  SSS9  [(        U R                   S3-  n	U	R-                  [
        R.                  " U R$                  U R                  U R                  U R                  [1        [2        R2                  " 5       5      S.5      5          g [(        U R                   S3-  n	U	R7                  5       (       a   [
        R                  " U	R9                  5       5      n
U
S   U l        U
R                  SU R                  5      U l        U
R                  SU R                  5      U l        SU l        [;        SU R$                  S S35          gUS:  a  X l        SU l         [(        R+                  SSS9  U	R-                  [
        R.                  " UU R                  U R                  U R                  [1        [2        R2                  " 5       5      S.5      5        [;        SUS S35          g[;        S5          g   g! [4         a     GN~f = f! [4         a     GNf = f! [4         a     Nf = f! [4         a     N`f = f! [<        [>        [@        4 ax  n[;        SUS-    SU 35        URC                  5         URE                  5         URF                  RI                  [        5        [2        RJ                  " S U-   5         S nAGM  S nAf[4         a9  n[;        SUS-    S!U 35        [2        RJ                  " SU-   5         S nAGM:  S nAff = f)"N   /
   timeoutheadersmarketsr   clobTokenIdsr   )symboleventStartTimevariantendDate   )paramsr(   r)   	openPrice
polymarketT)parentsexist_okz.json)r   r   r   r   tsr   r   r   sharedz  [strike] compartido $z,.4fu    (leído de fichero)binancez  [strike] Binance $z (guardado para compartir)z-[market] tokens OK pero sin strike disponibleFz[market] intento z/8 (conn):    z/8: )&rangegetr   r   r   jsonloadsr   r   r   price_symbolr	   r   price_variantr   requestsr   floatr   r   _STRIKES_DIRmkdir
write_textdumpsinttime	Exceptionexists	read_textprintConnectionErrorConnectionResetErrorOSErrorcloser   r)   updatesleep)r   r    r!   attemptrmtokensr1   prstrike_filecachedes               r   
fetch_dataMarket.fetch_data   s   QxGS(KK k499+.B   $&  iLOAn$5606q	6!9-"&))"8"8*-dmm*<#'99#:#:#&t{{#3	F "!&!Rdf  vvk**&+B{O&<-9*!(..td.K*6DII;e9L*LK'224::-1[[-1^^-1]]-1YY-0-=? 4    $ +( +		{%-@@%%''
!%K,A,A,C!D&,X&6)/K)P)/J)O-5* 7D7I J4 5 6#
 !1$"/K)2D&
$**4$*G#..tzz)6)-)-)-),TYY[)9; 0  0t0D E6 7 8EGW  j i  ) ! ! !  % " %  $%97C ()'!)KsCD  "&&r*

1w;'' ()'!)D<=

1w;''(s   A,M=>B2M1BL;,M=9BMM= A9M-M=+M=;
M	MM		M
MM=MM=
M*'M=)M**M=-
M:7M=9M::M==QA,PQ-QQNc                 N   [        S5       GH  n UR                  [         SU R                   3S[        S9R                  5       nUS   S   nUR                  SS5      nUR                  S	5      =(       d    S
R                  5       nU(       a  US:w  a    gUR                  S5      nUR                  S5      n[        U[        5      (       a  [
        R                  " U5      n[        U[        5      (       a  [
        R                  " U5      nU(       a  U(       a  [        U5      [        U5      :w  a    gSn	[        U5       H  u  p [        U5      S:  a  U
n	  OM     U	c    g[        Xy   5      R                  5       R                  5       nUR!                  S5      (       a    gUR!                  S5      (       a    g  g   g! [        [        4 a     M  f = f! ["        [$        [&        4 au  n[)        SUS-    SU 35        UR+                  5         UR-                  5         UR.                  R1                  [        5        [2        R4                  " S5         SnAGMU  SnAf[6         a6  n[)        SUS-    SU 35        [2        R4                  " S5         SnAGM  SnAff = f)uw   Outcome oficial de Polymarket via Gamma API.
NUNCA infiere — solo devuelve Up/Down cuando el mercado está resuelto.
   r%   r&   r'   r*   r   closedFumaResolutionStatus resolvedNoutcomesoutcomePricesgGz?upUpdownDownz[outcome] intento r   z/3 (conn): z/3: r9   )r:   r;   r   r   r   r<   lower
isinstancestrr=   len	enumeraterA   	TypeError
ValueErrorstrip
startswithrL   rM   rN   rK   rO   r   r)   rP   rG   rQ   rH   )r   r    rR   rS   rT   r^   umarb   priceswin_idxiplabelrY   s                 r   fetch_outcomeMarket.fetch_outcomes   s;    QxG-KK k499+.B   $&  iLOx/%% 56<"CCE
!255,551h,,#zz(3Hfc**!ZZ/FvX#f+1M%f-DA! 8t+&'G! , . ?H-.446<<>##D))##F++!K  ^ ) &z2 ! ! $%97C *719+[DE  "&&r*

1 *719+T!=>

1sb   BGBG8GG	G'?G(GGGGGJ$1A)I!!J$.*JJ$)r   r   r   r   r   r   r   r   )r   )__name__
__module____qualname____firstlineno__rF   r   r   r@   SessionrA   boolrZ   rj   rw   __static_attributes__ r   r   r   r      s^     6  +,W("2"2 W"'W04Wr3X%5%5 3#* 3r   r   )__doc__r<   rG   r@   pathlibr   configr   r   r   r   r	   __file__parentrB   r   r   r   r   <module>r      sH       9 9 H~$$++f4y@W Wr   