Project not found.

Domain Model: BotFire

arch-domain-bots Architecture

architecture active

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.
  • project-botfire — project page
  • arch-dataflow-bots — data flow (TODO)
  • arch-deployment-bots — deployment (TODO)