feat: Kelly criterion stake sizing (domain + MyBets helper)
- Add KellyCalculator (Domain/Betting): pure fractional-Kelly stake from win probability, decimal odds, bankroll, and fraction (default quarter-Kelly). Returns 0 on non-positive edge; truncates the suggestion down to 2 decimals so it never exceeds the computed figure. 19 unit tests. - MyBets: add a page-local stake helper (bankroll + win-probability inputs) that suggests a quarter-Kelly stake from the form's rate, with an Apply button and a no-edge message. Win probability is user-supplied, not derived from a signal. - Localization (en+ru) for the Kelly helper and the export-hub keys (shared resx).
This commit is contained in:
@@ -64,6 +64,7 @@
|
||||
<data name="Nav.Anomalies"><value>Anomalies</value></data>
|
||||
<data name="Nav.Results"><value>Results</value></data>
|
||||
<data name="Nav.Settings"><value>Settings</value></data>
|
||||
<data name="Nav.Export"><value>Export</value></data>
|
||||
|
||||
<data name="Home.Kicker"><value>Briefing</value></data>
|
||||
<data name="Home.Title"><value>Hunting odds-flip anomalies</value></data>
|
||||
@@ -262,6 +263,9 @@
|
||||
<data name="Export.Submit"><value>Export</value></data>
|
||||
<data name="Export.Cancel"><value>Cancel</value></data>
|
||||
<data name="Export.Success"><value>Export saved to {0}</value></data>
|
||||
<data name="Export.Hub.Lede"><value>Export captured odds snapshots to an Excel workbook for any date range — no need to open a specific event first.</value></data>
|
||||
<data name="Export.Hub.Action"><value>Configure export</value></data>
|
||||
<data name="Export.Hub.FilenameHint"><value>Saved as Marathon_<from>_to_<to>.xlsx in the configured export directory.</value></data>
|
||||
<data name="Export.Error.MissingDates"><value>Pick a start and end date.</value></data>
|
||||
<data name="Export.Error.InvalidRange"><value>End date must be on or after the start date.</value></data>
|
||||
<data name="Export.Error.Failed"><value>Export failed.</value></data>
|
||||
@@ -416,6 +420,13 @@
|
||||
<data name="Journal.Empty.NotApplicable"><value>—</value></data>
|
||||
<data name="Journal.Error.Generic"><value>Failed to save bet — check the event ID and try again.</value></data>
|
||||
<data name="Journal.Submitted"><value>Bet recorded.</value></data>
|
||||
<data name="Journal.Kelly.Title"><value>Stake helper (¼-Kelly)</value></data>
|
||||
<data name="Journal.Kelly.Bankroll"><value>Bankroll</value></data>
|
||||
<data name="Journal.Kelly.Probability"><value>Win probability (%)</value></data>
|
||||
<data name="Journal.Kelly.Suggestion"><value>Suggested stake: {0:0.00}</value></data>
|
||||
<data name="Journal.Kelly.Apply"><value>Apply</value></data>
|
||||
<data name="Journal.Kelly.NoEdge"><value>No positive edge at this price.</value></data>
|
||||
<data name="Journal.Kelly.Hint"><value>Enter bankroll + win probability for a ¼-Kelly stake.</value></data>
|
||||
<data name="Journal.Resolve.None"><value>No pending bets needed grading.</value></data>
|
||||
<data name="Journal.Resolve.Done"><value>Graded {0} pending bet(s).</value></data>
|
||||
<data name="Journal.Confirm.Delete"><value>Delete this bet permanently?</value></data>
|
||||
|
||||
Reference in New Issue
Block a user