内容
# TradePilot MCP Server
一个使用 Python 构建的模型上下文协议 (MCP) 服务器,使 AI LLMs(如 Claude AI)能够使用 MetaTrader 5 平台进行交易。该项目提供了一整套交易和市场数据功能,允许通过自然语言和编程方式控制交易操作。
## 特性
- **自然语言交易:** 与 AI LLMs 集成,使用简单的英语进行下单、管理和分析交易。
- **MetaTrader 5 集成:** 直接连接到 MT5 进行实时交易、订单管理和账户监控。
- **Gemini-2.0-flash 支持:** 利用 Google 的高级模型进行更丰富的对话。
- **全面的 API:** 提供市场数据、交易、账户和历史功能,支持高级自动化和分析。
- **可扩展和模块化:** 轻松添加新策略或扩展现有功能。
- **用户友好:** 适合新手和经验丰富的交易者。
## 开始使用
### 1. 克隆代码库
```bash
git clone https://github.com/DrMyth/TradePilot.git
cd TradePilot
```
### 2. 创建并激活虚拟环境
在 Windows 上:
```powershell
uv venv
source .venv/Scripts/activate
```
在 Linux/macOS 上(假设使用 bash/zsh):
```bash
uv venv
.venv/Scripts/activate
```
### 3. 安装依赖
```bash
uv pip install -r pyproject.toml
```
### 4. 使用 Gemini-2.0-flash 运行 MCP 客户端
交互式 CLI 客户端:启动一个由 Gemini‑2.0‑flash 驱动的 REPL,以执行自然语言交易命令(例如:“下一个买单……”或“显示我的未平仓头寸”)。
1. 编辑 `src/config.json`,指向您的 MCP 服务器端点和凭据。
2. 从 [Google AI Studio](https://aistudio.google.com/) 获取 Gemini-2.0-flash API 密钥。
3. 将您的 API 密钥添加到项目根目录中的 `.env` 文件(如果不存在则创建一个):
```
GEMINI_API_KEY=your_api_key_here
```
4. 运行客户端:
```bash
uv run src/client.py
```
### 5. 运行服务器(调试/开发)
```bash
mcp run src/main.py
```
此命令启动 MCP 服务器,并使所有交易和市场数据功能可用。您可以通过 https://localhost:6274 访问服务器。
## 与 Cursor IDE 或 Claude AI 的集成
要将此 MCP 服务器与 Cursor IDE 或 Claude AI 等 AI 工具集成,请使用以下配置(示例):
```json
{
"mcpServers": {
"TradePilot": {
"command": "/absolute/path/to/uv/.local/bin/uv.exe",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"/absolute/path/to/TradePilot/src/main.py"
],
"env": {
"PYTHONPATH": "/absolute/path/to/TradePilot/src"
}
}
}
}
```
## 功能参考
### 市场数据函数
- `get_symbols()`: 获取所有可用的交易品种。
- `get_symbols_by_group(group)`: 按组获取交易品种。
- `get_symbol_info(symbol)`: 获取特定交易品种的信息。
- `get_symbol_info_tick(symbol)`: 获取某个交易品种的最新报价。
- `copy_rates_from_pos(symbol, timeframe, start_pos, count)`: 从特定位置获取 K 线数据。
- `copy_rates_from_date(symbol, timeframe, date_from, count)`: 从特定日期获取 K 线数据。
- `copy_rates_range(symbol, timeframe, date_from, date_to)`: 获取日期范围内的 K 线数据。
- `copy_ticks_from_pos(symbol, start_pos, count)`: 从特定位置获取报价数据。
- `copy_ticks_from_date(symbol, date_from, count)`: 从特定日期获取报价数据。
- `copy_ticks_range(symbol, date_from, date_to)`: 获取日期范围内的报价数据。
### 交易函数
- `order_send(request)`: 向交易服务器发送订单。
- `order_check(request)`: 检查是否可以使用指定参数下单。
- `positions_get(symbol, group)`: 获取未平仓头寸。
- `positions_get_by_ticket(ticket)`: 根据票据获取未平仓头寸。
- `orders_get(symbol, group)`: 获取活跃订单。
- `orders_get_by_ticket(ticket)`: 根据票据获取活跃订单。
- `history_orders_get(symbol, group, ticket, position, from_date, to_date)`: 获取历史订单。
- `history_deals_get(symbol, group, ticket, position, from_date, to_date)`: 获取历史成交。
### 账户函数
- `fetch_account_info()`: 获取完整的账户信息。
- `fetch_account_balance()`: 获取当前账户余额。
- `fetch_account_equity()`: 获取当前账户权益。
- `fetch_account_currency()`: 获取账户存款货币。
- `fetch_account_leverage()`: 获取账户杠杆。
- `fetch_account_type()`: 获取账户类型(真实/模拟/比赛)。
- `fetch_trade_stats()`: 获取交易统计摘要。
- `fetch_margin_level()`: 获取保证金水平百分比。
- `fetch_free_margin()`: 获取可用保证金。
- `fetch_account_used_margin()`: 获取已用保证金。
### 订单/头寸管理
- `send_market_order()`: 下达市价单(买入/卖出)。
- `send_pending_order()`: 下达挂单(限价/止损/止损限价)。
- `close_position_by_id()`: 根据票据关闭头寸。
- `close_all_positions()`: 关闭所有未平仓头寸。
- `close_all_positions_by_symbol(symbol)`: 关闭某个交易品种的所有头寸。
- `close_all_profitable_positions()`: 关闭所有盈利头寸。
- `close_all_losing_positions()`: 关闭所有亏损头寸。
- `cancel_order()`: 根据票据取消挂单。
- `cancel_all_pending_orders()`: 取消所有挂单。
- `cancel_pending_order_by_symbol(symbol)`: 取消某个交易品种的所有挂单。
- `update_sltp()`: 更新头寸的止损/止盈。
- `modify_position()`: 修改未平仓头寸。
- `modify_pending_order()`: 修改挂单。
- `modify_order()`: 修改订单。
### 计算
- `calculate_profit()`: 计算交易的利润。
- `calculate_price_targets()`: 估算期望利润/亏损的退出价格或止损。
- `calculate_margin()`: 计算交易所需的保证金。
- `calculate_lot_size()`: 根据风险和止损计算手数。
### 连接/终端函数
- `initialize()`: 初始化 MetaTrader 5 终端。
- `login()`: 登录 MetaTrader 5 终端。
- `shutdown()`: 关闭 MetaTrader 5 终端。
- `fetch_terminal_info()`: 获取终端信息。
- `check_trading_status()`: 检查是否允许交易。
- `check_connection_status()`: 检查终端是否连接。
## 免责声明
本项目仅用于教育和研究目的。交易外汇、股票或加密货币等金融工具涉及重大风险,可能不适合所有投资者。本项目的作者和贡献者对因使用本软件而产生的任何财务损失或损害不承担责任。在用真实资金交易之前,请始终在模拟账户中进行充分测试,并在不确定时咨询合格的财务顾问。使用风险自负。
## 许可证
本项目根据 **MIT 许可证** 发布。有关详细信息,请参见 [LICENSE](LICENSE)。
连接信息
猜你喜欢
Vibe-Trading
Vibe-Trading:您的个人交易代理
ai-berkshire
AI 时代的伯克希尔:基于 Claude Code 的价值投资研究框架。巴菲特·芒格·段永平·李录四大师方法论 + 多Agent并行研究。
HexStrike AI
HexStrike AI是一个AI驱动的MCP网络安全自动化平台,拥有150多个工具。
valuecell
Valuecell是一个用于高效数据管理的Python项目。
tradingview-mcp
AI辅助TradingView图表分析 — 将Claude Code连接到您的TradingView Desktop,实现个人工作流自动化
tradingview-mcp
TradingView MCP Server 提供加密货币和股票的实时市场分析。