a
    ½–ôi  ã                   @   st  d Z ddlZddlZddlmZ edƒZedƒZedƒZdZdZ	d	Z
d
d„ Zi Zee d¡ƒD �]ŽZejZeƒ Zeeddd���\Ze e¡D �]>Ze dd¡dvr¤qŒed  ¡  ¡ Zed  ¡  ¡ ZeeedfZeev�rJee d¡pèdƒZee d¡púdƒZ ee d¡�pdƒZ!eek�rJe dk�rJe!dk�rJe e!edœee< e "e¡ eeedfZ#e#evrŒee d¡�pndƒZ$ee d¡�p‚dƒZ%ee d¡�p–dƒZ&e$e	krŒe%dkrŒe&dkrŒe%e&e$dœee#< e "e#¡ qŒW d  ƒ q^1 �sä0    Y  q^e'de(eƒ› �ƒ e )e *¡ ¡Z+dZ,d Z- Z.Z/e+D �]ìZ0e0 dd¡Ze0 dd¡ ¡  ¡ Ze0 dd¡ ¡  ¡ Ze0 dd¡ ¡  ¡ Z1eeee1fZ2e3e0 d¡�p”e0 d ¡ƒZ4e2ev Z5e4�s°e5�s°�q$e5�rÌee2 Z6e6d! Z7e6d" Z8ee8e7e,ƒZ9e0 d#¡Z:e:d$u �re;e9d%e7 d%  d&ƒZ<ne:d'u �re;e9d&ƒ Z<ndZ<e;e9d&ƒZ9e;e,e< d&ƒZ,e0 d ¡Z=e7e0d< e9e0d < e8e0d"< e<e0d(< e,e0d)< e=du �rÂe-d%7 Z-e'd*e› d+e0d › d,e0d › d+e1› d-e7› d.e9› d/e<d0›d1e,› �ƒ ne-d%7 Z-nDd2D ]Z>e0 ?e>d¡ �qÐe.d%7 Z.e'd3e› d+e0d › d,e0d › d4�ƒ �q$e'd5e-› d6e.› �ƒ e'd7e,d8›�ƒ e @ejAe+d&d9�¡ ejBe,d:d;œeed<ƒd&d9� e'd=ƒ dS )>z}
Recompute all Kalshi bet_history entries using ask for Kelly, floor at $1.
Drops nothing (except actual no-CLV-edge cases).
é    N)ÚPathzE:\soccer\bet_history.jsonzE:\soccer\live_datazE:\soccer\kalshi_bankroll.jsongš™™™™™©?g{®Gáz´?g      ð?c                 C   sV   |dks|dkrdS d| | }| | d|   | }|dkr@dS || d }t |tƒS )Nr   é   g      Ð?)ÚmaxÚ	MIN_STAKE)ÚpÚaskÚbankrollÚbÚfÚraw© r   ú/E:\soccer\misc\archive\recompute_kalshi_min1.pyÚkelly_stake   s    r   z*.csvÚ zutf-8)ÚnewlineÚencodingZstatus)ZPREr   ÚhomeÚawayZclv_kalshi_awayZkalshi_away_askZpin_fair_away)r   Úpin_fairZclvZclv_kalshi_homeZkalshi_home_askZpin_fair_homezLookup entries: g     @�@ÚdateZbetÚ
kalshi_askÚkalshi_staker   r   ÚwonTr   é   FÚ
kalshi_pnlÚkalshi_bankroll_afterz	  ADDED  ú z vs z: ask=z stake=$z pnl=$z+.2fz br=$)r   r   r   r   z	  STRIP  z (no lookup entry)z
Added/updated: z  |  Stripped: zFinal Kalshi bankroll: $z.2f)Úindentz
2026-05-01)r   ÚupdatedÚwzSaved.)CÚ__doc__ZjsonZcsvÚpathlibr   ZBET_HISTORYZ	LIVE_DATAZ	KALSHI_BRZ	EDGE_AWAYZ	EDGE_HOMEr   r   ÚlookupÚsortedZglobZcsv_fileZstemr   ÚsetÚseenÚopenr
   Z
DictReaderÚrowÚgetÚlowerÚstripr   r   Zkey_aÚfloatZclv_aZask_aZpf_aÚaddZkey_hZclv_hZask_hZpf_hÚprintÚlenÚloadsÚ	read_textZbetsZ	kalshi_brr   ZremovedZ	unchangedr	   ZsideÚkeyÚboolZhas_kalshi_fieldsZ	in_lookupÚinfor   ZpfZstaker   ÚroundZpnlZ	old_stakeÚkÚpopZ
write_textÚdumpsÚdumpr   r   r   r   Ú<module>   s¢   

.






D
(