Skip to main content
Glama
akinabudu

ctrader-mcp-server

by akinabudu

cTrader MCP Server

Автономный сервер протокола контекста модели (MCP), позволяющий ИИ-ассистентам взаимодействовать с торговой платформой cTrader.

🚀 Что это такое?

Этот MCP-сервер позволяет ИИ-ассистентам, таким как Claude, совершать сделки, анализировать рынки и управлять позициями в cTrader с помощью общения на естественном языке.

Примеры диалогов:

  • "Покажи баланс моего счета" → Получает баланс, средства, позиции

  • "Купи 0.01 лота EURUSD со стопом на 1.08" → Открывает сделку

  • "Рассчитай RSI для GBPUSD" → Анализирует технические индикаторы

  • "Закрой все убыточные позиции" → Управляет рисками

Related MCP server: 3commas-mcp

✨ Функции

Торговые операции

  • Рыночные ордера - Исполнение немедленно по текущей цене

  • Лимитные ордера - Ордер по конкретному ценовому уровню

  • Стоп-ордера - Стоп-лосс или стоп-вход ордера

  • Управление позициями - Полное или частичное закрытие позиций

  • Управление ордерами - Отмена отложенных ордеров

Рыночные данные и анализ

  • Исторические данные - Свечи OHLCV (9 таймфреймов: M1, M5, M15, M30, H1, H4, D1, W1, MN1)

  • Технические индикаторы - RSI, MACD, EMA, SMA, Полосы Боллинджера, ATR, Stochastic

  • Тики в реальном времени - Подписка на потоки цен в реальном времени

  • Поиск символов - Просмотр более 100 торговых инструментов

Информация об аккаунте

  • Статус счета - Баланс, средства, маржа, свободная маржа

  • Отслеживание позиций - Все открытые позиции с P&L

  • Отслеживание ордеров - Все отложенные ордера

  • Анализ P&L - Детальная разбивка прибыли/убытка

🎯 Доступные инструменты (всего 14)

Инструмент

Описание

get_account_status

Просмотр баланса, средств, маржи и P&L

get_positions

Список всех открытых позиций с деталями

get_pending_orders

Показать все отложенные лимитные/стоп-ордера

get_position_pnl

Получить детальную разбивку P&L

create_market_order

Исполнить сделку по текущей рыночной цене

create_limit_order

Разместить ордер по конкретной цене

create_stop_order

Разместить стоп-лосс или стоп-вход ордер

close_position

Закрыть позицию полностью или частично

cancel_order

Отменить отложенный ордер

list_symbols

Просмотр доступных торговых инструментов

get_historical_data

Получить данные свечей OHLCV

get_indicator

Рассчитать технические индикаторы

subscribe_to_ticks

Подписаться на обновления цен в реальном времени

unsubscribe_from_ticks

Отписаться от обновлений цен

📋 Предварительные требования

  • Python 3.10 или выше

  • Аккаунт cTrader (демо или реальный)

  • API-учетные данные cTrader

🔧 Установка

1. Получение API-учетных данных cTrader

  1. Посетите https://help.ctrader.com/open-api/creating-new-app/

  2. Создайте приложение, чтобы получить:

    • CLIENT_ID

    • CLIENT_SECRET

  3. Сгенерируйте токен доступа:

    • ACCESS_TOKEN

  4. Найдите ID своего счета в cTrader:

    • 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! ✓

🤖 Настройка ИИ-ассистента

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?"

ИИ: "На вашем счете баланс $10,000, средства $10,250, открыто 3 позиции с общим P&L +$250."

Открытие сделки:

Вы: "Купи 0.01 лота EURUSD со стоп-лоссом на 1.08 и тейк-профитом на 1.10"

ИИ: "Ордер исполнен! Куплено 0.01 лота EURUSD по цене 1.09245 со стоп-лоссом 1.08000 и тейк-профитом 1.10000."

Анализ рынка:

Вы: "Рассчитай RSI для GBPUSD на 15-минутном графике"

ИИ: "RSI(14) для GBPUSD на M15 сейчас составляет 65.3, что указывает на приближение пары к зоне перекупленности."

Управление рисками:

Вы: "Закрой все позиции, убыток по которым превышает $50"

ИИ: "Найдена 1 позиция с убытком более $50. Закрыта позиция по GBPUSD (убыток: -$62.50)."

📚 Документация

🔐 Безопасность

Демо против реальной торговли

  • Конфигурация по умолчанию использует демо-счета

  • Явно установите HOST=live в .env для реальной торговли

  • Всегда тщательно тестируйте на демо перед переходом на реальный счет

Управление рисками

  • Все ордера поддерживают стоп-лосс и тейк-профит

  • Закрытие позиций может быть частичным или полным

  • Объем указывается в лотах (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.py в handle_list_tools()

  2. Реализуйте обработчик в _execute_tool()

  3. Добавьте соответствующий метод в ctrader_bot.py, если нужно

  4. Обновите документацию

📊 Производительность

  • Время запуска: 5-10 секунд (аутентификация + загрузка символов)

  • Исполнение ордера: <100 мс (рыночные ордера)

  • Исторические данные: 1-5 секунд (100 свечей)

  • Расчет индикатора: <1 секунды

  • Использование памяти: ~50-100 МБ

🌐 Ограничения частоты запросов

cTrader API ограничивает:

  • 50 запросов/секунду для торговых операций

  • 5 запросов/секунду для исторических данных

Сервер автоматически соблюдает эти ограничения.

🐛 Устранение неполадок

Ошибки "Bot not ready"

  • Проверьте учетные данные в файле .env

  • Проверьте интернет-соединение

  • Убедитесь, что аккаунт cTrader активен

  • Проверьте логи сервера на наличие ошибок аутентификации

Символ не найден

  • Используйте инструмент list_symbols, чтобы увидеть доступные символы

  • Имена символов чувствительны к регистру

  • У разных брокеров могут быть разные названия символов

Ордер отклонен

  • Проверьте баланс счета и маржу

  • Убедитесь, что символ доступен для торговли

  • Убедитесь, что объем соответствует минимальным требованиям

  • Проверьте, открыт ли рынок

Проблемы с подключением

  • Проверьте правильность API-учетных данных

  • Проверьте, активен ли аккаунт

  • Убедитесь, что брандмауэр не блокирует порт 5035 (демо) или 5034 (реальный)

🔗 Ресурсы

📄 Лицензия

Лицензия MIT - подробности см. в файле LICENSE

⚖️ Отказ от ответственности

Это программное обеспечение предоставляется "как есть" без каких-либо гарантий. Торговля сопряжена со значительным риском, и вы можете потерять деньги. Используйте на свой страх и риск. Всегда тестируйте на демо-счетах перед реальной торговлей.

🤝 Участие в разработке

Вклад приветствуется! Пожалуйста:

  1. Сделайте форк репозитория

  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
    -