
    eP$j#                        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/S).S0S1S2S3SS.S/S).S4S5S6S7S.S8S9.S:S;S<S7S.S8S9.S=S>S?S7S.S8S9.S@.r"\ " SA SB5      5       r#SC\$SD\%4SE jr&SF\'SD\'4SG jr(SH\
SI\)4SJ jr*g)Ku{  
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?zsolusdt@tradez
sol-updownSOLgQ?zxrpusdt@tradez
xrp-updownXRPg?gǺF?)r!   r"   r#   r$   r&   r'   zdogeusdt@tradezdoge-updownDOGEzbnbusdt@tradez
bnb-updownBNB)btcethsolxrpdogebnbc                   T   \ 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 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_bumpc                      [        S5      $ N.r        $/var/www/html/Poly/V15/v15/config.py<lambda>Config.<lambda>   s    $s)rC   )default_factorylog_dirc                      [        S5      $ r@   r   rB   rC   rD   rE   rF          T#YrC   
trades_csvc                      [        S5      $ r@   r   rB   rC   rD   rE   rF      s    d3irC   windows_csvc                      [        S5      $ r@   r   rB   rC   rD   rE   rF      rJ   rC   
state_jsonc                 $   [         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.                  (       a  U R                   S3nOU R                  n[1        [2        5      R4                  R4                  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>   _livelogsz
trades.csvzwindows.csvz
state.json)ASSET_CONFIGSr6   WINDOW_CONFIGSr8   r:   r;   r#   r   r   r   r   getr$   MAX_ENTRY_PRICEr&   MOMENTUM_THRESHOLDr'   ENTRY_SIZE_USDr%   CONFIRM_TICKSr=   AGGRESSIVE_BUMPr>   r7   r   __file__parentrH   rK   rM   rO   )selfacfgwcfgsubbases        rD   __post_init__Config.__post_init__   sw   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99ZZL&C**CH~$$++f4s:  </ =0 </rC   )r>   r:   r=   r%   rH   r&   r$   r'   r#   r   r   r   r;   rO   rK   r   rM   N)__name__
__module____qualname____firstlineno__str__annotations__boolr8   intr:   r;   r#   r   r   r   r   r$   floatr%   r&   r'   r=   r>   r   rH   r   rK   rM   rO   rc   __static_attributes__rB   rC   rD   r4   r4      s    J
JFCJKL#M3Hc!! s !OU! NE !OU! &&M3!OU!*;<GT<->?J?.?@K@->?J?0rC   r4   tsreturnc                 f    [         R                  " U [        R                  S9R	                  S5      $ )N)tzz%Y-%m-%dT%H:%M:%SZ)r   fromtimestampr   utcstrftime)ro   s    rD   isorv      s%    !!"6??@TUUrC   pricec                 p    [        [        S[        S[        U [        -  5      [        -  5      5      S5      $ )Nr   gGz?   )roundmaxmin	TICK_SIZE)rw   s    rD   
snap_pricer~      s,    T3tU59+<%=	%IJKQOOrC   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.tmpFry   )ensure_asciiindentz[json-write] z: )with_suffix
write_textjsondumpsreplace	Exceptionprintname)r   r   tmpes       rD   
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UArX   rY   
MIN_SHARESr}   rW   MIN_ENTRY_PRICETAKER_FEE_RATErZ   r[   PAPER_SLIPPAGELOSS_STREAK_MAXLOSS_STREAK_COOLDAILY_LOSS_LIMITsetBLOCKED_HOURS_UTCOUTCOME_MAX_WAITrU   rT   r4   rl   ri   rv   rm   r~   dictr   rB   rC   rD   <module>r      s  "   ( ' 
 <	=	C*M*
   
	  
 
      U    %! (! 	* ,(!   $ ,(!   $ ,(!   $ ,(!  $ -)"  $ ,(!  $Y4r 20 20 20nVC VC VPe P P0T 0 0rC   