TradePilot MCP服务器
使用Python构建的模型上下文协议(MCP)服务器,使AI LLM(如Claude AI)能够使用MetaTrader 5平台进行交易。该项目公开了一套全面的交易和市场数据功能,允许对交易操作进行自然语言和程序控制。
特性
- 自然语言交易: 与AI LLMs集成,使用简单的英语进行交易的定位、管理和分析。
- MetaTrader 5集成: 直接连接到MT5,用于实时交易、订单管理和账户监控。
- 双子座-2.0-flash支持: 利用谷歌的先进模式进行更丰富的对话。
- 综合API: 公开市场数据、交易、账户和历史功能,以实现高级自动化和分析。
- 可扩展和模块化: 轻松添加新策略或扩展现有功能。
- 用户友好: 专为新手和经验丰富的交易者设计。
入门指南
1.克隆存储库
git clone https://github.com/DrMyth/TradePilot.git
cd TradePilot2.创建和激活虚拟环境
在Windows上:
uv venv
source .venv/Scripts/activate在Linux/macOS上(假设为bash/zsh):
uv venv
.venv/Scripts/activate3.安装依赖项
uv pip install -r pyproject.toml4.使用Gemini-2.0-flash运行MCP客户端
交互式CLI客户端:启动由Gemini‑2.0‑flash驱动的REPL,以执行自然语言的交易命令(例如“下买入订单…”或“显示我的未平仓头寸”)。
- 编辑
src/config.json指向您的MCP服务器端点和凭据。
- 从获取Gemini-2.0-flash API密钥 谷歌人工智能工作室.
- 将API密钥添加到
.env项目根目录中的文件(如果不存在,请创建一个):
GEMINI_API_KEY=your_api_key_here- 运行客户端:
uv run src/client.py5.运行服务器(调试/开发)
mcp run src/main.py此命令启动MCP服务器,使所有交易和市场数据功能可用。您可以访问服务器https://localhost:6274.
与Cursor IDE或Claude AI集成
要将此MCP服务器与Cursor IDE或Claude AI等AI工具集成,请使用以下配置(示例):
{
"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):从特定位置获取条形图。copy_rates_from_date(symbol, timeframe, date_from, count):从特定日期获取条形图。copy_rates_range(symbol, timeframe, date_from, date_to):获取日期范围内的条形图。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许可证。参见 许可证 了解详情。
