内容
# eTRADER — eToro 投资组合代理
[](LICENSE)
[](etoro-mcp/requirements.txt)
[](https://modelcontextprotocol.io)
[](https://claude.com/claude-code)
一个适用于 [Claude Code](https://claude.com/claude-code) 的个人 eToro 投资组合代理,由本地 Python MCP 服务器支持,该服务器封装了 [eToro 公共 API](https://api-portal.etoro.com)。跟踪仓位,分析交易品种,管理风险,并执行确认门控交易 — 所有这些都可以在 Claude Code 会话中完成。
## 工作原理
Claude Code 加载该项目并作为 **eTRADER** 运行,一个有纪律的投资组合代理,在 [`agent instruction/etoro-trader-project-instructions.md`](agent%20instruction/etoro-trader-project-instructions.md) 中定义。代理通过项目范围的 MCP 服务器(`etoro-mcp/server.py`,stdio 传输)与 eToro 通信,该服务器公开了各种工具:
| 技能 | 工具 |
|---|---|
| 身份 | `get_profile` |
| 跟踪 | `get_portfolio`, `get_positions`, `get_balances`, `get_pnl` |
| 历史 | `get_trading_history` |
| 市场数据 | `search_instruments`, `get_instrument_by_symbol`, `get_instrument_by_id`, `get_rates`, `get_candles` |
| 监控列表和警报 | `get_watchlists`, `add_to_watchlist`, `create_price_alert`, `get_price_alerts` |
| 执行(可选) | `create_order`, `close_position`, `cancel_order`, `modify_position` |
## 硬性约束
这些约束内置于代理指令中,是不可商量的:
- **确认门控** — 没有订单会被创建、修改或关闭,除非明确确认当前对话中的确切订单票。
- **演示优先** — 新策略在真实模式之前在演示模式下运行。
- **止损要求** — 每个新仓位都带有止损。
- **仓位规模** — 默认风险 ≤ 每笔交易的权益的 1%;单个仓位上限为权益的 10%。
- 资本保值优先于利润捕获。始终如此。
## 设置
要求:Python 3.14+,Claude Code 安装程序和 eToro API 密钥(在 eToro 的 *设置 → 交易 → API 密钥管理* 下创建)。
```bash
./install-etoro-mcp.sh
```
安装程序创建 `etoro-mcp/.venv`,从 `etoro-mcp/requirements.txt` 安装固定的依赖项,并使用您的密钥编写项目范围的 `.mcp.json`。
或者,复制 `.mcp.json.example` 到 `.mcp.json` 并手动填写。
### 配置(`.mcp.json` 环境变量)
| 变量 | 目的 |
|---|---|
| `ETORO_API_KEY` | 公共 API 密钥(标识应用程序) |
| `ETORO_USER_KEY` | API 密钥管理中的用户密钥 |
| `ETORO_MODE` | `demo` 或 `real` |
| `ETORO_ENABLE_TRADING` | `true` 以启用执行工具 |
通过编辑 `.mcp.json` 并重启 Claude Code 会话来更改模式或交易。使用 `claude mcp list` 或 `/mcp` 验证服务器。
> **`.mcp.json` 包含您的 API 密钥 — 它被 gitignore 并且永远不应被提交。**
## 使用
在项目目录中启动 Claude Code 并用普通语言与其交互:
- *"我的投资组合怎么样?"* — 带有仓位、盈亏和风险标志的快照
- *"分析 TSLA"* — 多时间框架技术分析,带有进入/等待/避免的判决
- *"买入 $500 AAPL,止损 5% "* — 呈现订单票,仅在您确认后执行
- *"风险检查"* — 集中度、总风险止损、回撤协议
- *"每周回顾"* — 胜率、期望值和诚实的行为诊断
## 项目布局
| 路径 | 目的 |
|---|---|
| `agent instruction/` | eTRADER 角色定义 |
| `etoro-mcp/server.py` | MCP 服务器(单一来源) |
| `etoro-mcp/requirements.txt` | 固定的依赖项 |
| `.mcp.json.example` | 无密钥配置模板 |
| `install-etoro-mcp.sh` | 一次性安装程序 |
| `memory/` | 代理内存 — 每个文件一个事实,索引在 `memory/MEMORY.md` 中(仅本地;参见 `memory/MEMORY.md.example`) |
| `CHANGELOG.md` | 值得注意的更改,按功能记录 |
## 贡献
问题和拉取请求是欢迎的。请在 **演示模式** 下开发,永远不要提交 `.mcp.json` 或任何包含密钥的文件,并保持硬性约束完整 — 削弱确认门控或止损要求的更改不会被合并。
## 许可证
[MIT](LICENSE)
## 免责声明
这是个人工具,而不是财务建议。交易涉及损失风险;代理明确表示市场是概率性的,永远不会承诺利润。请先使用演示模式。