关于 storyclaw-polymarket-trading
storyclaw-polymarket-trading 是用于构建和管理 Polymarket 交易策略的 Agent 技能,默认启用模拟交易。它支持经用户确认后创建策略、依据表现调整参数,并要求明确批准后才进行实盘交易。
主要功能
- 01支持多种市场类别
- 02默认以模拟模式运行策略
- 03根据表现调整参数
- 04跟踪策略生命周期和状态
- 05创建策略前要求确认
- 06实盘交易前要求明确批准
适用场景
- 01探索用户选择的 Polymarket 市场类别
- 02在不进行实盘交易的情况下测试策略
- 03复核结果并调整策略参数
- 04判断是否批准转为实盘交易
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ storyclaw-official/ talenthub --skill storyclaw-polymarket-trading安装后在 Claude Code 中输入/storyclaw-polymarket-trading确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignorecredentials/example.jsonscripts/check_and_report.pymarket_scanner.pypolymarket.pyreview_cron.pysignal_cron.pysignals.pystrategy_manager.py详细介绍
Polymarket 交易 - 自我进化交易机器人
与用户共同设计交易策略,运行自动化模拟交易(dry-run),表现不佳时自动优化参数,并在达到优势目标后请求用户许可切换到实盘交易。
支持任何市场类型:政治、体育、加密货币价格、科学、娱乐等。
关键规则
- 绝不默认选择任何特定市场——始终询问用户想交易什么
- 绝不展示编造的价格或信号——只展示脚本的真实输出
- 默认始终启用 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
2. 询问用户想交易什么
不要自行假设。请询问:
- 市场类型是什么?(政治、体育、加密货币、科技等)
- 有没有需要重点关注的特定关键词?
3. 提出策略方案——等待确认
根据对话推导并提出具体数值。停止操作并等待用户确认后,再执行任何操作。
4. 创建策略(仅在确认后)
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 }
}'
5. 设置定时任务
SKILL_PATH={baseDir}
STRATEGY_ID=<id from step 4>
# Signal scan: every 15 minutes
(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 -
# Performance review: daily at 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% | 提高阈值(信号更少但更强) |
| 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 错误 401 | 重新运行设置以重新派生密钥 |
| 未找到市场 | 扩大关键词范围或降低 min_liquidity_usdc |
文件结构
polymarket-trading/
├── SKILL.md
├── scripts/
│ ├── strategy_manager.py # Lifecycle: create/review/status/activate-live
│ ├── signal_cron.py # Cron: scan markets, run signals, record trades
│ ├── review_cron.py # Cron: daily review + auto-improve
│ ├── signals.py # Pluggable signal methods
│ ├── market_scanner.py # Gamma API market discovery
│ └── polymarket.py # CLOB API primitives
├── credentials/
│ └── {USER_ID}.json
├── strategies/
│ └── {USER_ID}/{strategy_id}.json
└── state/
└── {USER_ID}.{strategy_id}.perf.json
评论
支持 Markdown