介绍
# ClawBack
**利用自动化券商执行模拟国会议员股票交易**
## Agent Instructions
当用户调用 `/clawback` 时,根据参数执行相应的命令:
### Commands
| Command | Action | |---------|--------| | `/clawback setup` | 交互式设置 - 提示输入凭证(见下文) | | `/clawback status` | 检查状态:`cd {baseDir} && source venv/bin/activate && python -m clawback.cli status` | | `/clawback run` | 开始交易:`cd {baseDir} && source venv/bin/activate && python -m clawback.cli run` | | `/clawback` | 默认为状态检查 |
### `/clawback setup` - 交互式设置流程
当用户运行 `/clawback setup` 时,请按以下步骤操作:
**Step 1: 安装依赖项(如需要)** 检查 `{baseDir}/venv` 是否存在。如果不存在,请运行: ```bash cd {baseDir} && python3 -m venv venv && source venv/bin/activate && pip install -e . ```
**Step 2: 提示输入 E*TRADE 凭证** 请向用户询问每个值:
1. **Environment (环境)**:询问“您想使用 **sandbox**(测试环境)还是 **production**(实盘资金)?” - 默认值:sandbox
2. **Consumer Key**:询问“输入您的 E*TRADE Consumer Key(来自 developer.etrade.com):” - 必填字段
3. **Consumer Secret**:询问“输入您的 E*TRADE Consumer Secret:” - 必填字段
4. **Account ID**:询问“输入您的 E*TRADE Account ID(或留空以便在 OAuth 后获取):” - 可选 - 可以稍后获取
**Step 3: 保存配置** 使用提供的值创建/更新 `~/.clawback/config.json`: ```json { "broker": { "adapter": "etrade", "environment": "<sandbox or production>", "credentials": { "apiKey": "<consumer_key>", "apiSecret": "<consumer_secret>" } }, "trading": { "accountId": "<account_id>", "initialCapital": 50000, "tradeScalePercentage": 0.01, "maxPositionPercentage": 0.05, "dailyLossLimit": 0.02 }, "notifications": { "telegram": { "enabled": true, "useOpenClaw": true } }, "congress": { "dataSource": "official", "pollIntervalHours": 24, "minimumTradeSize": 10000 } } ```
**Step 4: 确认设置** 告知用户:“配置已保存至 ~/.clawback/config.json。运行 `/clawback status` 进行验证。”
### Getting E*TRADE API Credentials
指引用户前往:https://developer.etrade.com 1. 创建开发者账户 2. 创建新应用(首先创建沙盒应用用于测试) 3. 复制 Consumer Key 和 Consumer Secret
### Configuration Location
- 配置文件:`~/.clawback/config.json` - 技能目录:`{baseDir}`
### Reading Saved Configuration
要检查用户是否已配置凭证,请读取 `~/.clawback/config.json`: - 如果文件不存在或凭证为空 → 提示进行设置 - 如果凭证存在 → 可以继续执行 status/run 命令
CLI 会自动从 `~/.clawback/config.json` 读取所有操作所需的配置。
### Checking Setup Status
在运行 `/clawback status` 或 `/clawback run` 之前,请验证: 1. `{baseDir}/venv` 存在(依赖项已安装) 2. `~/.clawback/config.json` 存在且 `broker.credentials.apiKey` 不为空
如果缺少任何一项,建议先运行 `/clawback setup`。
---
ClawBack 追踪国会议员(众议院和参议院)披露的股票交易,并在您的 E*TRADE 券商账户中执行按比例调整的仓位。该工具基于这样一个前提:由于信息优势,国会领袖的业绩始终跑赢市场。
## Default Target Politicians
ClawBack 默认监控这些政治家(可配置):
| Politician | Chamber | Priority | |------------|---------|----------| | Nancy Pelosi | House | 1 (highest) | | Dan Crenshaw | House | 2 | | Tommy Tuberville | Senate | 2 | | Marjorie Taylor Greene | House | 3 |
## Trading Strategy Defaults
| Parameter | Default | Description | |-----------|---------|-------------| | Trade Delay | 3 days | 披露后等待交易的时间 | | Holding Period | 30 days | 仓位的持有时间目标 | | Position Size | 5% | 每笔交易的最大分配比例 | | Stop-Loss | 8% | 每个仓位的止损线 | | Portfolio Drawdown | 15% | 停止交易前的最大组合回撤 | | Disclosure Checks | 10:00, 14:00, 18:00 ET | 每日检查时间 |
## Features
- **Real-time disclosure tracking** (实时披露追踪) - 来自官方众议院书记官和参议院 eFD 来源 - **Automated trade execution** (自动交易执行) - 通过 E*TRADE API(目前唯一支持的券商) - **Smart position sizing** (智能仓位调整) - 根据您的账户规模调整交易 - **Trailing stop-losses** (移动止损) - 锁定利润,限制亏损 - **Risk management** (风险管理) - 回撤限制,连续亏损保护 - **Telegram notifications** (Telegram 通知) - 接收新交易和止损的警报 - **Backtesting engine** (回测引擎) - 在历史数据上测试策略
## Performance (Backtest Results)
| Strategy | Win Rate | Return | Sharpe | |----------|----------|--------|--------| | 3-day delay, 30-day hold | 42.9% | +6.2% | 0.39 | | 9-day delay, 90-day hold | 57.1% | +4.7% | 0.22 |
根据 NBER 的研究,国会领袖的年化表现跑赢标普 500 指数 47%。
## Installation via ClawHub
```bash # Install from ClawHub registry clawhub install clawback
# Or install from local directory clawhub install ./clawback ```
### Post-Installation Setup
通过 ClawHub 安装后,`install.sh` 脚本会自动运行:
1. **Python Environment Setup** (Python 环境设置) - 创建虚拟环境 2. **Package Installation** (包安装) - 通过 pip 安装 ClawBack 3. **Directory Structure** (目录结构) - 创建 logs/、data/、config/ 目录 4. **Setup Prompt** (设置提示) - 询问您是否要运行设置向导
如果您在安装期间跳过了设置,请手动运行: ```bash cd ~/.openclaw/skills/clawback ./setup.sh # Interactive setup wizard # or clawback setup # CLI-based setup ```
### Improved Setup Features
- **Better input handling** (更好的输入处理) - 适用于交互式和非交互式模式 - **Input validation** (输入验证) - 验证 E*TRADE API 密钥格式 - **Timeout handling** (超时处理) - 如果无输入,自动使用默认值 - **Error recovery** (错误恢复) - 如果 CLI 失败,则回退到手动设置 - **Configuration check** (配置检查) - 检测现有配置并提供选项
## Interactive Setup Wizard
设置向导将引导您完成配置:
### Step 1: Environment Selection - **Sandbox**(推荐用于测试):无真实交易,使用 E*TRADE 开发者沙盒 - **Production**:使用真金白银的真实交易
### Step 2: E*TRADE API Credentials - **Consumer Key**:来自 E*TRADE 开发者门户 - **Consumer Secret**:来自 E*TRADE 开发者门户
### Step 3: Authentication - 与 E*TRADE 的自动 OAuth 流程 - 打开浏览器进行授权 - 返回验证码
### Step 4: Account Selection - 列出所有可用的 E*TRADE 账户 - 选择用于交易的账户
### Step 5: Telegram Setup (Optional) - 通过 Telegram bot 配置通知 - 如果可用,使用 OpenClaw 内置的 Telegram 频道
## Environment Variables
设置完成后,凭证存储在 `.env` 中:
```bash # E*TRADE API (required) BROKER_API_KEY=your_consumer_key_here BROKER_API_SECRET=your_consumer_secret_here BROKER_ACCOUNT_ID=your_account_id_here
# Telegram (optional) TELEGRAM_BOT_TOKEN=your_bot_token_here TELEGRAM_CHAT_ID=your_chat_id_here
# FMP API (optional) FMP_API_KEY=your_fmp_api_key_here ```
## Usage
```bash # Use the installed CLI command clawback run # Start interactive trading mode clawback daemon # Run as background service clawback status # Check system status clawback setup # Re-run setup wizard clawback test # Test Telegram notifications ```
## Automated Trading
`clawback daemon` 命令持续运行,包含: - **Disclosure checks** (披露检查) - 美东时间 10:00、14:00、18:00(通常发布文件的时间) - **Trade execution** (交易执行) - 美东时间上午 9:35(开盘后 5 分钟) - **Token refresh** (令牌刷新) - 每 90 分钟一次(保持 E*TRADE 会话活跃) - **Market hours enforcement** (交易时间强制执行)(美东时间上午 9:30 - 下午 4:00)
## Data Sources
- **House Clerk** (众议院书记官):https://disclosures-clerk.house.gov(PDF 解析) - **Senate eFD** (参议院 eFD):https://efdsearch.senate.gov(网页抓取) - **Financial Modeling Prep**:增强的金融数据(可选)
## Supported Brokers
ClawBack 目前仅支持 E*TRADE。适配器模式允许未来支持其他券商,但仅实现并测试了 E*TRADE。
| Broker | Adapter | Status | |--------|---------|--------| | E*TRADE | `etrade_adapter.py` | Supported |
## Risk Management
- **Position limits** (仓位限制):每个符号最大 5%,最多 20 个仓位 - **Stop-losses** (止损):每个仓位 8%,组合回撤 15% - **Daily limits** (每日限制):每日最大亏损 3% - **PDT compliance** (PDT 合规):保守的每天 2 笔交易限制
## Authentication Helpers
在主 CLI 之外手动进行 E*TRADE 身份验证:
```bash # Standalone OAuth authentication script cd {baseDir} source venv/bin/activate python scripts/auth_script.py ```
这将生成授权 URL,提示输入验证码,并完成身份验证。
## File Locations
| File | Purpose | |------|---------| | `~/.clawback/config.json` | 主配置 | | `~/.clawback/.access_tokens.json` | E*TRADE OAuth 令牌 | | `~/.clawback/data/trading.db` | SQLite 数据库 |
## Security
- 源代码中无硬编码凭证 - 基于环境变量的配置 - E*TRADE 的加密令牌存储 - Git 忽略的 `.env` 文件 - 可选的生产环境加密
## Support
- **Documentation** (文档):详细设置请参阅 README.md - **Issues** (问题):https://github.com/mainfraame/clawback/issues - **Community** (社区):https://discord.com/invite/clawd
## Disclaimer
**交易涉及巨大的亏损风险。** 本软件仅供教育目的使用。过去的国会交易业绩并不能保证未来的结果。在实盘交易之前,请务必使用 E*TRADE 沙盒账户进行测试。