Skip to content

betting_combat.rounds.market

Live-market data for strategy 4 (rounds): the historical fight clock, the fight’s markets named from fighter A’s side, the minute panel (Set 4), the trade tables, the round-start market windows (Set 3), the round-start prices of the round dataset (group 6) and Polymarket’s trades.

Ported from the research (ufc/inplay.py, ufc/final_assessment.py timing, ufc/joint.py, ufc/dataset/{markets,live,trades,set3,polymarket}.py) with identical numbers. Every function takes its data as arguments (JSON-loaded dicts and lists, DataFrames); nothing here reads files.

The flow (research build order)::

ufcstats = load_ufcstats(events, results)
kf = build_fights(fights_kalshi, winner_markets, ufcstats)
clock = FightClock(distance_minutes) # consistent timing, 0.5-minute lag
mapped = fight_ids(kf, bouts)
fights = live_fights(mapped, winner_minutes, clock, keys, a_slot)
side = {"mov": mov, "mof": mof, "rounds_": rounds_, "vic": vic}
markets = market_list(fights, **side, distance=distance_markets)
candles = all_candles(winner_minutes, distance_minutes, series_minutes)
set4 = set4_minutes(fights, markets, candles, poly_history, a_slot)
trades_main, trades_side = trade_tables(fights, markets, tapes)
s3_main = set3_main(trades_main, set4, fights)
s3_side = set3_side(trades_side, set4, fights, markets, s3_main)
extra = method_prices(
kf,
winner_minutes=winner_minutes,
side_minutes=side_minutes,
**side,
distance=distance_markets,
clock=clock,
)
km, starts = kalshi_breaks(mapped, winner_minutes, clock, a_slot, extra)
km = km.drop_duplicates(["fight_id", "round_idx"])
pm = poly_breaks(km, starts, poly_history, a_slot)