a
    òîj
  ã                
   @   sè  d Z ddlZddlZddlZddlmZ e d¡ ee d¡ƒZedd„ ƒZ	dd	„ Z
eD �]Zeed
ddd��æZe e¡D ]ÊZe d¡dkrŽqzed ed ed fZe d¡p°dZdD ]ŒZe
ede› �ƒZe
ede› d�ƒZe	eef  Zedu�r6edu�r6de  k �rdk �r6n ned  ed ed ef¡ er¶eed< q¶qzW d  ƒ qX1 �s\0    Y  qXe	 ¡ D ]Zed  ¡  �qpedd„ ƒZe	 ¡ D ]ì\ZZed �r˜ed �s¸�q˜ed Zed edk�rÔdndkZed d!„ ed D ƒdƒZedu �r �q˜e\Z Z!e"e#e ƒd"ƒZ$de! e! Z%ee$ Z&e&d#  d7  < e&d$  e!7  < e�rre&d%  d7  < e&d&  e%7  < ne&d&  d8  < �q˜e'd'd(›d)d*›d+d,›d-d(›d.d/›d0d1›d2d1›�ƒ e'd3ƒ d Z(Z)d4Z*e+dd5ƒD ]ÂZ,e,ev�rè�qÖee, Z&e&d# Z-de&d&  e- Z.e,d"k�rd6ne,› d7e,d › �Z/e'e/d(›e-d*›e&d% d,›de&d%  e- d8›e&d$ e- d9›e.d:›e&d& d;›�ƒ e(e-7 Z(e)e&d% 7 Z)e*e&d& 7 Z*�qÖe'd3ƒ e'd<d(›e(d*›e)d,›de) e( d8›d
d/›de* e( d:›e*d;›�ƒ dS )=ah  
Marginal CLV-band ROI, FIRST-BREAK version (exclusive bins, one bet/fixture).
For each fixture+side, walk pre-kickoff snapshots in time order and take the
FIRST moment CLV breaks positive (CLV >= 0). Enter at that snapshot's ask,
bucket into band [X,X+1) by the value at that first break, settle via ftr.
Flat 1-unit stakes so ROI is comparable across bands.
é    N)Údefaultdictz	E:\soccerzlive_data\*.csvc                   C   s
   g d dœS )N)ÚrowsÚftr© r   r   r   ú,E:\soccer\research\analysis\_clv_band_roi.pyÚ<lambda>   ó    r   c              	   C   s0   zt |  |d¡ƒW S  ttfy*   Y d S 0 d S )NÚ )ÚfloatÚgetÚ	TypeErrorÚ
ValueError)ÚrÚkr   r   r   Úfval   s    r   r	   zutf-8Úreplace)ÚnewlineÚencodingÚerrorsZstatusZPREZ	game_dateÚhomeÚawayr   )r   r   Zclv_kalshi_Zkalshi_Z_aské   r   Z	timestampéd   c                   C   s   dddddœS )Nr   ç        )ÚnÚwÚretÚaskr   r   r   r   r   r   '   r   é   ÚHÚAc                 c   s$   | ]\}}}|d kr||fV  qdS )r   Nr   )Ú.0Ú_ÚcÚar   r   r   Ú	<genexpr>.   r   r%   é   r   r   r   r   ZBANDz>7ÚNz>6ÚWz>5zWR%ZavgAskz>8zROI%z>9Zunitsz3---------------------------------------------------r   é   z25+ú-z>6.1fz>8.3fz>+9.1fz>+9.2fZALL)0Ú__doc__ZcsvZglobÚosÚcollectionsr   ÚchdirÚsortedÚfilesZseriesr   ÚfpÚopenÚfZ
DictReaderr   r   Úbaser   ZsideZclvr   ÚdÚappendÚvaluesÚsortZbandsÚitemsÚkeyÚwinÚnextÚentryr#   r$   ÚminÚintZbandÚbZbdÚprintZtot_nZtot_wZtot_retÚrangeÚlor   ZroiZlabelr   r   r   r   Ú<module>   sl   

0.
2
  N$