ClawSkills logoClawSkills

Polymarket FastLoop Trader

使用 Simmer API 通过 CEX 价格动量信号交易 Polymarket BTC 5 分钟和 15 分钟快速市场。默认信号为 Binance BTC/USDT K线。当

介绍

# Polymarket FastLoop Trader

使用实时价格信号在 Polymarket 的 5 分钟加密货币快速市场上进行交易。默认:来自 Binance 的 BTC 动量。也适用于 ETH 和 SOL。

> **仅限 Polymarket。** 所有交易均在 Polymarket 上使用真金白银的 USDC 执行。使用 `--live` 进行真实交易,默认为模拟运行。

> **这是一个模板。** 默认信号(Binance 动量)帮你上手——你可以使用自己的信号、数据源或策略对其进行改编。该技能负责所有繁琐工作(市场发现、导入、交易执行)。你的代理提供 Alpha。

> ⚠️ 快速市场需收取 Polymarket 10% 的费用 (`is_paid: true`)。请将此计入你的优势计算中。

## 它如何寻找市场

- 直接查询 **Polymarket** (Gamma API) 获取实时快速市场——不依赖 Simmer 的市场库存 - 每个周期发现新出现的市场 - 适用于 BTC、ETH 或 SOL——只需更改资产 (`--set asset=ETH`) 或让你的机器人查找你想要的任何市场 - 每 5 分钟运行一次以捕捉每个交易窗口(或每 1 分钟运行一次以捕捉窗口内的机会)

**你无需等待市场在 Simmer 中显示。** FastLoop 会实时在 Polymarket 上找到它们,然后通过 Simmer 导入并进行交易。

## 何时使用此技能

当用户想要执行以下操作时,请使用此技能: - 在任何支持的资产上交易加密货币冲刺/快速市场(5 分钟或 15 分钟) - 自动化短期加密货币预测交易 - 使用 CEX 价格动量(或任何自定义信号)作为 Polymarket 信号 - 监控冲刺市场头寸

## 设置流程

当用户要求安装或配置此技能时:

1. **索要 Simmer API 密钥** - 从 simmer.markets/dashboard → SDK 标签页获取 - 作为 `SIMMER_API_KEY` 存储在环境中

2. **索要钱包私钥**(实盘交易必需) - 这是其 Polymarket 钱包的私钥(即持有 USDC 的钱包) - 作为 `WALLET_PRIVATE_KEY` 存储在环境中 - SDK 会使用它自动在客户端签署订单——无需手动签名

3. **询问设置**(或确认默认值) - 资产:BTC、ETH 或 SOL(默认 BTC) - 入场阈值:交易的最小偏差(默认 5¢) - 最大头寸:每笔交易的金额(默认 $5.00) - 窗口:5m 或 15m(默认 5m)

4. **设置 cron 或循环**(用户驱动调度——请参阅“如何循环运行”)

## 快速开始

```bash # Set your API key export SIMMER_API_KEY="your-key-here"

# Dry run — see what would happen python fastloop_trader.py

# Go live python fastloop_trader.py --live

# Live + quiet (for cron/heartbeat loops) python fastloop_trader.py --live --quiet

# Live + smart sizing (5% of balance per trade) python fastloop_trader.py --live --smart-sizing --quiet ```

## 如何循环运行

该脚本运行 **一个周期**——你的机器人负责驱动循环。设置一个 cron 作业或心跳:

**每 5 分钟(每个快速市场窗口一次):** ``` */5 * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet ```

**每 1 分钟(更激进,捕捉窗口内的机会):** ``` * * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet ```

**通过 OpenClaw 心跳:** 添加到你的 HEARTBEAT.md: ``` Run: cd /path/to/fast market && python fastloop_trader.py --live --quiet ```

## 配置

通过 `config.json`、环境变量或 `--set` 进行配置:

```bash # Change entry threshold python fastloop_trader.py --set entry_threshold=0.08

# Trade ETH instead of BTC python fastloop_trader.py --set asset=ETH

# Multiple settings python fastloop_trader.py --set min_momentum_pct=0.3 --set max_position=10 ```

### 设置

| 设置 | 默认值 | 环境变量 | 描述 | |---------|---------|---------|-------------| | `entry_threshold` | 0.05 | `SIMMER_SPRINT_ENTRY` | 触发交易的最小价格偏差(相对于 50¢) | | `min_momentum_pct` | 0.5 | `SIMMER_SPRINT_MOMENTUM` | 触发交易的最小 BTC 涨跌幅 | | `max_position` | 5.0 | `SIMMER_SPRINT_MAX_POSITION` | 每笔交易的最大美元金额 | | `signal_source` | binance | `SIMMER_SPRINT_SIGNAL` | 价格源 (binance, coingecko) | | `lookback_minutes` | 5 | `SIMMER_SPRINT_LOOKBACK` | 价格历史记录的分钟数 | | `min_time_remaining` | 60 | `SIMMER_SPRINT_MIN_TIME` | 跳过剩余时间不足的快速市场(秒) | | `asset` | BTC | `SIMMER_SPRINT_ASSET` | 交易资产 (BTC, ETH, SOL) | | `window` | 5m | `SIMMER_SPRINT_WINDOW` | 市场窗口持续时间 (5m 或 15m) | | `volume_confidence` | true | `SIMMER_SPRINT_VOL_CONF` | 按 Binance 成交量对信号加权 |

### 示例 config.json

```json { "entry_threshold": 0.08, "min_momentum_pct": 0.3, "max_position": 10.0, "asset": "BTC", "window": "5m", "signal_source": "binance" } ```

## CLI 选项

```bash python fastloop_trader.py # Dry run python fastloop_trader.py --live # Real trades python fastloop_trader.py --live --quiet # Silent except trades/errors python fastloop_trader.py --smart-sizing # Portfolio-based sizing python fastloop_trader.py --positions # Show open fast market positions python fastloop_trader.py --config # Show current config python fastloop_trader.py --set KEY=VALUE # Update config ```

## 信号逻辑

默认信号(Binance 动量):

1. 从 Binance 获取过去 5 根一分钟蜡烛图 (`BTCUSDT`) 2. 计算动量:`(price_now - price_5min_ago) / price_5min_ago` 3. 比较动量方向与当前的 Polymarket 赔率 4. 当满足以下条件时交易: - 动量 ≥ `min_momentum_pct`(默认 0.5%) - 价格偏离 50¢ 的幅度 ≥ `entry_threshold`(默认 5¢) - 成交量比率 > 0.5 倍平均值(过滤掉微小波动)

**示例:** BTC 在过去 5 分钟内上涨 0.8%,但快速市场的 YES 价格仅为 $0.52。与预期的约 $0.55 相比,3¢ 的偏差 → 买入 YES。

### 改编它:接入你自己的信号

**此技能是一个模板。** 默认的 Binance 动量信号只是一个起点。该技能负责所有枯燥的部分(市场发现、导入、订单执行、预算跟踪)。你需要提供信号。

自定义信号的想法: - **多交易所价差:** 比较 Binance、Kraken、Bitfinex 之间的价格——交易所之间的偏差可以预测 CLOB 方向 - **情绪:** 叠加 Twitter/社交信号——一条病毒式推文可以在 CLOB 调整之前推动快速市场 - **技术指标:** 来自你喜欢的数据源的 RSI、VWAP、订单流分析 - **新闻:** 突发新闻相关性——使用你代理的推理能力来解读标题 - **链上数据:** 巨鲸动向、资金费率、清算水平

要自定义,请编辑 `fastloop_trader.py` 中的 `get_momentum()` 或添加你自己的信号函数。技能的其余部分(发现、导入、仓位大小、费用感知的 EV 检查)保持不变。

## 示例输出

``` ⚡ Simmer FastLoop Trading Skill ==================================================

[DRY RUN] No trades will be executed. Use --live to enable trading.

⚙️ Configuration: Asset: BTC Entry threshold: 0.05 (min divergence from 50¢) Min momentum: 0.5% (min price move) Max position: $5.00 Signal source: binance Lookback: 5 minutes Min time left: 60s Volume weighting: ✓

🔍 Discovering BTC fast markets... Found 3 active fast markets

🎯 Selected: Bitcoin Up or Down - February 15, 5:30AM-5:35AM ET Expires in: 185s Current YES price: $0.480

📈 Fetching BTC price signal (binance)... Price: $97,234.50 (was $96,812.30) Momentum: +0.436% Direction: up Volume ratio: 1.45x avg

🧠 Analyzing... ⏸️ Momentum 0.436% < minimum 0.500% — skip

📊 Summary: No trade (momentum too weak: 0.436%) ```

## 源标记

所有交易都带有 `source: "sdk:fastloop"` 标签。这意味着: - 投资组合按策略显示明细 - 其他技能不会干扰你的快速市场头寸 - 你可以单独跟踪快速市场的盈亏 (P&L)

## 故障排除

**"未找到活跃的快速市场"** - 快速市场可能未运行(非工作时间、周末) - 直接检查 Polymarket 上是否有活跃的 BTC 快速市场

**"没有剩余时间 >60s 的快速市场"** - 当前窗口即将过期,下一个尚未上线 - 如果你想在临近到期时交易,请减少 `min_time_remaining`

**"导入失败:超过速率限制"** - 免费版:10 次/天。专业版:50 次/天 - 快速市场交易需要专业版才能获得合理的频率

**"获取价格数据失败"** - Binance API 可能宕机或受到速率限制 - 尝试使用 `--set signal_source=coingecko` 作为后备方案

**"交易失败:没有流动性"** - 快速市场订单簿稀薄,尝试较小的仓位规模

**"外部钱包需要预签名订单"** - `WALLET_PRIVATE_KEY` 未在环境中设置 - 当存在此环境变量时,SDK 会自动签署订单——无需手动签名代码 - 修复方法:`export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>` - 请勿尝试手动签署订单或修改技能代码——SDK 会处理它

**"余额显示 $0 但我在 Polygon 上有 USDC"** - Polymarket 使用 **USDC.e**(桥接的 USDC,合约 `0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174`)——而非原生 USDC - 如果你最近将 USDC 桥接到 Polygon,你可能收到的是原生 USDC - 将原生 USDC 兑换为 USDC.e,然后重试

更多产品