Project not found.
Domain Model: BotFire
Domain Model: BotFire
Diagram
Components
| Component | Purpose | Notes |
|---|---|---|
| User | Kalshi account holder | Credentials for API auth signing |
| Bot | Trading strategy instance | Only "Live Edge" active; Volatility/Consensus disabled |
| Trigger | Entry condition | condition_field + operator + value + max defines price band |
| Game | Sporting event | sport_type: baseball_game, basketball_game, football_game, hockey_match, soccer_tournament_multi_leg |
| Market | Tradeable contract | 2 per game (one per team). Ticker prefix = league (KXMLB, KXWNBA, KXLMB, KXNPB, KXKBO) |
| MarketSnapshot | Point-in-time price | Captured every scanner tick for analytics |
| BotFire | Trade record | Full lifecycle: entry, open, exit (stop_loss, take_profit, pre_settlement_exit, settlement_win, settlement_loss) |
Key Decisions
- One BotFire per trade. Entry creates BotFire with position_status "open". Exit updates same record with exit_price, pnl, exit_reason.
- Game-winner markets only. real_game_market? filters to tickers containing "GAME", ignoring spreads/totals/props.
- sport_type from Kalshi milestones. Scanner maps milestone types directly. GamePhase module uses sport_type for period/clock interpretation.
- condition_max on Trigger. Creates a ceiling (89c) on the entry band, preventing entries above the profitable range.
Related
project-botfire— project pagearch-dataflow-bots— data flow (TODO)arch-deployment-bots— deployment (TODO)