mcpField
S
storyclaw-polymarket-trading

storyclaw-polymarket-trading

github.com/storyclaw-official其他054 次安装今天更新
代码仓库

关于 storyclaw-polymarket-trading

storyclaw-polymarket-trading 是用于构建和管理 Polymarket 交易策略的 Agent 技能,默认启用模拟交易。它支持经用户确认后创建策略、依据表现调整参数,并要求明确批准后才进行实盘交易。

主要功能

  1. 01支持多种市场类别
  2. 02默认以模拟模式运行策略
  3. 03根据表现调整参数
  4. 04跟踪策略生命周期和状态
  5. 05创建策略前要求确认
  6. 06实盘交易前要求明确批准

适用场景

  1. 01探索用户选择的 Polymarket 市场类别
  2. 02在不进行实盘交易的情况下测试策略
  3. 03复核结果并调整策略参数
  4. 04判断是否批准转为实盘交易

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/storyclaw-official/talenthub --skill storyclaw-polymarket-trading

安装后在 Claude Code 中输入/storyclaw-polymarket-trading确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
credentials/
example.json
scripts/
check_and_report.py
market_scanner.py
polymarket.py
review_cron.py
signal_cron.py
signals.py
strategy_manager.py

详细介绍

Polymarket 交易 - 自我进化交易机器人

与用户共同设计交易策略,运行自动化模拟交易(dry-run),表现不佳时自动优化参数,并在达到优势目标后请求用户许可切换到实盘交易。

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

关键规则

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

多用户支持

每位用户都有自己的 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-clientpip3 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