a
    8]jâ  ã                   @   sv  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 dd¡ ddl	Z
eeƒZe d¡D ]pZeeddd��NZe e¡D ]2Zee d	¡e d
¡e d¡e d¡f  e¡ qvW d  ƒ qX1 s¾0    Y  qXg Ze ¡ D ]°\\ZZZZZesìqÖedd„ eD ƒdd„ d�Ze
 e¡ZerÖe�sqÖeeedd„ eD ƒd�Ze
  e¡Z!e!rÖe!d dk�rXe!d ne!d Z"e eeee"e!d e!d e!d d�¡ qÖej#dd„ d� e$e%eƒd ƒZ&ede&… ee&d… dœZ'e(de%eƒ› de&› d ed d! › d"ee&d#  d! › d$e%eƒe& › d ee& d! › d"ed% d! › d&�ƒ d'd(„ Z)e' ¡ D �]8\Z*Z+e%e+ƒZ,e-d)d*„ e+D ƒƒZ.e-d+d*„ e+D ƒƒZ/e/e, Z0e(d,e*› d-e,› d.e.› d/e.e, d0 d1›d2e/e, d0 d1›d3e.e/ e, d0 d4›d5e)e+ƒd4›d6e0d7›�ƒ eeƒZ1e+D ]Z!e1e!d8   e!¡ �qâee1 ¡ d9d„ d�D ]h\ZZ2e-d:d*„ e2D ƒƒZ3e-d;d*„ e2D ƒƒZ4e(d<ed=›d>e%e2ƒd?›d.e3d@›dAe4d1›dBe)e2ƒdC›dD�ƒ �qdED ]fZ5dFd„ e+D ƒZ2e2�r~e(dGe5dH›d>e%e2ƒd?›dIe)e2ƒdC›dJe-dKd*„ e2D ƒƒe%e2ƒ d0 d1›dL�	ƒ �q~dMD ]„\Z6Z7dNd„ e+D ƒZ2e2�rêe-dOd*„ e2D ƒƒZ3e-dPd*„ e2D ƒƒZ4e(dQe6dR›dSe7dR›dTe%e2ƒd?›d.e3d@›dAe4d1›dBe)e2ƒdC›dD�ƒ �qêeeƒZ8e+D ]Z!e8e!d!   e!¡ �q|edUd*„ e8 ¡ D ƒdVdW�Z9e-dXd*„ e9ddY… D ƒƒZ:e(dZe:d4›d[e)e+ƒd4›d\d]d„ e9ddY… D ƒ› d&�ƒ eeƒZ;e+D ] Z!e;e!d! dd^…   e!¡ �qee; ¡ ƒD ]2\Z<Z2e(d<e<› d-e%e2ƒd?›dIe)e2ƒdC›dD�ƒ �q:�q6dS )_zJWhy did the TEST (last 40%) segment of the xlow backtest outperform TRAIN?é    N)ÚdefaultdictzE:\soccer\researchz*E:\soccer\poly_backfill\*_polybackfill.csvÚ zutf-8)ÚnewlineÚencodingZ	game_dateZleagueÚhomeZawayc                 C   sB   g | ]:}|  d ¡pd ¡ dkrt |d ¡rt |d ¡|f‘qS )Zstatusr   ZPREZ	timestamp)ÚgetÚupperÚKZ_pts)Ú.0Úr© r   ú.E:\soccer\research\xlow_test_segment_decomp.pyÚ
<listcomp>   s   $ÿr   c                 C   s   | d S )Nr   r   )Útr   r   r   Ú<lambda>   ó    r   )Úkeyc                 C   s   g | ]\}}|‘qS r   r   )r
   Ú_r   r   r   r   r      r   )ÚgdÚftrÚpreÚbookÚpolyZ
kalshi_askÚpxÚwonÚclv)r   Úlgr   r   r   r   c                 C   s   | d S )Nr   r   )Úbr   r   r   r      r   g333333ã?)ZTRAINZTESTztotal z	 | train z (r   z..é   z	) | test éÿÿÿÿú)c                 C   s   t dd„ | D ƒƒS )Nc                 s   s.   | ]&}|d  r"d|d  |d  ndV  qdS )r   r   r   r   Nr   ©r
   r   r   r   r   Ú	<genexpr>$   r   znet.<locals>.<genexpr>)Úsum)Úbsr   r   r   Únet$   r   r%   c                 c   s   | ]}|d  V  qdS ©r   Nr   r!   r   r   r   r"   '   r   r"   c                 c   s   | ]}|d  V  qdS ©r   Nr   r!   r   r   r   r"   (   r   z
=== z: n=ú zW  WR=éd   z.1fz% impl=z% gap=z+.1fzpp  net=z
u  avg_px=z.3fr   c                 C   s   t t| d ƒƒ S )Nr   )Úabsr%   )Zkvr   r   r   r   /   r   c                 c   s   | ]}|d  V  qdS r&   r   ©r
   Úxr   r   r   r"   0   r   c                 c   s   | ]}|d  V  qdS r'   r   r+   r   r   r   r"   0   r   z  Z5sz n=Z3dZ2dzW (impl z)  net=z+7.2fÚu)Zkalshir   c                 C   s   g | ]}|d  t kr|‘qS )r   )Úbkr!   r   r   r   r   4   r   z  book=Z6sz  net=zu  WR=c                 c   s   | ]}|d  V  qdS r&   r   r+   r   r   r   r"   5   r   ú%))r   ç333333Ã?)r0   ç      Ð?)r1   çš™™™™™Ù?)r2   g      ð?c                 C   s,   g | ]$}t |d    kr tk rn q|‘qS )r   )ÚloÚhir!   r   r   r   r   8   r   c                 c   s   | ]}|d  V  qdS r&   r   r+   r   r   r   r"   :   r   c                 c   s   | ]}|d  V  qdS r'   r   r+   r   r   r   r"   :   r   z  px[z.2fú,z) n=c                 c   s   | ]\}}t |ƒ|fV  qd S ©N)r%   )r
   ÚdÚxsr   r   r   r"   ?   r   T)Úreversec                 c   s   | ]\}}|V  qd S r6   r   )r
   r,   r   r   r   r   r"   @   r   é   z  top-3 days contribute zu of zu  (c                 C   s   g | ]\}}|‘qS r   r   )r
   r   r7   r   r   r   r   B   r   é   )=Ú__doc__ÚsysZcsvZglobZmathÚcollectionsr   ÚpathÚinsertZkalshi_only_executionr	   ÚlistZfixturesÚopenZfhZ
DictReaderr   r   ÚappendZbetsÚitemsr   r   ÚhÚaZrowsÚsortedr   Z_resultr   ÚdictZfxZxlowr   r   ÚsortÚintÚlenZcutZsegsÚprintr%   Únamer$   Únr#   ÚwÚimplZavg_pxZbyr8   ZwlZimr.   r3   r4   ZdaysZday_netsZtop3ZmonÚmr   r   r   r   Ú<module>   sŒ    Pþ


(4
ÿ
ÿ
ÿ
6ÿÿÿ$>V$Fÿ
&