SuperAPI AI 工具集

storyclaw-polymarket-trading

数据与分析

查看项目

更新于 10-16 01:58

技能介绍

Polymarket Trading - 自进化交易机器人

与用户一起设计交易策略,运行自动化模拟交易(dry-run),在表现不佳时自动改进参数,并在达到 edge 目标时征求许可切换到实盘交易。

支持任意市场类型:政治、体育、加密价格、科学、娱乐等。

关键规则

  • 绝不要默认选择任何特定市场——始终询问用户想交易什么
  • 绝不展示捏造的价格或信号——只展示真实脚本输出
  • DRY RUN 默认始终开启——仅在用户明确确认后才切换到实盘
  • 静默自动改进——调整参数并通知用户
  • 未经用户明确确认,绝不创建策略或设置定时任务

多用户支持

每个用户拥有自己的 credentials/{USER_ID}.json:

{ "private_key": "0x...", "funder_address": "0x...", "dry_run": true }

调用脚本时设置 USER_ID 或 TELEGRAM_USER_ID 环境变量。

或设置 POLYMARKET_PRIVATE_KEY 环境变量。

首次用户流程

  1. 检查凭据

USER_ID=$TELEGRAM_USER_ID python3 {baseDir}/scripts/polymarket.py check

如果未配置,运行交互式设置:

USER_ID=$TELEGRAM_USER_ID python3 {baseDir}/scripts/polymarket.py setup

  1. 询问他们想交易什么

不要假设。询问:

  • 什么市场类型?(政治、体育、加密、科技等)
  • 是否有任何特定关键词要关注?
  1. 提出策略——等待确认

根据对话推导并提出具体数值。停止并等待用户确认后再执行任何操作。

  1. 创建策略(仅在确认后)

USER_ID=$TELEGRAM_USER_ID python3 {baseDir}/scripts/strategy_manager.py create --json '{ "name": "<strategy name>", "market_filter": { "keywords": ["<keywords>"], "min_liquidity_usdc": 1000, "max_days_to_expiry": 30, "min_days_to_expiry": 1 }, "signal": { "method": "orderbook_imbalance", "params": { "threshold": 0.15, "max_entry_price": 0.60 } }, "sizing": { "max_size_usdc": 5 }, "targets": { "min_sample_size": 30, "min_edge": 0.05 } }'

  1. 设置定时任务

SKILL_PATH={baseDir} STRATEGY_ID=<id from step 4>

信号扫描:每 15 分钟

(crontab -l 2>/dev/null; echo "*/15 * * * * USER_ID=$TELEGRAM_USER_ID python3 $SKILL_PATH/scripts/signal_cron.py $STRATEGY_ID >> $SKILL_PATH/state/$TELEGRAM_USER_ID.$STRATEGY_ID.log 2>&1") | crontab -

绩效评估:每天 09:00 UTC

(crontab -l 2>/dev/null; echo "0 9 * * * USER_ID=$TELEGRAM_USER_ID python3 $SKILL_PATH/scripts/review_cron.py $STRATEGY_ID >> $SKILL_PATH/state/$TELEGRAM_USER_ID.review.log 2>&1") | crontab -

策略生命周期

dry_run → improving → pending_live → live

进入实盘条件:edge = win_rate - avg_entry_price >= min_edge 且 total_pnl > 0

策略管理

USER_ID=$TELEGRAM_USER_ID python3 {baseDir}/scripts/strategy_manager.py status USER_ID=$TELEGRAM_USER_ID python3 {baseDir}/scripts/strategy_manager.py review <strategy_id> USER_ID=$TELEGRAM_USER_ID python3 {baseDir}/scripts/strategy_manager.py activate-live <strategy_id>

自动改进规则

条件 | 操作

edge < min_edge - 10% | 提高 threshold(信号更少但更强)

edge < min_edge - 3% | 降低 max_entry_price(更便宜的入场)

3+ 次调整仍失败 | 通知用户重新考虑

edge >= min_edge 且 pnl > 0 | 标记 pending_live,通知用户

信号方法

方法 | 最适合

orderbook_imbalance | 任何有活跃订单簿的流动市场

新方法可以添加到 scripts/signals.py。

故障排除

错误 | 解决方案

未安装 py-clob-client | pip3 install py-clob-client

未设置 USER_ID | 添加 USER_ID=xxx 前缀

未找到配置 | 运行 python3 {baseDir}/scripts/polymarket.py setup

API Error 401 | 重新运行 setup 以重新派生密钥

未找到市场 | 放宽关键词或降低 min_liquidity_usdc

文件结构

polymarket-trading/ ├── SKILL.md ├── scripts/ │ ├── strategy_manager.py # 生命周期:create/review/status/activate-live │ ├── signal_cron.py # 定时任务:扫描市场、运行信号、记录交易 │ ├── review_cron.py # 定时任务:每日评估 + 自动改进 │ ├── signals.py # 可插拔信号方法 │ ├── market_scanner.py # Gamma API 市场发现 │ └── polymarket.py # CLOB API 原语 ├── credentials/ │ └── {USER_ID}.json ├── strategies/ │ └── {USER_ID}/{strategy_id}.json └── state/ └── {USER_ID}.{strategy_id}.perf.json