a
    ¹]Üi2  ã                   @   sð  d Z ddlZddlZdZdZdZg d¢Zg 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œZ
dd „ Zed!ƒ g Ze
 ¡ D ]ª\ZZe	D ]œZd"e› d#e› d$�Zzxejed%d&�Zeeƒd'k sÐd(ejvsÐd)ejvrÔW qŠejg d*¢d+�Zeeƒd'k rôW qŠeed,< eed-< eed.< e e¡ W qŠ   Y qŠ0 qŠq~ejed/d0�Zejed1 d/d2d3�ed1< ejd1gd+� d1¡jd/d4�Zeejd5d6„ d7d8�Ž \Z Z!Z"e #¡ Zej$e"ej%d9�ed:< d7ed:  ed;< ed) ed;  ed;  ed<< ed=eeƒd>›d?�ƒ eed,  &e¡ed< ek@   #¡ Z'g Z(e' )¡ D �]0\Z*Z+e+d) d7 Z,e+d: Z-e+d; Z.e,dk�r^e/e-e, d7e-  e, dƒndZ0e0dk�rp�qe+d) e. e. d@ Z1e( e+d1  2dA¡e+d, e+d. e+d- e+ 3dBdC¡e+ 3dDdC¡dEe+d( e 4e+ 3dF¡¡�ràe5e+dF ƒndCe 4e+ 3dG¡¡�r e5e+dG ƒndCe5e+d( dHkƒe6e+d) dIƒe6e.dJƒe6e1dIƒe6e0dKƒe6e-dKƒdLœ¡ �qe 7e(¡ dM¡jd/d4�Z8ed=ee8ƒd>›dN�ƒ e8dO d7  9e8dP d7kdQ¡e8dR< e8dR  :¡ e8dS< e8dS e8j%d7  d@  6dI¡e8dT< dUD ]Ú\Z;Z<eZ=g g g   Z>Z?Z@e8 )¡ D ]‚\Z*ZAeBeAdV e; dWƒZCe=eC ZDeAdP �r*eDeAdO d7  neD ZEe/e=eE dƒZ=e> e6eDdIƒ¡ e? e6eEdIƒ¡ e@ e6e=dIƒ¡ �qîe>e8dXe<› dY�< e?e8dXe<› dZ�< e@e8dXe<› d[�< �qÊe8jFed\d9� ed]ee8ƒd>›d^e› �ƒ ed_d`› �ƒ edaƒ ed`› ƒ edbe8dM  B¡ › dce8dM  /¡ › �ƒ eddee8ƒd>›�ƒ edee8dP  G¡ d@ df›dg�ƒ edhe8dR  G¡ d@ di›dj�ƒ edke8dR  H¡ di›dl�ƒ edmƒ e8 Idn¡D ]\\ZZJedoe› dpeeJƒdq›dreJdP  G¡ d@ df›dseJdR  G¡ d@ dt›dueJdR  H¡ di›�
ƒ �qŽedvƒ e8 Idw¡jKdxdydzd{d|� ¡ ZLeLeLd} d~k jdd\d€�ZLeL )¡ D ]Z\Z*Z+edoe+dw d�›d‚e5e+d} ƒdq›dre+dƒ d@ df›dse+d d@ dt›d„e+d… di›�
ƒ �q2ed†ed‡›dˆ�ƒ dUD ]F\Z;Z<e8dXe<› d[� jMdQ ZNedoe;d‰›dŠeNd‹›dŒeNe df›d��ƒ �q¤dS )ŽzÝ
Full bet breakdown export for the pure Away CLV strategy.
Outputs E:\soccerets_full_breakdown.csv with every OOS qualifying bet,
including team names, scores, CLV%, P&L, and running bankroll at 0.10x/0.25x/0.50x Kelly.
é    Ng     @�@gš™™™™™©?z!E:\soccer\bets_full_breakdown.csv)Ú2122Ú2223Ú2324Ú2425Ú2526)Z1920Z2021r   r   r   r   r   ZEPLZChampionshipz
League Onez
League TwoZ
ConferencezLa LigaZSegundazSerie AzSerie BZ
Bundesligaz2.BundesligazLigue 1zLigue 2Z
EredivisiezBelgian Pro LeaguezPrimeira Ligaz	Super LigzGreek SLzScottish PremzScottish ChampzScottish L1zScottish L2)ZE0ZE1ZE2ZE3ZECZSP1ZSP2ZI1ZI2ZD1ZD2ZF1ZF2ZN1ZB1ZP1ZT1ZG1ZSC0ZSC1ZSC2ZSC3c                 C   s:   d|  d|  d|  }d|  | d| | d| | fS )Né   © )ÚhÚdÚaZoverr   r   úE:\soccer\misc\export_bets.pyÚremove_margin   s    r   zLoading data...zE:/soccer/league_data/Ú_z.csvz	utf-8-sig)Úencodingé
   ÚFTRÚB365A)r   r   ZB365HZB365DÚPSCHÚPSCDÚPSCA)ZsubsetZSeasonZ
LeagueCodeZ
LeagueNameT)Zignore_indexZDateZcoerce)ZdayfirstÚerrors)Zdropc                 C   s   t | d | d | d ƒS )Nr   r   r   )r   )Úrr   r   r   Ú<lambda>8   ó    r   r   )Zaxis)ÚindexZp_AZ
PSC_fair_AZedge_Az  ú,z matches loadedéd   z%Y-%m-%dZHomeTeamÚ ZAwayTeamZAwayZFTHGZFTAGÚAé   é   é   )ÚdateÚseasonÚleagueZleague_codeZ	home_teamZ	away_teamZbet_outcomeZactual_resultZ
home_goalsZ
away_goalsÚwonÚoddsZpinnacle_fairÚclv_pctÚkelly_fractionZp_win_pinnacler"   z OOS Away CLV betsr&   r%   éÿÿÿÿÚflat_plZflat_pl_cumsumZflat_roi_pct))gš™™™™™¹?Z010)ç      Ð?Z025)g      à?Z050r(   r+   ÚkZ_stakeZ_plZ	_bankrollFz
Saved z	 bets to Ú
zA=================================================================u$   SUMMARY â€” Pure Away CLV (OOS only)z  Date range:   z to z  Total bets:   z  Win rate:     z.1fú%z  Flat ROI:     z+.2fz	% per betz  Total flat:   z unitsz
  By season:r#   z    z  n=z>4z  WR=z%  ROI=z+.1fz%  flat_PL=z
  By league (min 30 bets):r$   )r%   Úcount)r%   Úmean)r*   r0   )r*   Úsum)ÚnÚwrÚroiÚplr2   é   r4   )Z	ascendingz<22z
 Away   n=r3   z%  PL=r5   z
  Kelly final bankrolls (from z,.0fz):z.2fz
x Kelly:  z>12,.2fz  (zx))OÚ__doc__ZpandasZpdZnumpyZnpZSTARTZEDGE_THRESHZOUTZOOS_SEASONSZseasonsZleague_namesr   ÚprintZall_dfsÚitemsÚcodeÚnameÚsÚpathZread_csvr
   ÚlenÚcolumnsZdropnaÚappendÚconcatZdfZto_datetimeZsort_valuesZreset_indexÚzipZapplyZtHZtDZtAÚcopyZSeriesr   ZisinÚsubZall_rowsZiterrowsr   r   ÚbÚpZfairÚmaxZkelly_fr'   ÚstrftimeÚgetZnotnaÚintÚroundZ	DataFrameZbetsÚwhereZcumsumZkmZlabelZbkZstakesZplsZ	bankrollsÚrowÚminÚfZstaker5   Zto_csvr0   r1   ÚgroupbyZgrpZaggZlgZilocÚfinalr   r   r   r   Ú<module>   sæ   
õ 
"(


  ð   
$VT