Markets

machina-sports/sports-skills/skills/markets

作者 machina-sports09eb7e8566f4MIT242 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫3 天前更新

Markets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets. Unified dashboards, odds comparison, entity search, and bet evaluation across platforms. Use when: user wants to see prediction market odds alongside ESPN game schedules, compare odds across platforms, search for a team/player on Kalshi or Polymarket, check for arbitrage between ESPN odds and prediction markets, or evaluate a specific game's market value. Don't use when: user wants raw prediction market data without ESPN context — use polymarket or kalshi directly. For pure odds math (conversion, de-vigging, Kelly) — use betting. For live scores without market data — use the sport-specific skill.

僅含說明

Markets Orchestration

Bridges ESPN live schedules (NBA, NFL, MLB, NHL, WNBA, CFB, CBB) with Kalshi and Polymarket prediction markets. Before writing queries, consult references/api-reference.md for supported sport codes, command parameters, and price normalization formats.

Quick Start

bash
sports-skills markets get_todays_markets --sport=nbasports-skills markets search_entity --query="Lakers" --sport=nbasports-skills markets compare_odds --sport=nba --event_id=401234567sports-skills markets get_sport_markets --sport=nflsports-skills markets get_sport_schedule --sport=nbasports-skills markets normalize_price --price=0.65 --source=polymarketsports-skills markets evaluate_market --sport=nba --event_id=401234567sports-skills markets match_markets --sport=mlb --date=2026-06-06sports-skills markets get_market_price --venue=kalshi --ticker=KXMENWORLDCUP-26-FRsports-skills markets get_price_history --venue=kalshi --ticker=KXMENWORLDCUP-26-FR --interval=1d

Python SDK:

python
from sports_skills import markets
markets.get_todays_markets(sport="nba")markets.search_entity(query="Lakers", sport="nba")markets.compare_odds(sport="nba", event_id="401234567")markets.get_sport_markets(sport="nfl")markets.get_sport_schedule(sport="nba", date="2025-02-26")markets.normalize_price(price=0.65, source="polymarket")markets.evaluate_market(sport="nba", event_id="401234567")markets.match_markets(sport="mlb", date="2026-06-06")markets.get_market_price(venue="kalshi", ticker="KXMENWORLDCUP-26-FR", at_time="2026-05-01T12:00:00+00:00")markets.get_price_history(venue="polymarket", token_id="<token_id>", interval="1h")

CRITICAL: Before Any Query

CRITICAL: Before calling any orchestration command, verify:

  • A sport code is provided for sport-aware commands (get_todays_markets, compare_odds, get_sport_markets, evaluate_market).
  • Price sources are identified correctly before normalization: espn = American odds, polymarket = 0-1 probability, kalshi = 0-100 integer.

Important Notes

  • Sport context is passed through. --sport=nba maps automatically to the correct Polymarket sport code and Kalshi series ticker.
  • Both platforms use sport-aware search. Polymarket uses sport → series_id; Kalshi uses KXNBA, KXNFL, etc.
  • Prices are normalized. Everything is converted to implied probability for comparison.

Workflows

Today's NBA Dashboard

bash
sports-skills markets get_todays_markets --sport=nba

Returns each game with ESPN info, DraftKings odds, matching Kalshi markets, and matching Polymarket markets.

Find Arb on a Specific Game

  1. Get the ESPN event ID: get_sport_schedule --sport=nba
  2. Compare odds: compare_odds --sport=nba --event_id=<id>
  3. If arbitrage detected, response includes allocation percentages and ROI — computed from reference prices (price_basis: "reference"), so confirm both legs on each venue's order book before trading it.
  4. sources and completeness say which venues actually priced this game; a provider error is reported as error, not as "no markets".

Full Bet Evaluation

  1. evaluate_market --sport=nba --event_id=<id> --outcome=0 --fee_per_contract=<dollars per $1 contract>
  2. Verifies the market is this game's full-game winner market for the chosen side, then reads the ask off the order book
  3. Pipes ask + fee through betting.evaluate_bet: devig → edge → Kelly
  4. Returns fair probability, edge, EV, Kelly fraction, and recommendation

Without fee_per_contract the ask is reported but evaluation is null — the net numbers are refused rather than assumed free. A ticker or token_id that names another team, another date, or a derivative (first-half, spread) market is refused, not substituted. Fees are not currently settable via the CLI; use the Python wrapper (markets.evaluate_market(..., fee_per_contract=...)).

Same Game on Both Venues

  1. match_markets --sport=mlb --date=2026-06-06
  2. Each match pairs the Kalshi event (with market tickers) and the Polymarket event (with moneyline token IDs) for the same game — joined deterministically on date + team codes, fuzzy title match as fallback.
  3. Feed kalshi.market_tickers[i] and polymarket.markets[i].token_ids[j] straight into get_market_price to compare prices.

Price Movement Over Time

  1. get_market_price --venue=kalshi --ticker=<ticker> --at_time=2026-05-01 for a single point-in-time price (both yes/no sides, 0-1).
  2. get_price_history --venue=kalshi --ticker=<ticker> --interval=1d for the full series — same {timestamp, price} shape on either venue.

Examples

Example 1: Today's games with prediction market odds User says: "What NBA games are on today and what are the prediction market odds?" Actions:

  1. Call get_todays_markets(sport="nba") Result: Unified dashboard with each game's ESPN info and Kalshi/Polymarket prices

Example 2: Cross-platform team search User says: "Find me Lakers markets on Kalshi and Polymarket" Actions:

  1. Call search_entity(query="Lakers", sport="nba") Result: All Lakers markets across both exchanges with prices and volume

Example 3: Odds comparison for a specific game User says: "Compare the odds for this Celtics game across ESPN and Polymarket" Actions:

  1. Get event_id from get_sport_schedule(sport="nba")
  2. Call compare_odds(sport="nba", event_id="<id>") Result: Normalized side-by-side comparison with automatic arbitrage check

Example 4: Full market evaluation User says: "Is there edge on the Chiefs game?" Actions:

  1. Get event_id from get_sport_schedule(sport="nfl")
  2. Call evaluate_market(sport="nfl", event_id="<id>") Result: Fair probability, edge percentage, EV, Kelly fraction, and bet recommendation

Example 5: Browse all markets for a sport User says: "Show me all NFL prediction markets" Actions:

  1. Call get_sport_markets(sport="nfl") Result: All open NFL markets across Kalshi and Polymarket

Example 6: Price conversion User says: "Convert a Polymarket price of 65 cents to American odds" Actions:

  1. Call normalize_price(price=0.65, source="polymarket") Result: Common structure with implied probability (0.65), American odds (-185.7), and decimal (1.54)

Example 7: Pair a game across venues User says: "Find the Mets game on both Kalshi and Polymarket" Actions:

  1. Call match_markets(sport="mlb", date="<game date>") Result: The game paired across venues — Kalshi market tickers and Polymarket moneyline token IDs side by side

Example 8: Historical price User says: "What was France's World Cup price a month ago?" Actions:

  1. Call get_market_price(venue="kalshi", ticker="KXMENWORLDCUP-26-FR", at_time="2026-05-03T12:00:00+00:00") Result: Yes/no prices (0-1) as of that moment; use get_price_history for the full curve

Commands that DO NOT exist — never call these

  • get_odds — does not exist. Use compare_odds to see odds across sources.
  • search_markets — does not exist on the markets module. Use search_entity instead.
  • get_schedule — does not exist. Use get_sport_schedule instead.

If a command is not listed in references/api-reference.md, it does not exist.

Troubleshooting

Error: No markets returned for a sport Cause: Sport code may be missing or incorrect Solution: Check references/api-reference.md for valid sport codes. Use the exact code (e.g., nba, epl, laliga)

Error: compare_odds returns no data for an event Cause: The event_id is incorrect or the game has not been indexed yet Solution: Call get_sport_schedule(sport=...) to retrieve the correct event_id first

Error: One source shows warnings in the response Cause: Kalshi or Polymarket is temporarily unavailable Solution: The module returns partial results — use what is available. Retry the unavailable source separately using the kalshi or polymarket skill directly

Error: normalize_price returns unexpected American odds value Cause: Wrong source parameter — Kalshi uses 0-100 integers, Polymarket uses 0-1 decimals Solution: Verify the source. Kalshi price of 65 requires source="kalshi", Polymarket price of 0.65 requires source="polymarket"

來源與署名

來源:machina-sports/sports-skills位於skills/markets提交09eb7e8

授權條款: MIT

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架

更多來自 machina-sports/sports-skills 的技能

World Cup

machina-sports

Premium FIFA World Cup 2026 market & match intelligence — a hosted, read-only layer that fuses official match truth (fixtures, standings, squads, injuries, player performance) with live prediction markets (Kalshi + Polymarket: prices, order books, price history, movers, cross-venue edges) and AI-grounded context (prematch briefs, move explanations, fan/social pulse). Every entity carries a canonical machina URN cross-walked across api-football, sportradar, opta, entain and ESPN, so a market resolves to a fixture resolves to two teams. This skill is prompt-only and premium: it routes the agent to the hosted World Cup Intelligence project (a per-project Machina MCP server) via `machina-cli`. It runs no code locally and ships no API keys. Use when: the user wants World Cup 2026 odds + match context together, asks "what moved and why", wants a grounded market brief or fan-sentiment read on a fixture, or needs one stable id that joins markets ↔ fixtures ↔ teams across providers. Don't use when: the user wants fr

待分類2423 天前更新

Xctf Data

machina-sports

從 TFRRS 擷取 NCAA 越野賽與田徑運動員資料,並從 The Stride Report 取得新聞。

包含腳本
Data & Analytics2423 天前更新

Sports Reporter

machina-sports

透過 sports-skills 命令列工具取得即時資料,產生原創體育新聞文章。

包含腳本
Writing & Content2423 天前更新

Volleyball Data

machina-sports

透過 Nevobo API 取得荷蘭排球資料:積分榜、賽程、賽果、俱樂部、賽事與新聞。

Data & Analytics2423 天前更新

Polymarket

machina-sports

以唯讀方式存取 Polymarket 運動預測市場:賠率、價格、委託簿、賽事與市場搜尋。

包含腳本
Business & Finance2423 天前更新

Metadata

machina-sports

透過 TheSportsDB 查詢球隊隊徽、球員照片、球場與俱樂部資訊,並支援球隊與球員名稱搜尋。

Research & Analysis2423 天前更新