360 Secure SkillHub
360 安全技能中心

Polymarket Opportunities Scanning

通过 Polymarket 公开 Gamma API 扫描活跃多结果预测市场,识别所有 YES 价格之和偏离 1.0 的过度定价与不足定价机会,按质量与成交量排序生成文本报告并保存为 opportunities.json,再借助 OpenClaw 消息工具与 Apple Mail 分别发送到 Telegram 和邮件,支持 cron 定时执行。

caoqi
caoqi
热度 53.76
最近更新 2026-05-11 17:32:01
分类:数据依赖:代码执行 / 第三方 API / 读写文件应用场景:市场分析 / 报告撰写 / 财务 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add polymarket-opportunities-scanning
Metadata
name
polymarket-opportunities-scanning
description
Scan Polymarket prediction markets for book arbitrage opportunities (overbooked/underbooked multi-outcome markets), generate a formatted report, and deliver it via Telegram and email. Use when asked to "scan Polymarket", "find betting opportunities", "run Polymarket report", "check Polymarket arb", or set up a daily morning report. No external API keys required — uses Polymarket's public Gamma API.

Polymarket Opportunities Scanning

Scan Polymarket's active multi-outcome markets for book arbitrage opportunities where the sum of all YES prices deviates from 1.0. Generate a ranked report and send to Telegram + email.

How It Works

In a truly mutually exclusive multi-outcome market, all YES prices should sum to 1.0.

Deviation Type Strategy
Sum > 1.0 (overbooked) OVERBOOK Buy all NO outcomes
Sum < 1.0 (underbooked) UNDERBOOK Buy all YES outcomes

NegRisk markets are the highest quality — they're structurally guaranteed to be mutually exclusive.

Setup

  1. Copy scripts/scanner.js and scripts/send-report.js to your project directory
  2. Create .env in the same directory with email config (see references/setup.md)
  3. Install dependencies: npm install (no external deps — uses built-in fetch and Node.js)
  4. Test: node scanner.js && node send-report.js

Running a Scan

# Run scanner → saves opportunities.json
node scanner.js

# Send report (reads opportunities.json → Telegram + email)
node send-report.js

Or run both in one cron command:

node /path/to/send-report.js

(send-report.js calls scanner.js internally)

Scan Parameters (configurable in scanner.js)

Parameter Default Description
minVolume $10,000 Skip low-liquidity markets
minThreshold 3% Minimum deviation worth acting on
maxThreshold 50% Above this = likely false signal
minPrice 3% Filter near-zero outcomes
maxPrice 97% Filter near-certain outcomes

Report Format

🎯 Polymarket Opportunities Report [timestamp]
Found N opportunities (X NegRisk)

⭐ NegRisk Markets (highest quality)
[OVERBOOK/UNDERBOOK] Event Title
💰 Profit: X%  | Volume: $Xk | 24h: $Xk
📐 Sum: X% (deviation +X%)
🎯 Strategy: Buy all NO / Buy all YES
🔗 https://polymarket.com/event/...
  X%  Outcome A
  X%  Outcome B
  ...

📋 Regular Multi-Outcome Markets
[same format]

Delivery

  • Telegram: via OpenClaw message tool (channel: telegram, to: <your_telegram_id>)
  • Email: via Apple Mail + osascript (macOS only) — set SMTP_TO in .env

See references/setup.md for configuration details.

Cron Job Setup

Recommended: daily at 08:00 local time.

{
  "name": "Polymarket Morning Scan",
  "schedule": { "kind": "cron", "expr": "0 8 * * *", "tz": "Europe/Stockholm" },
  "sessionTarget": "isolated",
  "payload": {
    "kind": "agentTurn",
    "message": "Run: exec → node /path/to/send-report.js\nWait for it to complete. If it fails, send a Telegram alert with the error.",
    "timeoutSeconds": 0
  },
  "delivery": { "mode": "none" }
}