
    !%jj$                        S r SSKrSSKrSSKrSSKJrJr  SSKJrJr  SSK	J
r
  SrSrSrS	rS
rSS0rSrSrSrSrSrSrSrSrSrSrSrSrSr\" 5       rSr SSSSSS.SSSS S!S.S".r!S#S$S%S&SS'S(S).S*S+S,S-SS.S/S0S1.S2S3S4S5SS.S/S).S6S7S8S9S.S:S0S;.S<S=S>S9S.S:S?.S@SASBS9S.S:S0S;.SC.r"\ " SD SE5      5       r#SF\$SG\%4SH jr&SI\'SG\'4SJ jr(SK\
SL\)4SM jr*g)Nu{  
V15 — Momentum Taker (configuración óptima).

Evolución de V12. Mismos módulos pero con parámetros validados en live:

  - CONFIRM_TICKS = 1: confirmación mínima. V12 usaba 3, lo que causaba
    perder 60% de las ventanas rentables. Con 1, comportamiento similar
    a V11 pero manteniendo la arquitectura modular de V12.

  - min_ask_confirm = 0.40 (ETH): bajado desde 0.48. El filtro alto
    forzaba entradas más caras con peor payoff.

  - AGGRESSIVE_BUMP = 0.01: centavo sobre ask para asegurar fill.

Resultados validados (2026-06-05/06): wallet +115% en 18h, WR 54-56%,
live igualando o superando paper en ETH y BTC.
    N)	dataclassfield)datetimetimezonePathz,https://gamma-api.polymarket.com/events/slugz.https://polymarket.com/api/crypto/crypto-pricez4wss://ws-subscriptions-clob.polymarket.com/ws/marketzhttps://clob.polymarket.com   z
User-AgentzMozilla/5.0Mb@?      @g      @{Gz??皙?g{Gz?   皙?g     8@  i,  5m
fiveminutei  <   )win_secsslug_tagprice_variantsignal_start_tleftsignal_stop_tleft15mfifteenminuteH  x   )      zbtcusdt@tradez
btc-updownBTCgRQ?g?g-C6J?)binance_stream	slug_baseprice_symbolmin_ask_confirmentry_size_usdmax_entry_pricemomentum_thresholdzethusdt@tradez
eth-updownETHg?g(\?gMbP?T)r!   r"   r#   r$   r%   r&   r'   invert_signalzsolusdt@tradez
sol-updownSOLgQ?zxrpusdt@tradez
xrp-updownXRPg?gǺF?)r!   r"   r#   r$   r&   r'   r)   zdogeusdt@tradezdoge-updownDOGE)r!   r"   r#   r$   r&   r'   zbnbusdt@tradez
bnb-updownBNB)btcethsolxrpdogebnbc                   b   \ rS rSr% \\S'   \\S'   Sr\\S'   Sr	\\S'   Sr
\\S'   Sr\\S	'   Sr\\S
'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   \" S S 9r\\S!'   \" S" S 9r\\S#'   \" S$ S 9r\\S%'   \" S& S 9r\\S''   S( rS)rg*)+Config   assetliver   window 
binance_wsslug_prefixr#   r   r   r   r   r   r   r   r   r$   r   r%   r   r&   r
   r'   
   confirm_ticksr   aggressive_bumpFr)   c                      [        S5      $ N.r        $/var/www/html/Poly/V16/v16/config.py<lambda>Config.<lambda>   s    $s)rD   )default_factorylog_dirc                      [        S5      $ rA   r   rC   rD   rE   rF   rG          T#YrD   
trades_csvc                      [        S5      $ rA   r   rC   rD   rE   rF   rG      s    d3irD   windows_csvc                      [        S5      $ rA   r   rC   rD   rE   rF   rG      rK   rD   
state_jsonc                 R   [         U R                     n[        U R                     nSUS    3U l        US    SUS    S3U l        US   U l        US   U l        US   U l        US	   U l	        US
   U l
        UR                  SS5      U l        UR                  S[        5      U l        UR                  S[        5      U l        UR                  S["        5      U l        UR                  S[&        5      U l        UR                  S[*        5      U l        UR                  SS5      U l        U R0                  (       a  U R                   S3nOU R                  n[3        [4        5      R6                  R6                  S-  U-  nX@l        US-  U l        US-  U l        US-  U l        g )Nz!wss://stream.binance.com:9443/ws/r!   r"   -r   r#   r   r   r   r   r$   r   r&   r'   r%   r>   r?   r)   F_livelogsz
trades.csvzwindows.csvz
state.json) ASSET_CONFIGSr7   WINDOW_CONFIGSr9   r;   r<   r#   r   r   r   r   getr$   MAX_ENTRY_PRICEr&   MOMENTUM_THRESHOLDr'   ENTRY_SIZE_USDr%   CONFIRM_TICKSr>   AGGRESSIVE_BUMPr?   r)   r8   r   __file__parentrI   rL   rN   rP   )selfacfgwcfgsubbases        rE   __post_init__Config.__post_init__   s   TZZ(dkk*?EU@V?WX#K014
3C2DAF 0!/2 ,"&';"<"&':";"&((+<d"C"&((+<o"N"&((+?AS"T"&((+;^"L"&((?M"J"&((+<o"N"&((?E"B99ZZL&C**CH~$$++f4s:  </ =0 </rD   )r?   r;   r>   r%   r)   rI   r&   r$   r'   r#   r   r   r   r<   rP   rL   r   rN   N) __name__
__module____qualname____firstlineno__str__annotations__boolr9   intr;   r<   r#   r   r   r   r   r$   floatr%   r&   r'   r>   r?   r)   r   rI   r   rL   rN   rP   rd   __static_attributes__rC   rD   rE   r5   r5      s    J
JFCJKL#M3Hc!! s !OU!NE!OU! &&M3!OU!M4*;<GT<->?J?.?@K@->?J?0rD   r5   tsreturnc                 f    [         R                  " U [        R                  S9R	                  S5      $ )N)tzz%Y-%m-%dT%H:%M:%SZ)r   fromtimestampr   utcstrftime)rp   s    rE   isorw      s%    !!"6??@TUUrD   pricec                 p    [        [        S[        S[        U [        -  5      [        -  5      5      S5      $ )Nr   gGz?   )roundmaxmin	TICK_SIZE)rx   s    rE   
snap_pricer      s,    T3tU59+<%=	%IJKQOOrD   pathdatac                     U R                  S5      n UR                  [        R                  " USSS95        UR	                  U 5        g ! [
         a%  n[        SU R                   SU 35         S nAg S nAff = f)Nz.tmpFrz   )ensure_asciiindentz[json-write] z: )with_suffix
write_textjsondumpsreplace	Exceptionprintname)r   r   tmpes       rE   
write_jsonr      sh    


6
"C0tzz$U1EFD 0dii[1#.//0s   6A
 

A9A44A9)+__doc__r   mathosdataclassesr   r   r   r   pathlibr   	GAMMA_API	PRICE_APICLOB_WSHOSTCHAIN_IDUArY   rZ   
MIN_SHARESr~   rX   MIN_ENTRY_PRICETAKER_FEE_RATEr[   r\   PAPER_SLIPPAGELOSS_STREAK_MAXLOSS_STREAK_COOLDAILY_LOSS_LIMITsetBLOCKED_HOURS_UTCOUTCOME_MAX_WAITrV   rU   r5   rm   rj   rw   rn   r   dictr   rC   rD   rE   <module>r      s  "   ( ' 
 <	=	C*M*
   
	  
 
      U    %! (! 	* ,(!  $ ,(!  $ 	 ,(!  $ ,(!  $  -)"  $ ,(!  $ ]7x 40 40 40rVC VC VPe P P0T 0 0rD   