用 Binance 价格动量作为信号,通过 Simmer SDK 在 Polymarket 上交易 5 分钟/15 分钟 BTC 闪盘。
编程
Mert Sniper
扫描临近结算的 Polymarket 市场,按 60/40 以上强偏度筛选,并在受控仓位下押注高概率一方。
它能做什么
Mert Sniper 通过 Simmer API 拉取 Polymarket 活跃市场,过滤出到期窗口(默认 8 分钟)内即将结算的合约,再按价格偏度(默认 60/40)剔除盘口不够悬的市场,最终在胜率更高的一侧以单笔上限(默认 $10,每轮最多 5 单)下单。脚本默认 dry-run,不真实下单;需要执行 USDC 实单时需加 --live,并配合 Simmer SDK 自动用钱包私钥签名。文档明确把它定位为可改造的模板——你可以替换默认的到期 + 偏度逻辑为自己的筛选、择时或选标的规则,脚本负责行情拉取、下单和风控等管线工作。
什么时候用它
- 在最后几分钟扫 Polymarket 强偏度市场做末班车单
- 用固定金额上限跑自动化临到期扫描
- Dry-run 验证近到期思路再决定是否上量
- 对特定标签(如 solana、crypto)的临到期市场加定向过滤
技能文档
Mert Sniper
Near-expiry conviction trading on Polymarket. The skill scans markets in their final minutes of pricing, filters for strongly-skewed splits, and places bounded trades against the under-priced side.
🚨 Framework, not a production trading system. Read DISCLAIMER.md before connecting to a wallet with real funds. Dry-run is the default;
--liveis required for any real-USDC trade. Defaults: $10 max per trade, 60/40 split minimum, 8-minute expiry window, 5 trades per scan cycle — adjust deliberately before scaling.
This is a template. The default logic (expiry + split filter) is a starting point — remix it with your own filters, timing rules, or market selection criteria. The skill handles all the plumbing (market discovery, trade execution, safeguards). Your agent provides the alpha.
Strategy attribution: @mert — see source thread for the original methodology (topic filter, near-expiry timing, strong-split entry).
News-recency veto. Optional guard that checks Simmer's macro-news schedule before order placement and skips matching news-resolution markets inside the first 30 seconds after CPI, BLS jobs/unemployment, FOMC, nonfarm payrolls, or quarterly earnings events. Continuous-feed crypto Up/Down markets are not blocked by this veto. Default is off until internal positive backfill coverage exists; set
enable_news_veto=trueto enable it.
When to Use This Skill
Use this skill when the user wants to:
- Trade markets that are about to resolve (last-minute conviction bets)
- Filter by topic (e.g. only SOL/crypto markets)
- Cap bet size (e.g. never more than $10)
- Only trade when odds are strongly skewed (e.g. 60/40 or better)
- Run an automated expiry-sniping strategy
Setup Flow
-
Install the Simmer SDK
pip install simmer-sdk -
Ask for Simmer API key
- Get it from simmer.markets/dashboard -> SDK tab
- Store in environment as
SIMMER_API_KEY
-
Ask for wallet private key (required for live trading)
- This is the private key for their Polymarket wallet (the wallet that holds USDC)
- Store in environment as
WALLET_PRIVATE_KEY - The SDK uses this to sign orders client-side automatically — no manual signing needed
-
Ask about settings (or confirm defaults)
- Market filter: Which markets to scan (default: all)
- Max bet: Maximum per trade (default $10)
- Expiry window: How close to resolution (default 8 minutes)
- Min split: Minimum odds skew (default 60/40)
-
Save settings to config.json or environment variables
Configuration
| Setting | Environment Variable | Default | Description |
|---|---|---|---|
| Market filter | SIMMER_MERT_FILTER | (all) | Tag or keyword filter (e.g. solana, crypto) |
| Max bet | SIMMER_MERT_MAX_BET_USD | 10.00 | Maximum USD per trade |
| Expiry window | SIMMER_MERT_EXPIRY_MINUTES | 8 | Only trade markets resolving within N minutes |
| Min split | SIMMER_MERT_MIN_SPLIT | 0.60 | Only trade when YES or NO >= this (e.g. 0.60 = 60/40) |
| Max trades/run | SIMMER_MERT_MAX_TRADES_PER_RUN | 5 | Maximum trades per scan cycle |
| Smart sizing % | SIMMER_MERT_SIZING_PCT | 0.05 | % of balance per trade |
| Fee buffer | SIMMER_MERT_FEE_BUFFER | 0.02 | Extra alpha required above entry fee; only applies when SIMMER_MERT_MIN_EDGE is set |
| Declared edge | SIMMER_MERT_MIN_EDGE | 0.00 | Your signal's claimed edge above market price (probability units). At 0 (default): fee is logged but gate is advisory only. Set to X to block trades where entry fee > X — e.g. 0.05 requires your signal to clear at least 5¢ above market after fees |
| News-recency veto | SIMMER_MERT_ENABLE_NEWS_VETO | false | Skip matching news-resolution markets within 30s of scheduled macro/news releases |
Quick Commands
# 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
Running the Skill
# Dry run (default -- shows opportunities, no trades)
python mert_sniper.py
# Execute real trades
python mert_sniper.py --live
# Filter to specific markets
python mert_sniper.py --filter solana
# Custom expiry window (5 minutes)
python mert_sniper.py --expiry 5
# With smart position sizing (uses portfolio balance)
python mert_sniper.py --live --smart-sizing
# Check positions only
python mert_sniper.py --positions
# View config
python mert_sniper.py --config
# Disable safeguards (not recommended)
python mert_sniper.py --no-safeguards
How It Works
Each cycle the script:
- Fetches active markets from Simmer API (optionally filtered by tag/keyword)
- Filters to markets resolving within the expiry window (default 8 minutes)
- Checks the price split -- only trades when one side >= min_split (default 60%)
- Determines direction: backs the favored side (higher probability)
- Fee logging: prints entry-fee cost per market (
POLY_FEE_RATE_CRYPTO × p × (1-p), entry only — redemption is free). IfSIMMER_MERT_MIN_EDGE > 0, gates out markets where declared edge < entry fee + buffer - Safeguards: Checks context for flip-flop warnings, slippage, market status
- Execution: Places trade on the favored side, capped at max bet
- Reports summary of scanned, filtered, and traded markets
Example Output
🎯 Mert Sniper - Near-Expiry Conviction Trading
==================================================
[DRY RUN] No trades will be executed. Use --live to enable trading.
Configuration:
Filter: solana
Max bet: $10.00
Expiry window: 8 minutes
Min split: 60/40
Max trades: 5
Smart sizing: Disabled
Safeguards: Enabled
Fetching markets (filter: solana)...
Found 12 active markets
Markets expiring within 8 minutes: 2
SOL highest price on Feb 10?
Resolves in: 1m 34s
Split: YES 72% / NO 28%
Side: YES (72% >= 60%)
[DRY RUN] Would buy $10.00 on YES
Summary:
Markets scanned: 12
Near expiry: 2
Strong split: 1
Trades executed: 0
[DRY RUN MODE - no real trades executed]
Troubleshooting
"No markets found"
- Check your filter -- try without a filter first
- Markets may not be available (check simmer.markets)
"No markets expiring within window"
- Increase expiry window:
--expiry 10(10 minutes) - Or run more frequently (cron every minute)
"Split too narrow"
- Lower the min split:
--set min_split=0.55 - This trades more often but with less conviction
"Resolves in: 17h" on 15-min markets
- Polymarket's
endDateis the event-level end-of-day, not the individual market close time - For 15-min crypto markets (e.g. "BTC Up or Down - Feb 8, 11PM ET"), the actual close time is in the question text but not in the API
- This is a Polymarket data limitation — widen the expiry window (
--expiry 1080) as a workaround, or use the split filter to find conviction opportunities regardless of timing
"External wallet requires a pre-signed order"
WALLET_PRIVATE_KEYis 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 - Do NOT attempt to sign orders manually or modify the skill code — the SDK handles it
"Balance shows $0 but I have funds on Polygon"
- Polymarket V2 (live 2026-04-28) uses pUSD (PolyUSD, 1:1 backed by USDC.e). If your wallet holds USDC.e, migrate at simmer.markets/dashboard with one click (~30s)
- If you bridged native USDC (Circle), swap to USDC.e first, then migrate to pUSD
- Full migration guide: docs.simmer.markets/v2-migration
"API key invalid"
- Get new key from simmer.markets/dashboard -> SDK tab
常见问题
- 默认就会下真实单吗?
- 不会,默认是 dry-run,只会打印“会怎么做”。要下真实 USDC 单必须加 --live 并事先配置好 WALLET_PRIVATE_KEY,由 Simmer SDK 在客户端自动完成签名。
- 偏度阈值和到期窗口可以调吗?
- 可以。环境变量(如 SIMMER_MERT_EXPIRY_MINUTES、SIMMER_MERT_MIN_SPLIT)是主入口,CLI 上还可用 --expiry 5、--set min_split=0.55 等方式覆盖。
- 需要哪些密钥?
- 查市场需要 SIMMER_API_KEY(Bearer 鉴权访问 api.simmer.markets);跑实单还要 WALLET_PRIVATE_KEY,并且由 SDK 自动签名,不需要在脚本里手写签名代码。
相关技能
研究 Polymarket 行情与鲸鱼流向,跟踪聪明钱盈亏榜;获授权后在 Polygon 钱包下单并受硬性风控约束。
批量或实时镜像顶级 Polymarket 巨鲸仓位,内置再平衡与单笔限额。
通过一个命令行工具完成多链加密货币交易、钱包管理与 AI 市场分析。
把交易灵感变成可安装的 Simmer 预测市场技能
对每日股票 OHLCV CSV 运行做多策略回测,输出统一绩效指标与逐笔交易记录。