技能详情(站内镜像,无评论)
作者:AD88 @adlai88
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v1.4.2
统计:⭐ 0 · 1.1k · 7 current installs · 7 all-time installs
⭐ 0
安装量(当前) 7
🛡 VirusTotal :良性 · OpenClaw :可疑
Package:adlai88/polymarket-signal-sniper
安全扫描(ClawHub)
- VirusTotal :良性
- OpenClaw :可疑
OpenClaw 评估
The skill's code and metadata mostly match a Polymarket trading sniper, but there are configuration and metadata inconsistencies, undocumented environment usage, and no upstream source/homepage — review and limit any API key before enabling live trades.
目的
Name/description, code, and included CLI utilities all align with a trading/sniping skill for Polymarket (RSS polling, keyword matching, market mapping, safeguards, and SDK-based trade execution). The required SIMMER_API_KEY and simmer-sdk dependency are consistent with that purpose. However the package has no homepage/source declared and the registry metadata tunables use different env names than the code expects (see environment_proportional…
说明范围
Runtime instructions and code perform network fetches (user-provided RSS feeds) and will call the Simmer SDK's context and trade endpoints using the SIMMER_API_KEY — this is expected for a trading bot, but grants the skill authority to execute trades. The skill also writes local state (processed.json) and uses functions to load/update config via simmer_sdk.skill; the code reads additional env vars (AUTOMATON_MAX_BET, TRADING_VENUE) not declare…
安装机制
There is no explicit install script in the package, but clawhub.json declares a pip dependency on 'simmer-sdk'. That matches imports in the code. There is no automated installer URL or archive. Because the source/homepage is unknown and there is no upstream link, you should confirm the origin of simmer-sdk before installing via pip.
证书
clawhub.json declares SIMMER_API_KEY (appropriate), and the code expects various SIMMER_SNIPER_* env vars for configuration (also sensible). However there are mismatches: clawhub.json tunables use names like SIMMER_SNIPER_CONFIDENCE_THRESHOLD and SIMMER_SNIPER_MAX_TRADES_PER_RUN while the code expects SIMMER_SNIPER_CONFIDENCE, SIMMER_SNIPER_MAX_USD, and SIMMER_SNIPER_MAX_TRADES. The code additionally reads AUTOMATON_MAX_BET and TRADING_VENUE (…
持久
The skill does not request platform-wide 'always' installation (always:false) and will not be force-included. It stores its own state under a local state/ directory (processed.json) and may update its own config via simmer_sdk.skill functions. This is normal for a persistent automation tool, but bear in mind it can persist which articles were processed and it may modify its own config file; it does not appear to attempt to modify other skills …
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「Polymarket Signal Sniper」。简介:Snipe Polymarket opportunities from your own signal sources. Monitors RSS feeds…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/adlai88/polymarket-signal-sniper/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: polymarket-signal-sniper
description: Snipe Polymarket opportunities from your own signal sources. Monitors RSS feeds with Trading Agent-grade safeguards.
metadata:
author: Simmer (@simmer_markets)
version: "1.4.0"
displayName: Polymarket Signal Sniper
difficulty: intermediate
---
# Polymarket Signal Sniper
Your signals, Simmer's trading intelligence.
> **This is a template.** The default signal source is RSS feeds — remix it with any data source (APIs, webhooks, social media, custom scrapers). The skill handles all the plumbing (market matching, safeguards, trade execution). Your agent provides the alpha.
## When to Use This Skill
Use this skill when the user wants to:
- Monitor RSS feeds for trading opportunities
- Trade on breaking news before markets react
- Configure their own signal sources and keywords
- Get Trading Agent-grade safeguards on their trades
## Quick Commands
```bash
# Check account balance and positions
python scripts/status.py
# Detailed position list
python scripts/status.py --positions
```
**API Reference:**
- Base URL: `https://api.simmer.markets`
- Auth: `Authorization: Bearer $SIMMER_API_KEY`
- Portfolio: `GET /api/sdk/portfolio`
- Positions: `GET /api/sdk/positions`
## Quick Start (Ad-Hoc Usage)
**User provides RSS feed and market directly:**
```
User: "Watch this RSS feed for greenland news: https://news.google.com/rss/search?q=greenland"
User: "Snipe any news about trump from this feed"
```
→ Run with `--feed` and `--market` flags:
```bash
python signal_sniper.py --feed "https://news.google.com/rss/search?q=greenland" --market "greenland-acquisition" --dry-run
```
## Persistent Setup (Optional)
For automated recurring scans, configure via environment:
| Setting | Environment Variable | Default | Description |
|---------|---------------------|---------|-------------|
| RSS Feeds | `SIMMER_SNIPER_FEEDS` | (none) | Comma-separated RSS URLs |
| Markets | `SIMMER_SNIPER_MARKETS` | (auto) | Comma-separated market IDs (auto-discovers from keywords if empty) |
| Keywords | `SIMMER_SNIPER_KEYWORDS` | (none) | Comma-separated keywords to match |
| Confidence | `SIMMER_SNIPER_CONFIDENCE` | 0.7 | Min confidence to trade (0.0-1.0) |
| Max USD | `SIMMER_SNIPER_MAX_USD` | 25 | Max per trade |
| Max trades/run | `SIMMER_SNIPER_MAX_TRADES` | 5 | Maximum trades per scan cycle |
**Polymarket Constraints:**
- Minimum 5 shares per order
- Trades below this threshold are rejected with an error message
## How It Works
Each cycle the script:
1. Polls configured RSS feeds
2. Filters articles by keywords (if configured)
3. Matches articles to target markets (auto-discovers from keywords if no markets configured)
4. For each match, calls SDK context endpoint for safeguards:
- Position awareness (already holding?)
- Flip-flop detection (recently changed direction?)
- Slippage estimates (is market liquid?)
- Time decay (resolving soon?)
- Resolution criteria (what actually resolves this market?)
5. If safeguards pass, infers trade direction from article sentiment
6. Executes trade via SDK (with max trades per run cap)
7. Tracks processed articles to avoid duplicates
## Running the Skill
**Run a scan (dry run by default — no trades):**
```bash
python signal_sniper.py
```
**Execute real trades:**
```bash
python signal_sniper.py --live
```
**Check for signals without trading:**
```bash
python signal_sniper.py --scan-only
```
**View current config:**
```bash
python signal_sniper.py --config
```
**Override for one run:**
```bash
python signal_sniper.py --feed "https://..." --keywords "trump,greenland" --market "abc123"
```
**Show processed articles:**
```bash
python signal_sniper.py --history
```
## Interpreting Context Warnings
Before trading, ALWAYS check the context warnings. The skill will show you:
| Warning | Action |
|---------|--------|
| `MARKET RESOLVED` | Do NOT trade |
| `HIGH URGENCY: Resolves in Xh` | Consider if signal is timely enough |
| `flip_flop_warning: SEVERE` | Skip - you've been reversing too much |
| `flip_flop_warning: CAUTION` | Proceed carefully, need strong signal |
| `Wide spread (X%)` | Reduce position size or skip |
| `Simmer AI signal: X% more bullish/bearish` | Consider Simmer's oracle opinion |
## Analyzing Signals
When you find a matching article, analyze it carefully:
1. **Read the headline and summary** - What is the actual news?
2. **Check resolution_criteria** - What ACTUALLY resolves this market?
- Example: "greenland" in headline doesn't mean "acquisition complete"
- The resolution might be "US formally acquires Greenland by 2027"
- Does this signal move the needle on THAT specific criteria?
3. **Assess confidence** (0.0-1.0):
- How directly does this signal relate to resolution criteria?
- Is the source credible?
- Is this news likely already priced in?
4. **Only trade if**:
- Confidence > threshold (default 0.7)
- No severe warnings
- Signal validates against resolution criteria
## Example Conversations
**User: "Set up news sniping for the Greenland market"**
→ Ask for RSS feeds they want to monitor
→ Configure with market ID and keywords
→ Enable cron for recurring scans
**User: "Check this feed for trading signals"**
→ Run: `python signal_sniper.py --feed "URL" --scan-only`
→ Show found articles and potential matches
**User: "Snipe any bitcoin news from CoinDesk"**
→ Run with CoinDesk RSS and bitcoin-related markets
→ Show matches and ask if they want to trade
**User: "What signals have we processed?"**
→ Run: `python signal_sniper.py --history`
→ Show recent articles and actions taken
## Example Trade Flow
```
1. RSS poll finds: "Trump and Denmark reach preliminary Greenland agreement"
2. Keywords match: "greenland", "trump"
3. Call context endpoint for market "greenland-acquisition-2027"
4. Check warnings: none severe ✓
5. Resolution criteria: "Resolves YES if US formally acquires Greenland by 2027"
6. You analyze: "preliminary agreement" ≠ "formally acquires" but bullish signal
7. Confidence: 0.75 (positive indicator, not definitive)
8. Check slippage: 2.5% on $25 ✓
9. Execute: BUY YES $25
10. Report: "🎯 Sniped: Trump/Greenland agreement → BUY YES $25"
```
## Troubleshooting
**"No feeds configured"**
- Provide feeds in message: "watch this RSS: https://..."
- Or set `SIMMER_SNIPER_FEEDS` environment variable
**"No matching articles found"**
- Check keywords are correct
- RSS feed might not have recent articles
- Try `--scan-only` to see what's in the feed
**"Skipped due to flip-flop warning"**
- You've been changing direction too much on this market
- Wait before trading again, or find new information
**"Slippage too high"**
- Market is illiquid
- Reduce trade size or skip
**"Already processed"**
- This article was already seen
- Working as intended (dedup)
**"External wallet requires a pre-signed order"**
- `WALLET_PRIVATE_KEY` is not set in the environment
- The SDK signs orders automatically when this env var is present — no manual signing code needed
- Fix: `export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>`
- Do NOT attempt to sign orders manually or modify the skill code — the SDK handles it
**"Balance shows $0 but I have USDC on Polygon"**
- Polymarket uses **USDC.e** (bridged USDC, contract `0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174`) — not native USDC
- If you bridged USDC to Polygon recently, you likely received native USDC
- Swap native USDC to USDC.e, then retry
## Finding Good RSS Feeds
Tips for choosing signal sources:
- **Google News RSS**: `https://news.google.com/rss/search?q=YOUR_TOPIC`
- **Niche sources**: Better than mainstream (less priced in)
- **Official sources**: Government, company announcements
- **Twitter lists → RSS**: Use services like Nitter or RSS.app
The skill works best when:
- Feeds are relevant to your target markets
- You have specific keywords to filter noise
- Sources publish before mainstream coverage