Skip to content

betting_combat.store.trading

The card run’s record in betting.betting_combat: sessions, fight states, decisions, orders, fills, settlements and the 5-second ticks.

Everything a relaunched card run needs to resume is here: the fight clocks (fight_states), which rounds were already decided (decisions), and every order with its fills and settlement.

Classes

FightStateRow

TradingStore

card_orders

card_orders(card_date: dt.date) -> list[OrderRecord]

card_settlements

card_settlements(card_date: dt.date) -> list[SettlementRecord]

claim_order

claim_order(order: OrderRecord) -> bool

The write-ahead only one run can win: the order is inserted unless its id (or its decision, venue and market) is already recorded. False = someone else owns it and this run must not send it.

close_session

close_session(session_id: str, status: str, error: str | None = None) -> None

decided_minutes

decided_minutes(card_date: dt.date) -> set[tuple[str, str, int]]

fight_states

fight_states(card_date: dt.date) -> dict[str, FightStateRow]

missing_columns

missing_columns() -> list[str]

Columns this code writes that the database does not have (empty = current).

open_session

open_session(session_id: str, card_id: str, card_date: dt.date, dagster_run_id: str | None, config_snapshot: dict[str, Any], models_snapshot: dict[str, Any]) -> None

order

order(client_order_id: str) -> OrderRecord | None

save_decisions

save_decisions(records: Sequence[DecisionRecord], session_id: str) -> None

save_fight_states

save_fight_states(states: Sequence[FightStateRow]) -> None

save_fills

save_fills(fills: Sequence[FillRecord]) -> None

save_order

save_order(order: OrderRecord) -> None

save_settlements

save_settlements(settlements: Sequence[SettlementRecord]) -> None

save_ticks

save_ticks(ticks: Sequence[dict[str, Any]]) -> None

unsettled_orders

unsettled_orders(since: dt.date) -> list[OrderRecord]

Orders holding contracts (or an unknown outcome) with no settlement yet.