o
    Yje#                     @   s|  d Z ddlZddlZddlZddlmZmZ ddlmZmZ ddl	m
Z
 dZdZdZd	Zd
ZddiZdZdZdZdZdZdZdZdZdZdZdZdZdZe ZdZ ddddddddddddd Z!d!d"d#d$dd%d&d'd(d)d*d+dd,d-d'd.d/d0d1dd,d-d'd2d3d4d5d,d6d7d8d9d:d5d,d6d7d;d<d=d5d,d6d7d>Z"eG d?d@ d@Z#dAe$dBe%fdCdDZ&dEe'dBe'fdFdGZ(dHe
dIe)fdJdKZ*dS )LuS  
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                   @   s&  e Zd ZU eed< eed< dZeed< dZeed< dZ	eed< dZ
eed< dZeed	< d
Zeed< dZeed< dZeed< dZeed< dZeed< dZeed< dZeed< dZeed< dZeed< edd dZeed< ed d dZeed!< ed"d dZeed#< ed$d dZeed%< d&d' Zd(S ))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                   C      t dS N.r    r>   r>   ./var/www/html/MetaHedge/POLYBOT1/v12/config.py<lambda>       zConfig.<lambda>)default_factorylog_dirc                   C   r;   r<   r   r>   r>   r>   r?   r@      rA   
trades_csvc                   C   r;   r<   r   r>   r>   r>   r?   r@      rA   windows_csvc                   C   r;   r<   r   r>   r>   r>   r?   r@      rA   
state_jsonc                 C   s  t | j }t| j }d|d  | _|d  d|d  d| _|d | _|d | _|d | _|d	 | _	|d
 | _
|dd| _|dt| _|dt| _|dt| _|dt| _|dt| _| jrl| j d}n| j}ttjjd | }|| _|d | _|d | _|d | _d S )Nz!wss://stream.binance.com:9443/ws/r   r    -r   r!   r   r   r   r   r"   r   r$   r%   r#   r9   r:   _livelogsz
trades.csvzwindows.csvz
state.json)ASSET_CONFIGSr2   WINDOW_CONFIGSr4   r6   r7   r!   r   r   r   r   getr"   MAX_ENTRY_PRICEr$   MOMENTUM_THRESHOLDr%   ENTRY_SIZE_USDr#   CONFIRM_TICKSr9   AGGRESSIVE_BUMPr:   r3   r   __file__parentrC   rD   rE   rF   )selfacfgwcfgsubbaser>   r>   r?   __post_init__   s.   








zConfig.__post_init__N)__name__
__module____qualname__str__annotations__boolr4   intr6   r7   r!   r   r   r   r   r"   floatr#   r$   r%   r9   r:   r   rC   r   rD   rE   rF   rY   r>   r>   r>   r?   r1      s,   
 r1   tsreturnc                 C   s   t j| tjddS )N)tzz%Y-%m-%dT%H:%M:%SZ)r   fromtimestampr   utcstrftime)rb   r>   r>   r?   iso   s   rh   pricec                 C   s"   t tdtdt | t t dS )Nr   gGz?   )roundmaxmin	TICK_SIZE)ri   r>   r>   r?   
snap_price   s   "ro   pathdatac              
   C   sn   |  d}z|tj|ddd ||  W d S  ty6 } ztd| j d|  W Y d }~d S d }~ww )Nz.tmpFrj   )ensure_asciiindentz[json-write] z: )with_suffix
write_textjsondumpsreplace	Exceptionprintname)rp   rq   tmper>   r>   r?   
write_json   s   
$r~   )+__doc__rv   mathosdataclassesr   r   r   r   pathlibr   	GAMMA_API	PRICE_APICLOB_WSHOSTCHAIN_IDUArN   rO   
MIN_SHARESrn   rM   MIN_ENTRY_PRICETAKER_FEE_RATErP   rQ   PAPER_SLIPPAGELOSS_STREAK_MAXLOSS_STREAK_COOLDAILY_LOSS_LIMITsetBLOCKED_HOURS_UTCOUTCOME_MAX_WAITrK   rJ   r1   r`   r]   rh   ra   ro   dictr~   r>   r>   r>   r?   <module>   s    


		97