Skip to main content
Glama
akinabudu

ctrader-mcp-server

by akinabudu

cTrader MCP 服务器

一个独立的模型上下文协议 (MCP) 服务器,使 AI 助手能够与 cTrader 交易平台进行交互。

🚀 这是什么?

此 MCP 服务器允许像 Claude 这样的 AI 助手通过自然语言对话在 cTrader 上执行交易、分析市场并管理仓位。

对话示例:

  • “显示我的账户余额” → 获取余额、净值、仓位

  • “买入 0.01 手 EURUSD,止损设为 1.08” → 下单交易

  • “计算 GBPUSD 的 RSI” → 分析技术指标

  • “平掉所有亏损的仓位” → 管理风险

Related MCP server: 3commas-mcp

✨ 功能特性

交易操作

  • 市价单 - 以当前价格立即执行

  • 限价单 - 在特定价格水平下单

  • 止损/止盈单 - 止损或止损入场订单

  • 仓位管理 - 全部或部分平仓

  • 订单管理 - 取消挂单

市场数据与分析

  • 历史数据 - OHLCV K 线(9 个时间周期:M1, M5, M15, M30, H1, H4, D1, W1, MN1)

  • 技术指标 - RSI, MACD, EMA, SMA, 布林带, ATR, 随机指标

  • 实时报价 - 订阅实时价格推送

  • 品种搜索 - 浏览 100 多种交易品种

账户信息

  • 账户状态 - 余额、净值、保证金、可用保证金

  • 仓位追踪 - 所有持仓及其盈亏 (P&L)

  • 订单追踪 - 所有挂单

  • 盈亏分析 - 详细的盈亏明细

🎯 可用工具(共 14 个)

工具

描述

get_account_status

查看余额、净值、保证金和盈亏

get_positions

列出所有持仓及其详情

get_pending_orders

显示所有挂单(限价/止损单)

get_position_pnl

获取详细的盈亏明细

create_market_order

以当前市价执行交易

create_limit_order

在特定价格下单

create_stop_order

下止损或止损入场订单

close_position

全部或部分平仓

cancel_order

取消挂单

list_symbols

浏览可用的交易品种

get_historical_data

获取 OHLCV K 线数据

get_indicator

计算技术指标

subscribe_to_ticks

订阅实时价格更新

unsubscribe_from_ticks

取消订阅价格更新

📋 前置要求

  • Python 3.10 或更高版本

  • cTrader 账户(模拟或实盘)

  • cTrader API 凭据

🔧 安装

1. 获取 cTrader API 凭据

  1. 访问 https://help.ctrader.com/open-api/creating-new-app/

  2. 创建一个应用程序以获取:

    • CLIENT_ID

    • CLIENT_SECRET

  3. 生成访问令牌:

    • ACCESS_TOKEN

  4. 在 cTrader 中查找您的账户 ID:

    • ACCOUNT_ID

2. 安装服务器

# Clone or download this repository
cd ctrader-mcp-server

# Run installation script
./install.sh

3. 配置凭据

在项目根目录下创建一个 .env 文件:

CLIENT_ID=your_client_id_here
CLIENT_SECRET=your_client_secret_here
ACCESS_TOKEN=your_access_token_here
ACCOUNT_ID=your_account_id_here
HOST=demo

重要: 测试时请使用 HOST=demo

4. 测试服务器

# Activate virtual environment
source venv/bin/activate

# Run tests
python test_server.py

你应该看到:

✓ Bot initialized and authenticated
✓ Account status retrieved
✓ Found X EUR symbols
...
All Tests Completed Successfully! ✓

🤖 配置 AI 助手

Claude Desktop

  1. 找到你的配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

  2. 添加此配置:

{
  "mcpServers": {
    "ctrader": {
      "command": "/absolute/path/to/ctrader-mcp-server/venv/bin/python",
      "args": [
        "/absolute/path/to/ctrader-mcp-server/server.py"
      ],
      "cwd": "/absolute/path/to/ctrader-mcp-server"
    }
  }
}
  1. 重启 Claude Desktop

其他 MCP 客户端

此服务器实现了标准的 MCP 协议,应可与任何兼容 MCP 的客户端配合使用。

💬 对话示例

配置完成后,你可以自然地进行交互:

检查账户:

你: “我的 cTrader 账户里有多少钱?”

AI: “你的账户余额为 10,000 美元,净值为 10,250 美元,有 3 个持仓,总盈亏为 +250 美元。”

下单交易:

你: “买入 0.01 手 EURUSD,止损设为 1.08,止盈设为 1.10”

AI: “订单已执行!以 1.09245 的价格买入 0.01 手 EURUSD,止损设为 1.08000,止盈设为 1.10000。”

分析市场:

你: “计算 15 分钟图表上 GBPUSD 的 RSI”

AI: “M15 周期上 GBPUSD 的 RSI(14) 目前为 65.3,表明该货币对正接近超买区域。”

管理风险:

你: “平掉所有亏损超过 50 美元的仓位”

AI: “发现 1 个亏损超过 50 美元的仓位。已平掉 GBPUSD 仓位(亏损:-$62.50)。”

📚 文档

🔐 安全与保障

模拟交易 vs 实盘交易

  • 默认配置使用 模拟账户

  • 实盘交易请在 .env 中显式设置 HOST=live

  • 在进行实盘交易前,请务必在模拟账户上进行充分测试

风险管理

  • 所有订单均支持止损和止盈

  • 仓位平仓可以是部分或全部

  • 交易量以手为单位(0.01 = 微型手)

凭据安全

  • 凭据存储在 .env 文件中(切勿提交到版本控制)

  • 环境变量绝不会在日志中泄露

  • 操作前会验证身份验证状态

🚨 重要警告

⚠️ 交易涉及重大风险。你可能会亏损资金。 ⚠️ 请务必先在模拟账户上进行测试 ⚠️ 实盘交易时请从小仓位开始 ⚠️ 使用止损来限制风险 ⚠️ 切勿分享你的凭据或访问令牌

🛠️ 开发

项目结构

ctrader-mcp-server/
├── server.py              # Main MCP server
├── ctrader_bot.py         # cTrader API wrapper
├── test_server.py         # Testing tool
├── install.sh             # Installation script
├── requirements.txt       # Python dependencies
├── .env.example           # Environment template
├── README.md              # This file
└── docs/                  # Documentation
    ├── QUICKSTART.md
    ├── GUIDE.md
    ├── ARCHITECTURE.md
    ├── CONFIGURATION.md
    └── API.md

运行测试

# Basic functionality test
python test_server.py

# Run with specific account
ACCOUNT_ID=12345 python test_server.py

# Test with live account (careful!)
HOST=live python test_server.py

添加新工具

要添加新工具:

  1. server.pyhandle_list_tools() 中添加工具定义

  2. _execute_tool() 中实现处理程序

  3. 如有必要,在 ctrader_bot.py 中添加相应方法

  4. 更新文档

📊 性能

  • 启动时间: 5-10 秒(身份验证 + 品种加载)

  • 订单执行: <100ms(市价单)

  • 历史数据: 1-5 秒(100 根 K 线)

  • 指标计算: <1 秒

  • 内存占用: ~50-100 MB

🌐 速率限制

cTrader API 强制执行:

  • 50 次请求/秒(交易操作)

  • 5 次请求/秒(历史数据)

服务器会自动遵守这些限制。

🐛 故障排除

“Bot not ready” 错误

  • 检查 .env 文件中的凭据

  • 验证互联网连接

  • 确保 cTrader 账户处于活跃状态

  • 检查服务器日志以查看身份验证错误

找不到品种

  • 使用 list_symbols 工具查看可用品种

  • 品种名称区分大小写

  • 不同经纪商可能有不同的品种名称

订单被拒绝

  • 检查账户余额和保证金

  • 验证品种是否可交易

  • 确保交易量满足最低要求

  • 检查市场是否开放

连接问题

  • 验证 API 凭据是否正确

  • 检查账户是否活跃

  • 确保没有防火墙阻止 5035 (模拟) 或 5034 (实盘) 端口

🔗 资源

📄 许可证

MIT 许可证 - 详情请参阅 LICENSE 文件

⚖️ 免责声明

本软件按“原样”提供,不提供任何形式的保证。交易涉及重大风险,你可能会亏损资金。使用风险自负。在进行实盘交易前,请务必在模拟账户上进行测试。

🤝 贡献

欢迎贡献!请:

  1. Fork 本仓库

  2. 创建功能分支

  3. 进行更改

  4. 如适用,添加测试

  5. 提交 Pull Request

📧 支持


为算法交易者倾心打造

准备好开始了吗? 运行 ./install.sh 并按照上述说明操作!

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol (MCP) server for the Hyperliquid decentralized exchange, enabling AI assistants to perform trading operations, manage accounts, and retrieve market data.
    307 PyPI
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that integrates AI assistants with the 3Commas cryptocurrency trading platform API, enabling management of DCA bots and trading strategies through natural conversation.
    12
    3
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    An MCP server that lets an AI agent read your MetaTrader 5 account and place trades over the Model Context Protocol, with a configurable human approval gate.
    15
    38 PyPI
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides AI assistants like Claude with direct access to MetaAPI trading platform. Trade forex, stocks, and commodities through natural language conversations.
    1
    -