Sharp Line Detector
Monitor line movements at sharp sportsbooks. Detect steam moves, reverse line movement, and smart money signals.
When to Use
Use this skill when the user asks about:
- - Line movement on a game or sport
- Steam moves or sharp action
- Reverse line movement (RLM) signals
- Whether smart money has moved a line
- Pinnacle, Circa, or Bookmaker line changes
- Significant odds shifts since open
Sharp Book Keys
The skill prioritizes lines from these market-making books (in order of sharpness):
| Book | The Odds API Key | Why It Matters |
|---|
| Pinnacle | pinnacle | Lowest vig, sharpest global market |
| Circa |
circasports | Sharpest US book, accepts large limits |
| Bookmaker | bookmaker | Long-standing sharp-friendly book |
| BetOnline | betonlineag | Accepts sharp action, moves early |
| DraftKings | draftkings | High volume, useful as public benchmark |
| FanDuel | fanduel | High volume, useful as public benchmark |
If Pinnacle odds are not available in the API response, fall back to Circa, then Bookmaker.
Configuration
Environment variables for tuning thresholds (all optional):
- - SHARPSPREADTHRESHOLD — Minimum spread movement in points to flag (default: 1.5)
- SHARPMLTHRESHOLD — Minimum moneyline implied probability shift to flag (default: 0.05 = 5%)
- SHARPSNAPSHOTDIR — Directory for snapshot files (default: /tmp/openclaw-sharp-snapshots)
Operations
1. Snapshot Current Lines
Capture a timestamped snapshot of current odds from all books for a sport. Stores as JSON for later comparison.
```bash
SPORTKEY="${SPORTKEY:-basketball_nba}"
SNAPDIR="${SHARPSNAPSHOT_DIR:-/tmp/openclaw-sharp-snapshots}"
mkdir -p "$SNAP_DIR"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
curl -s "https://api.the-odds-api.com/v4/sports/$SPORTKEY/odds?apiKey=$ODDSAPI_KEY®ions=us,eu&markets=h2h,spreads&oddsFormat=american&bookmakers=pinnacle,circasports,bookmaker,betonlineag,draftkings,fanduel" \
| jq --arg ts "$TIMESTAMP" '{
timestamp: $ts,
sport: "'$SPORT_KEY'",
games: [.[] | {
id: .id,
game: "\(.awayteam) @ \(.hometeam)",
away: .away_team,
home: .home_team,
start: .commence_time,
books: [.bookmakers[] | {
key: .key,
name: .title,
h2h: [(.markets[] | select(.key=="h2h")).outcomes[] | {team: .name, odds: .price}],
spread: [(.markets[] | select(.key=="spreads")).outcomes[] | {team: .name, point: .point, odds: .price}]
}]
}]
}' > "$SNAPDIR/${SPORTKEY}_${TIMESTAMP}.json"
echo "Snapshot saved: ${SPORTKEY}${TIMESTAMP}.json ($(jq '.games | length' "$SNAPDIR/${SPORTKEY}_${TIMESTAMP}.json") games)"
About
Built by AgentBets — full tutorial at agentbets.ai/guides/openclaw-sharp-line-detector-skill/.
Part of the OpenClaw Skills series for the Agent Betting Stack.
锐线检测器
监控锐利体育博彩公司的盘口变动。检测资金流变动、反向盘口变动及聪明钱信号。
使用场景
当用户询问以下内容时使用此技能:
- - 某场比赛或运动的盘口变动
- 资金流变动或锐利操作
- 反向盘口变动(RLM)信号
- 聪明钱是否已推动盘口变动
- Pinnacle、Circa或Bookmaker的盘口变化
- 开盘以来的显著赔率变动
锐利博彩公司密钥
此技能优先处理以下做市商博彩公司的盘口(按锐利程度排序):
| 博彩公司 | The Odds API密钥 | 重要性说明 |
|---|
| Pinnacle | pinnacle | 最低抽水,最锐利的全球市场 |
| Circa |
circasports | 最锐利的美国博彩公司,接受大额投注 |
| Bookmaker | bookmaker | 长期对锐利玩家友好的博彩公司 |
| BetOnline | betonlineag | 接受锐利操作,早期变动 |
| DraftKings | draftkings | 高交易量,可作为公众基准参考 |
| FanDuel | fanduel | 高交易量,可作为公众基准参考 |
如果API响应中无法获取Pinnacle赔率,则依次降级使用Circa、Bookmaker。
配置
用于调整阈值的环境变量(均为可选):
- - SHARPSPREADTHRESHOLD — 标记让分盘最小变动点数(默认:1.5)
- SHARPMLTHRESHOLD — 标记独赢盘隐含概率最小变动(默认:0.05 = 5%)
- SHARPSNAPSHOTDIR — 快照文件目录(默认:/tmp/openclaw-sharp-snapshots)
操作
1. 快照当前盘口
捕获某项运动所有博彩公司当前赔率的时间戳快照。以JSON格式存储,供后续比较使用。
bash
SPORTKEY=${SPORTKEY:-basketball_nba}
SNAPDIR=${SHARPSNAPSHOT_DIR:-/tmp/openclaw-sharp-snapshots}
mkdir -p $SNAP_DIR
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
curl -s https://api.the-odds-api.com/v4/sports/$SPORTKEY/odds?apiKey=$ODDSAPI_KEY®ions=us,eu&markets=h2h,spreads&oddsFormat=american&bookmakers=pinnacle,circasports,bookmaker,betonlineag,draftkings,fanduel \
| jq --arg ts $TIMESTAMP {
timestamp: $ts,
sport: $SPORT_KEY,
games: [.[] | {
id: .id,
game: \(.awayteam) @ \(.hometeam),
away: .away_team,
home: .home_team,
start: .commence_time,
books: [.bookmakers[] | {
key: .key,
name: .title,
h2h: [(.markets[] | select(.key==h2h)).outcomes[] | {team: .name, odds: .price}],
spread: [(.markets[] | select(.key==spreads)).outcomes[] | {team: .name, point: .point, odds: .price}]
}]
}]
} > $SNAPDIR/${SPORTKEY}_${TIMESTAMP}.json
echo 快照已保存:${SPORTKEY}${TIMESTAMP}.json($(jq .games | length $SNAPDIR/${SPORTKEY}_${TIMESTAMP}.json)场比赛)
关于
由 AgentBets 构建 — 完整教程请访问 agentbets.ai/guides/openclaw-sharp-line-detector-skill/。
属于 Agent Betting Stack 的 OpenClaw技能系列 的一部分。