a
    “�jË  ã                   @   sø  d Z ddlZddlmZ ddlmZ g ZdZddiZer@eed< ej	ded	�Z
e
 d
g ¡Zes`q|e e¡ e
 d¡Zes,q|q,eeƒZeD ]Zeed   e¡ qˆe ¡ Ze dg ¡Zdd„ eD ƒZedeeƒ› �ƒ eƒ  edd›ddd›ddd›ddd›ddd›d�
ƒ edƒ dZdZeD �]hZed Zeed ƒZeed ƒZe�rRee ndZee7 ZzZe  e¡ di ¡Z!e! d d!¡Z"e! d"¡Z#e! d#¡Z$e#�r ee#ƒndZ%e$�r²ee$ƒndZ&W n0 e'�yè Z( zd$\Z"Z%Z&W Y dZ([(n
dZ([(0 0 e%e e Z)ee)7 Ze *d%¡Z+ee+ƒd&k�re+d& nd'Z,ee+ƒd(k�r8e+d( nd'Z-e,d)d… › d*e-› �Z.ee.d›ded+›d,ed-›d,e%d-›d,e)d.›d/e"› �ƒ �qedƒ ed0d›dd'd›dd'd›dd'd›d,ed.›�	ƒ ed1d›dd'd›dd'd›dd'd›d,ed.›�	ƒ eƒ  ed2ƒ edƒ e/ƒ Z0e 1¡  2¡ d3 Z3eD ]"Zed4 e3k�re0 4ed ¡ �qdZ5e0D �]ŽZe6d5d6„ eD ƒƒ�rh�qJee Z7d7d„ e7D ƒZ8d8d„ e7D ƒZ9e:d9d6„ e8D ƒƒZ;e:d:d6„ e9D ƒƒZ<e=e;e< ƒd;k�rJz.e  e¡ di ¡Z!e! d<d'¡Z>e! d d'¡Z"W n e'�y   d=\Z>Z"Y n0 e:d>d6„ e8D ƒƒe:d?d6„ e9D ƒƒ Ze;e< Z?e>d@k�rNe?dA Z@ndZ@e@e Z)e5e)7 Z5e *d%¡Z+e+d& d)d… › d*ee+ƒd(k�r”e+d( nd'› �Z.ee.d›dBe?dC›dDedE›dFe@dE›dGe)dH›dIe>�pÎe"› dJ�ƒ �qJedƒ edKe5dL›�ƒ dS )MzCLive check: current open Kalshi positions, paper P&L marked to bid.é    N)Údefaultdict)ÚdatetimeÚlimitéÈ   Úcursorz/portfolio/fills)ÚparamsÚfillsÚtickerZmarket_positionsc                 C   s$   g | ]}t | d d¡ƒdkr|‘qS )Úposition_fpr   )ÚfloatÚget©Ú.0Úp© r   ú!E:\soccer\main\check_positions.pyÚ
<listcomp>   ó    r   zOpen positions: ZMATCHz<50ú ZQTYz>7ZAVGz>6ZBIDzP/Lz>8z  STATUSz_-----------------------------------------------------------------------------------------------ç        r
   Zmarket_exposure_dollarsZmarketÚstatusú?Zyes_bid_dollarsZlast_price_dollars)Úerrr   r   ú-é   Ú é   é   z -> z>7.1fz $z>5.2fz>+7.2fz  z
TOTAL COSTzPAPER P&L (mark to bid)z$Recently settled (status != active):i@ú Ztsc                 c   s.   | ]&}|d  t ko$t| dd¡ƒdkV  qdS )r	   r
   r   N)Útr   r   r   r   r   r   Ú	<genexpr>V   r   r   c                 C   s   g | ]}|d  dkr|‘qS )ÚsideÚyesr   ©r   Úfr   r   r   r   Y   r   c                 C   s   g | ]}|d  dkr|‘qS )r    Znor   r"   r   r   r   r   Z   r   c                 c   s   | ]}t |d  ƒV  qdS ©Úcount_fpN©r   r"   r   r   r   r   [   r   c                 c   s   | ]}t |d  ƒV  qdS r$   r&   r"   r   r   r   r   \   r   g{®Gáz„?Úresult)r   r   c                 c   s&   | ]}t |d  ƒt |d ƒ V  qdS )r%   Zyes_price_dollarsNr&   r"   r   r   r   r   e   r   c                 c   s&   | ]}t |d  ƒt |d ƒ V  qdS )r%   Zno_price_dollarsNr&   r"   r   r   r   r   f   r   r!   g      ð?z qty=z>5.1fz  cost=$z>+5.2fz
  settle=$z  P/L=$z>+6.2fz  [ú]zToday's settled P&L: $z+.2f)AÚ__doc__Zkalshi_traderZktÚcollectionsr   r   Z	all_fillsr   r   Z_getZrespr   r   ÚextendÚlistZ	by_tickerr#   ÚappendZget_positionsÚposZmktsZ	open_mktsÚprintÚlenZ	total_pnlZ
total_costr   r   r   ZqtyZcostZavg_pxZ
get_marketÚmr   Zbid_sZlast_sZbidZlastÚ	ExceptionÚeZpnlÚsplitÚpartsZ
date_teamsr    ZshortÚsetZrecent_tickersZnowZ	timestampÚcutoffÚaddZsettled_pnlÚanyZflsr!   Zno_ÚsumZyes_qtyZno_qtyÚabsr'   Znet_qtyZsettler   r   r   r   Ú<module>   s¶   

0


 
8..
ÿ


0@