a
    åÌ?jq  ã                   @   s\   d Z ddlZddlZddlmZmZmZ ej dd¡ ddlZ	dZ
dd„ ZedkrXeƒ  dS )	a‘  
Re-measure the Poly spread on NEAR-TERM match-winner markets only (game date within
the next ~16 days), excluding far-future outright/futures markets that polluted the
first sample. Late June 2026 -> this is dominated by World Cup 2026 match markets,
which are real, liquid, near-KO games -- the right comparable for our pre-KO bets.
Lists the events it used so the market is transparent. Read-only.
é    N)ÚdateÚdatetimeÚ	timedeltazE:\soccer\mainé   c                     s¦  t  ¡ } t ¡ }g }i }|D �]}| dd¡}d| ¡ vsd| ¡ v rHqt |¡}|sXqzt |d¡  ¡ }W n t	y‚   Y qY n0 | t
dd� |  kr¬| t
td� ks°q q| d¡p¼g D ]v}| d	¡pÎd ¡ }	d
|	vrêt d|	¡sêq¾t |¡\}
}}|r¾d|  k �rdk r¾n q¾| ||
|||f¡ |||< q¾qtdt› dt|ƒ› dt|ƒ› d�ƒ |�sntdƒ d S tdƒ t| ¡ dd„ d�d d… D ]\}}td|› d|› �ƒ �q’t|ƒdk�rØtdt|ƒd › d�ƒ g d¢}dd„ }tddd›d d!d"›d d#d$›d d%d&›d d'd(›�
ƒ |D ]ú\‰‰ ‡ ‡fd)d*„|D ƒ}t|ƒ}|�sjtd+ˆd,›d-ˆ d,›d.dd/›�ƒ �qtd0d1„ |D ƒƒ}d2d*„ |D ƒ}d3d*„ |D ƒ}d4d*„ |D ƒ}|�r´||ƒntd5ƒ}|�rÊ||ƒntd5ƒ}td+ˆd,›d-ˆ d,›d.|d/›dd6| | d7›d8|d9›d|d:›d;�ƒ �qd<d*„ |D ƒ}|�r¢td=d1„ |D ƒƒ}t|ƒ}|d> �r\||d>  n||d> d  ||d>   d> }td?|› d@|dA›dBt|ƒ| dA›�ƒ d S )CNÚtitleÚ z vszmore marketz%Y-%m-%dé   )ZdaysZmarketsZquestionzend in a drawzwill (.+?) (?:beat|win on)r   znear-term (<= z"d) Poly match-winner YES markets: z across z
 fixtures
zNo near-term markets found.zsample fixtures used:c                 S   s   | d S )Nr   © )Zkvr	   r	   ú*E:\soccer\research\poly_spread_nearterm.pyÚ<lambda>/   ó    zmain.<locals>.<lambda>)Úkeyé   z  z  ... +z more))g        çš™™™™™©?)r   çš™™™™™¹?)r   ç333333Ã?)r   ç      Ð?)r   çffffffÖ?)r   ç      à?)r   çffffffæ?)r   g)\�Âõ(ð?c                 S   sP   t | ƒ} t| ƒ}|rH|d r(| |d  qN| |d d  | |d   d S tdƒS )Né   r   Únan)ÚsortedÚlenÚfloat)ZxsÚkr	   r	   r
   Úmed6   s    zmain.<locals>.medÚ
z
mid bucketZ14sú Únz>4znoBid%z>7ZmedHalfz>8zmedHalf%ofMidz>14c                    s,   g | ]$}ˆ|d    kr ˆ k rn q|‘qS ©r   r	   )Ú.0Úr©ÚhiÚlor	   r
   Ú
<listcomp>;   r   zmain.<locals>.<listcomp>z  [z.2fú,z)   Z4dc                 s   s(   | ] \}}}}}|r|d krdV  qdS )r   r   Nr	   )r!   Ú_Úbidr	   r	   r
   Ú	<genexpr>?   r   zmain.<locals>.<genexpr>c                 S   s,   g | ]$\}}}}}|r|d kr|||f‘qS r    r	   ©r!   Úmidr)   Úaskr(   r	   r	   r
   r&   @   r   c                 S   s"   g | ]\}}}||| d   ‘qS )r   r	   ©r!   r(   r)   r-   r	   r	   r
   r&   A   r   c                 S   s>   g | ]6\}}}|| d kr||| d  || d  d ‘qS )r   r   éd   r	   r.   r	   r	   r
   r&   B   r   r   r/   z6.1fz%  z8.3fz13.1fú%c                 S   sD   g | ]<\}}}}}d |  kr&dk rn q|r|dkr|||f‘qS )r   r   r   r	   r+   r	   r	   r
   r&   F   r   c                 s   s$   | ]\}}}||| d   V  qdS )r   Nr	   r.   r	   r	   r
   r*   H   r   r   z,
LONGSHOT mid[0.05,0.35) with a live bid: n=z  median half-spread=z.3fz  mean=)r   ÚtodayÚPZfetch_soccer_eventsÚgetÚlowerZ_event_dater   ÚstrptimeÚ
ValueErrorr   ÚHORIZON_DAYSÚreÚsearchZ_yes_pricesÚappendÚprintr   r   ÚitemsÚsumr   )r1   ZevsZrowsZused_eventsÚer   ÚgdÚdÚmÚqr)   r-   r,   ÚtZbucketsr   Zselr   ZnobidÚrealZhalvesZhalfpctZmhZmhpZlsr   r	   r#   r
   Úmain   sx    


*ÿ
$0$F>
ÿÿrE   Ú__main__)Ú__doc__Úsysr8   r   r   r   ÚpathÚinsertZpolymarket_liver2   r7   rE   Ú__name__r	   r	   r	   r
   Ú<module>   s   >