Skip to content

betting_combat.trading.ledger

What the trading run records: orders, fills and settlements — and the one rule that turns a filled order plus Kalshi’s result into P&L.

Money committed by an order is what was actually paid: filled contracts times the average fill price, plus the fee Kalshi charged the order. A settlement pays each contract its outcome’s value: 1 or 0, or for a cancelled fight (result scalar) the settlement value Kalshi publishes.

Classes

FillRecord

OrderRecord

with_fill

with_fill(status: OrderStatus, filled_count: float, avg_fill_price: float | None, fees: float, acked_at: dt.datetime, venue_order_id: str | None = None, error: str | None = None) -> OrderRecord

SettlementRecord

Functions

fill_status

fill_status(filled: float, count: int) -> OrderStatus

settle

settle(order: OrderRecord, market_result: MarketResult, payout_per_yes: float, at: dt.datetime) -> SettlementRecord

Settle one order’s filled contracts against the market’s official result.