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" → Анализирует технические индикаторы

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

✨ Функции

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

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

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

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

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

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

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

  • Исторические данные - Свечи 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 и следуйте инструкциям выше!

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/akinabudu/ctrader-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server