
    Yje#                        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'.S.S/S0S1SS,S-S'.S2S3S4S5S,S6S7.S8S9S:S5S,S6S7.S;S<S=S5S,S6S7.S>.r"\ " S? S@5      5       r#SA\$SB\%4SC jr&SD\'SB\'4SE jr(SF\
SG\)4SH jr*g)IuS  
V12 — Momentum Taker con Confirmación.

Evolución de V11. Misma lógica base pero con dos mejoras clave:

  1. CONFIRMACIÓN DE MOMENTUM: V11 entraba en el primer tick que cruzaba
     el threshold → vulnerable a "chop" (spike + reversión inmediata).
     V12 requiere que el movimiento persista N ticks consecutivos (CONFIRM_TICKS)
     en la misma dirección antes de generar señal.

  2. AGGRESSIVE BUMP REDUCIDO: V11 pagaba ask+$0.02 para asegurar fill.
     V12 reduce a ask+$0.01 (configurable via AGGRESSIVE_BUMP).
     Cada centavo de overpay destruye edge en shares de ~$0.50.
    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@?      @{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/v12/config.py<lambda>Config.<lambda>   s    $s)rB   )default_factorylog_dirc                      [        S5      $ r?   r   rA   rB   rC   rD   rE          T#YrB   
trades_csvc                      [        S5      $ r?   r   rA   rB   rC   rD   rE      s    d3irB   windows_csvc                      [        S5      $ r?   r   rA   rB   rC   rD   rE      rI   rB   
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_CONFIGSr5   WINDOW_CONFIGSr7   r9   r:   r"   r   r   r   r   getr#   MAX_ENTRY_PRICEr%   MOMENTUM_THRESHOLDr&   ENTRY_SIZE_USDr$   CONFIRM_TICKSr<   AGGRESSIVE_BUMPr=   r6   r   __file__parentrG   rJ   rL   rN   )selfacfgwcfgsubbases        rC   __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 </rB   )r=   r9   r<   r$   rG   r%   r#   r&   r"   r   r   r   r:   rN   rJ   r   rL   N)__name__
__module____qualname____firstlineno__str__annotations__boolr7   intr9   r:   r"   r   r   r   r   r#   floatr$   r%   r&   r<   r=   r   rG   r   rJ   rL   rN   rb   __static_attributes__rA   rB   rC   r3   r3      s    J
JFCJKL#M3Hc!! s !OU!NE!OU! &&M3!OU!*;<GT<->?J?.?@K@->?J?0rB   r3   tsreturnc                 f    [         R                  " U [        R                  S9R	                  S5      $ )N)tzz%Y-%m-%dT%H:%M:%SZ)r   fromtimestampr   utcstrftime)rn   s    rC   isoru      s%    !!"6??@TUUrB   pricec                 p    [        [        S[        S[        U [        -  5      [        -  5      5      S5      $ )Nr   gGz?   )roundmaxmin	TICK_SIZE)rv   s    rC   
snap_pricer}      s,    T3tU59+<%=	%IJKQOOrB   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.tmpFrx   )ensure_asciiindentz[json-write] z: )with_suffix
write_textjsondumpsreplace	Exceptionprintname)r~   r   tmpes       rC   
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UArW   rX   
MIN_SHARESr|   rV   MIN_ENTRY_PRICETAKER_FEE_RATErY   rZ   PAPER_SLIPPAGELOSS_STREAK_MAXLOSS_STREAK_COOLDAILY_LOSS_LIMITsetBLOCKED_HOURS_UTCOUTCOME_MAX_WAITrT   rS   r3   rk   rh   ru   rl   r}   dictr   rA   rB   rC   <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 0rB   