a
    ²D$j÷  ã                   @   s:  d Z ddlZddlZddlZddlZddlmZ ej	j
ddd� e d¡ e dd	¡ d
\ZZddgZg d¢ZdddœZdd„ e d¡D ƒZejedd�Zejed ddd�ed< eed  ¡  Zeed dked dk @   ¡ Zg ZeD ]†Zde› �Zeee ekee ek @   ¡ Ze d¡jedd �Zeed!< ee ed"< ed#e› d$� ed%< ed&e› � ed'< e  e¡ qêejedd�Z!e!jd"d(d)�jedd �Z!e! d¡j"dd*�Z!e #e!d% dkd+e!d%  ej$¡e!d,< e!d- e!d!  %e¡k &e'¡e!d.< e!j(g d/¢d0�j"dd*�Z!e #e!d. d1ke!d, d1 d2¡e!d3< d4d5„ Z)d6d7„ Z*e+d8e,e!ƒ› d9�ƒ e+d:ƒ e+d;ƒ e! -d<¡d3  .¡  ¡ j/Z0e0D ]Z1e*e1e!e!j2e1k ƒ �qxe+d=ƒ e+d>e3e!j2 4¡ ƒƒ d?d„ e!j2 4¡ D ƒZ5e+d@e5ƒ e+d=ƒ e+dAƒ e5Z6e*dBe!ƒ e*dCe!e!j2 7dDdEg¡  ƒ e*dFe!e!j2 7e6¡  ƒ e*dGe!e!j2 7e6¡ ƒ dS )Hzù
Test the user's hypothesis: did the edge drop after adding BSA, USL, Sweden, Norway?
Reconstructs the exact signal set (mirrors strategy.ipynb / _ideas_study.py) but does
NOT apply EXCLUDE, so we can see every league's contribution. Pure analysis.
é    N)Ústatszutf-8Úreplace)ÚencodingÚerrorsz	E:\soccerzdisplay.widthé    )gš™™™™™©?g¸…ëQ¸¾?ÚhomeÚaway)Z	game_dater   r   ÚHÚA)r   r   c                 C   s,   g | ]$}|  d ¡r|dkrt d| ¡‘qS )z.csvztest.csvz
live_data/)ÚendswithÚpdZread_csv)Ú.0Úf© r   ú0E:\soccer\research\analysis\_league_breakdown.pyÚ
<listcomp>   s   ÿr   Z	live_dataT)Zignore_indexZ	timestampZmixedZcoerce)Úformatr   ZtsZstatusZPREÚelapsedZclv_kalshi_Úfirst)ZkeepÚsideZclvZkalshi_Z_askZaskZ	pin_fair_Úp_winF)Z	ascending)Zdropg      ð?ÚoddsÚftrÚwon)r   r   r   )Zsubseté   g      ð¿Únetc                 C   sR   t | ƒ}|dk r tdƒtdƒfS |  ¡ | jdd�t |¡  }|dtj |¡ fS )Né   Únanr   )Zddof)	ÚlenÚfloatÚmeanZstdÚnpZsqrtr   ZnormZcdf)r   ÚnÚzr   r   r   Úzp,   s
    r$   c                 C   sŽ   t |ƒdkr"td| d›d�ƒ d S t|d jƒ\}}td| d›dt |ƒd›d|j ¡ d	›d
|j ¡ d›d|j ¡ d›d|d›d|d›�ƒ d S )Nr   z  z<26z n=  0r   z n=z>4z | WR z>5.1%z | ROI z>+7.1%z | net z>+7.1fzu | z=z+.2fz p=z.3f)r   Úprintr$   Úvaluesr   r    r   Úsum)ÚnameÚsr#   Úpr   r   r   Úline3   s    r+   zALL leagues, no exclusions: n=Ú
z_===============================================================================================z+PER-LEAGUE breakdown (sorted by net units):Úleaguez`
===============================================================================================zAvailable league codes:c                    s&   g | ]‰ t ‡ fd d„dD ƒƒrˆ ‘qS )c                 3   s   | ]}|ˆ   ¡ v V  qd S )N)Úupper)r   Úk©Úcr   r   Ú	<genexpr>D   ó    z<listcomp>.<genexpr>)ÚBSAÚUSLZSWEZSWZNORZNO)Úany)r   r   r0   r   r   C   s   ÿzauto-matched flagged-ish codes:zIWITH vs WITHOUT the flagged leagues (edit FLAGGED below if codes differ):zALL (current live set)zdrop USL,BSA onlyr5   r4   zdrop all flaggedzONLY flagged)8Ú__doc__ÚosÚsysZnumpyr!   Zpandasr   Zscipyr   ÚstdoutÚreconfigureÚchdirZ
set_optionZEDGE_LOZEDGE_HIZSIDESZGAMEZSIDE_LETTERÚlistdirZdfsÚconcatZdfZto_datetimeZnotnaÚcopyZpreZentriesr   r1   ÚqZsort_valuesZdrop_duplicatesÚappendZsigZreset_indexÚwherer   ÚmapZastypeÚintZdropnar$   r+   r%   r   Úgroupbyr'   ÚindexÚorderZlgr-   ÚsortedÚuniqueZflaggedZFLAGGEDZisinr   r   r   r   Ú<module>   sf   

 
 $ "

