a
    ˜ôi0  ã                   @   sê  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dd„ Zdd„ Zi Zee d¡ƒD �]ªZejZeƒ Zeeddd���xZe e¡D �]ZZe dd¡dvr´qœed  ¡  ¡ Zed  ¡  ¡ Zdd„ Ze dd¡Z e dd¡Z!e dd¡Z"edƒZ#edƒZ$edƒZ%ed ƒZ&ed!ƒZ'eeedfZ(e(ev�r€e#ek�r€e$dk�r€e%dk�r€e$e%e#e&e'e e!e"d"œee(< e )e(¡ ed#ƒZ*ed$ƒZ+ed!ƒZ,ed%ƒZ-edƒZ.eeedfZ/e/evrœe*e	krœe+dkrœe,dkrœe+e,e*e-e.e e!e"d"œee/< e )e/¡ qœW d  ƒ qn1 �s0    Y  qne0d&e1eƒ› �ƒ e 2e 3¡ ¡Z4d'Z5g Z6dZ7e4D �]@Z8e8 d(d¡Ze8 dd¡Ze8 dd¡Ze8 d)d¡ ¡  ¡ Z9e ¡  ¡ Z:e ¡  ¡ Z;ee:e;e9fZ<e=e8 d*¡�pÄe8 d+¡ƒZ>e<ev Z?e>�sêe?�sêe6 @e8¡ �qLe?�sd,D ]ZAe8 BeAd¡ �qôe6 @e8¡ �qLee< ZCeCd- ZDeCd. ZEe8 d/¡ZFeC d0¡�rZeCd0 › d1eCd2 › �n
e8 d3d¡ZGeCd �pze8 dd¡Z e5ZHeeEeDƒZIeeEeDe5ƒZJeeJeDeFƒZKeLeJd4ƒZJeLe5eK d4ƒZ5eDe8d*< eJe8d+< eEe8d.< eKe8d5< e5e8d6< eG�rðeGe8d3< e6 @e8¡ eIdk�reHeI d7 nd8ZMeMe
k �rLeCd9 ZNeCd: ZOeNdk�rLeOdk�rLeLd	eN d;ƒZPd	eO ZQeeQePƒZReRdk�rLeLeeQePe5ƒd4ƒZSe9dk�r e �r–e d<kndZTd=ZUne �r®e d>kndZTd?ZUeeSePeTƒZVeLe5eV d4ƒZ5eeee8 d@d¡e8 dAd¡eUe8 dB¡eLeOdCƒePeSeVe5eTeGe e8 dDd¡dEdFœZWe6 @eW¡ e7dG7 Z7eT�r8dHneTdIu �rFdJndKZXe0dLe› dMe› dNe› dOeU› dPePdQ›dReS› dSeVdT›dMeX› dUe5› �ƒ �qLe0dVe7› �ƒ e0dWe5dX›�ƒ e YejZe6d4dY�¡ ej[e5dZd[œeed\ƒd4dY� e0d]ƒ dS )^a  
Rebuild Kalshi entries in bet_history.
Rules:
  - YES bets: CLV > threshold, Kelly at ask, floor $1
  - NO bets:  when YES raw Kelly < $1, ALSO compute opponent NO Kelly
              (Away YES -> Home NO,  Home YES -> Away NO)
              Place NO bet if Kelly > 0, floor $1
é    N)ÚPathzE:\soccer\bet_history.jsonzE:\soccer\live_datazE:\soccer\kalshi_bankroll.jsongš™™™™™©?g{®Gáz´?ç      ð?c                 C   sF   |dks|dks| dkrdS d| | }| | d|   | }t |dƒS )Nr   é   ç        )Úmax)ÚpÚaskÚbÚf© r   ú0E:\soccer\misc\archive\recompute_with_no_bets.pyÚ	kelly_raw   s
    r   c                 C   s(   t | |ƒ}|dkrdS t|| d tƒS )Nr   r   ç      Ð?)r   r   Ú	MIN_STAKE)r   r   Úbankrollr
   r   r   r   Úkelly_stake   s    
r   c                 C   s6   |du rt | d| d  dƒS |du r2t | dƒ S dS )NTr   é   Fr   )Úround)Zstaker   Úwonr   r   r   Úcalc_pnl!   s
    r   z*.csvÚ zutf-8)ÚnewlineÚencodingZstatus)ZPREr   ÚhomeÚawayc                 C   s(   zt t | ¡pdƒW S    Y dS 0 d S )Nr   r   )ÚfloatÚrowÚget)Úcolr   r   r   Úfv4   s    r   ÚftrZresult_homeZresult_awayZclv_kalshi_awayZkalshi_away_askZpin_fair_awayZkalshi_home_bidZpin_fair_home)r   Úpin_fairZclvÚopp_bidÚopp_pin_fairr    Úscore_hÚscore_aZclv_kalshi_homeZkalshi_home_askZkalshi_away_bidzLookup entries: g     @�@ÚdateÚbetÚ
kalshi_askÚkalshi_stake)r(   r)   Ú
kalshi_pnlÚkalshi_bankroll_afterr   r!   r   r$   ú-r%   Úscorer   r*   r+   r   r   r"   r#   é   ÚHzHome NOÚAzAway NOÚleagueÚdivÚ
fixture_idé   Úresolved_atT)r&   r   r   r1   r2   r'   r3   r!   r(   r)   r*   r+   r   r-   r    r5   Z	is_no_betr   ÚWFÚLú?z  NO ú z vs z [z] ask=z.3fz stake=$z pnl=$z+.2fz br=$z
NO bets added: zFinal Kalshi bankroll: $z.2f)Úindentz
2026-05-01)r   ÚupdatedÚwzSaved.)\Ú__doc__ZjsonZcsvÚpathlibr   ZBET_HISTORYZ	LIVE_DATAZ	KALSHI_BRZ	EDGE_AWAYZ	EDGE_HOMEr   r   r   r   ÚlookupÚsortedZglobZcsv_fileZstemr&   ÚsetÚseenÚopenZfhZ
DictReaderr   r   ÚlowerÚstripr   r   r   r    r$   r%   Zclv_aZask_aZpf_aZbid_hZpf_hZkey_aÚaddZclv_hZask_hZpf_h2Zbid_aZpf_a2Zkey_hÚprintÚlenÚloadsÚ	read_textZbetsZ	kalshi_brZnew_betsZno_bets_addedr	   ZsideZhomelZawaylÚkeyÚboolZ
has_kalshiZ	in_lookupÚappendÚkÚpopÚinfor   Zpfr   Z	score_strZbr_before_yesZraw_fZ	yes_stakeZyes_pnlr   Zraw_dollarsr"   Zopp_pfZno_askZp_noZno_raw_fZno_stakeZno_wonZno_labelZ
no_pnl_valZno_entryZrsZ
write_textÚdumpsÚdumpr   r   r   r   Ú<module>   s$  (ý

 ý
.



ÿ
ÿ







ò
$ÿÿÿÿ
ÿ