a
    ëÚi�  ã                )   @   s¼   d Z ddlZddlmZmZ dZdddddd	d
ddddddddddddddddddddddddddddddd d!d"d#œ(Zd$Zd%d&„ Zd'd(„ Zd)d*„ Z	d+d,„ Z
ed-kr¸e
e ¡ d.d/d0dd1� dS )2z´
Kalshi MLS live price checker.
Given a game date + teams, fetches the current away-win probability.
Use at halftime to check if the price is below the 11.4% break-even threshold.
é    N)ÚdateÚdatetimez-https://api.elections.kalshi.com/trade-api/v2ZATLZATXZCLTZCHIZCINZCOLZCLBZDCUZDALZHOUZSKCZLAFCZLAGZMIAZMINZMTLZNSHZNEZNYRBZNYCZORLZPHIZPORZSTLZRSLZSDZSJZSEAZTORZVAN)(ZatlantaZaustinZ	charlottezchicago fireZchicagoZ
cincinnatiZcoloradoZcolumbusz	dc unitedZdallasZhoustonzkansas cityzsporting kczlos angeles fcZlafcz	la galaxyzlos angeles galaxyZmiamizinter miamiZ	minnesotaZmontrealzcf montrealZ	nashvilleznew englandznew york red bullsz	red bullsznew york cityZnycfcZorlandoZphiladelphiaZportlandzsaint louiszst louisz	salt lakezreal salt lakez	san diegozsan joseZseattleZtorontoZ	vancouvergÉv¾Ÿ/½?c                 C   s:   |   ¡  ¡ }t ¡ D ] \}}||v s,||v r|  S qd S )N)ÚlowerÚstripÚTEAM_ABRÚitems)Z	team_nameÚtÚkÚv© r   ú$E:\soccer\misc\archive\kalshi_mls.pyÚget_abr9   s
    
r   c                 C   s<   |   d¡ ¡ }|   d¡}|   d¡}d|› |› |› |› |› �S )zKXMLSGAME-26APR18HOMAWAYz%bz%dz%yz
KXMLSGAME-)ÚstrftimeÚupper)Ú	game_dateÚhome_abrÚaway_abrZmonthZdayZyearr   r   r   Úbuild_ticker@   s    

r   c              	   C   sL  t |ƒ}t |ƒ}|r|s<td|› d|› d|› d|› �ƒ d S t| ||ƒ}|› d|› �}tjt› d|› �dd�}|jdkrÌt| ||ƒ}|› d|› �}	tjt› d|	› �dd�}|jdkrÌtd	|› d
|	› �ƒ d S | ¡  d| ¡ ¡}
t|
 d|
 dd¡¡ƒ}t|
 d|
 dd¡¡ƒ}|dk�r&|| d n|}|||||
 dd¡|
 dd¡dœS )Nz  Unknown team: home=u   â†’z, away=ú-z	/markets/é
   )Ztimeouti”  z  Market not found: z or ZmarketZyes_ask_dollarsÚyes_askr   Zyes_bid_dollarsÚyes_bidé   ÚtitleÚ Ústatus)Útickerr   r   Úmidr   r   )	r   Úprintr   ÚrequestsÚgetÚBASEZstatus_codeZjsonÚfloat)r   Ú	home_teamÚ	away_teamr   r   Zevent_tickerZmarket_tickerÚrZevent_ticker2Zmarket_ticker2Údatar   r   r   r   r   r   Úget_away_priceG   s4     



úr'   c              
   C   s–  || }t d|› d|› d|› d|› d�	ƒ |dkrRt d|dkrBdnd› d	�ƒ d S t| ||ƒ}|sfd S |d
 dkrz|d
 n|d }t| }|tk }	t d|d › �ƒ t d|d d›d|d d d›d|d d d›d�ƒ t dtd d›d�ƒ t d|d d›d|	�r
dnd› d�ƒ |	�rpd| d }
t|
 dt  |
 d }t d|d d›d |d d›d!td d›d"�ƒ n"t d#|d d›d$td d›d%�ƒ d S )&NÚ
ú r   z (HT)r   z  Away team is ZwinningÚlevelu
    â€” hold.r   r   z  Ticker:   r   z  Price:    éd   z.1fz%  (bid r   z% / ask z%)z  Comeback rate (historical): ú%z  Edge:     z+.1fz% (u   BUY MORE âœ“zno edgeú)é   g      à?u     â†’ BUY additional z% of bankroll at u   Â¢ (fair value: u   Â¢)u     â†’ Kalshi price (u   %) â‰¥ historical rate (u&   %) â€” no edge, hold original bet only)r   r'   ÚCOMEBACK_RATE)r   r#   r$   Úht_score_homeÚht_score_awayZdeficitÚresultZpriceZev_holdZ
buy_signalÚbr	   r   r   r   Úcheck_halftimeh   s(    "6&0r4   Ú__main__zNew Englandz	DC Unitedr.   )r   r#   r$   r0   r1   )Ú__doc__r   r   r   r!   r   r/   r   r   r'   r4   Ú__name__Ztodayr   r   r   r   Ú<module>   sr   Ø+!û