MetaTrader 5 / Библиотеки

MT5 to Telegram - Professional Trading Notifications Library - библиотека для MetaTrader 5

523
(6)

Профессиональная библиотека интеграции Telegram Bot для MetaTrader 5. Полное решение для отправки торговых сигналов, скриншотов, отчетов и уведомлений в реальном времени в каналы и группы Telegram.

Основные возможности

  • 📨 Уведомления о торговле в реальном времени - Мгновенные алерты об открытии/закрытии/модификации позиций
  • 📸 Скриншоты графиков - Автоматический захват графиков с аннотациями
  • 📊 Отчеты по счету - Ежедневные, еженедельные и ежемесячные отчеты о производительности
  • ⚠️ Алерты управления рисками - Предупреждения о просадке, уровне маржи и stop-out
  • 🔄 Система очереди сообщений - Надежная доставка с механизмом повторных попыток
  • 👥 Поддержка нескольких каналов - Рассылка в несколько чатов/каналов Telegram
  • 📝 Система шаблонов - Настраиваемые шаблоны сообщений
  • 🎯 Умное ограничение скорости - Предотвращение блокировки API

Требования

  • MetaTrader 5 версии 2375 или выше
  • Токен Telegram Bot (получить у @BotFather)
  • ID чата или канала
  • Интернет-соединение

Установка

Шаг 1: Создание Telegram бота

  1. Откройте Telegram и найдите @BotFather
  2. Отправьте команду /newbot
  3. Выберите имя для вашего бота
  4. Выберите username (должен заканчиваться на 'bot')
  5. Сохраните токен, предоставленный BotFather

Шаг 2: Получение Chat ID

  1. Добавьте бота в группу/канал или начните приватный чат
  2. Отправьте любое сообщение боту
  3. Перейдите по ссылке: https://api.telegram.org/bot<ВАШ_ТОКЕН>/getUpdates
  4. Найдите chat ID в ответе

Шаг 3: Настройка MT5

  1. Откройте MT5 → Сервис → Настройки → Советники
  2. Поставьте галочку "Разрешить WebRequest для следующих URL"
  3. Добавьте URL: https://api.telegram.org
  4. Нажмите OK

Шаг 4: Установка файлов

  1. Скопируйте TelegramBot.mqh в папку MQL5/Include/
  2. Скопируйте TelegramBot_Example.mq5 в папку MQL5/Experts/
  3. Скомпилируйте оба файла

Быстрый старт

#include <TelegramBot.mqh> CTelegramBot bot; int OnInit() {     // Инициализация бота     if(!bot.Initialize("ВАШ_ТОКЕН", "ВАШ_CHAT_ID"))     {         Print("Не удалось инициализировать бота");         return INIT_FAILED;     }          // Отправка тестового сообщения     bot.SendMessage("Бот успешно подключен!");          // Отправка скриншота графика     bot.SendChartScreenshot("Текущая ситуация на рынке");          return INIT_SUCCEEDED; }

Справочник API

Базовые сообщения

bool SendMessage(string text); bool SendHTMLMessage(string text); bool SendMarkdownMessage(string text); bool SendMessageToAll(string text);

Торговые сигналы

bool SendTradeSignal(ENUM_SIGNAL_TYPE type, string symbol, double price); bool SendPositionOpened(ulong ticket, string symbol, ENUM_POSITION_TYPE type, double volume, double price); bool SendPositionClosed(ulong ticket, string symbol, double profit, double commission, double swap);

Медиафайлы

bool SendPhoto(string file_path, string caption); bool SendDocument(string file_path, string caption); bool SendChartScreenshot(); bool SendChartScreenshot(string caption);

Отчеты

bool SendAccountStatus(); bool SendDailyReport(); bool SendWeeklyReport(); bool SendMonthlyReport();

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

bool SendRiskAlert(double drawdown_percent); bool SendMarginWarning(double margin_level); bool SendStopOutWarning();

Пример советника

В пакет включен полнофункциональный пример советника, демонстрирующий:

  • Мониторинг позиций с уведомлениями
  • Автоматические скриншоты при торговых событиях
  • Периодические обновления статуса счета
  • Алерты управления рисками
  • Ежедневные отчеты
  • Демо торговые сигналы

Форматирование сообщений

HTML формат (рекомендуется)

string message = "<b>Жирный текст</b>\n"; message += "<i>Курсив</i>\n"; message += "<code>Моноширинный код</code>\n"; message += "<a href='http://example.com'>Ссылка</a>"; bot.SendHTMLMessage(message);

Markdown формат

string message = "*Жирный текст*\n"; message += "_Курсив_\n"; message += "`Моноширинный код`\n"; message += "[Ссылка](http://example.com)"; bot.SendMarkdownMessage(message);

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

  • Скорость сообщений: До 30 сообщений в минуту
  • Лимит размера файла: 50МБ на файл
  • Длина сообщения: 4096 символов
  • Длина подписи: 1024 символа
  • Размер очереди: 100 сообщений
  • Среднее время отклика: 50-200мс

Обработка ошибок

Библиотека включает комплексную обработку ошибок:

  • Проверка соединения
  • Защита от превышения лимитов
  • Автоматические повторные попытки при сбое
  • Система очереди для неудачных сообщений
  • Детальное логирование ошибок

Поддержка

  • Документация: Полная документация API включена в исходный код
  • Пример советника: Рабочий пример со всеми функциями
  • Режим отладки: Встроенная отладка для устранения неполадок

История версий

Версия 1.0.0 (2024)

  • Первый релиз
  • Полная интеграция Telegram Bot API
  • Поддержка нескольких каналов
  • Система очереди
  • Движок шаблонов
  • Алерты управления рисками

Лицензия

Эта библиотека предоставляется "как есть" для использования в MetaTrader 5. Бесплатна для личного и коммерческого использования.

Автор

Forex Trading Blueprint
(Stepan Sinic)

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

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


Если вы находите эту библиотеку полезной, пожалуйста, оцените её на MQL5 CodeBase!

Подробная инструкция по настройке

Создание бота в Telegram

  1. Найдите BotFather

    • Откройте Telegram
    • В поиске введите @BotFather
    • Нажмите START
  2. Создайте нового бота

    • Отправьте команду /newbot
    • Введите имя бота (например: "Мой торговый бот")
    • Введите username бота (например: my_trading_bot)
    • Сохраните токен вида: 123456789:ABCdefGHIjklMNOpqrsTUVwxyz
  3. Настройте бота

    • Отправьте /setprivacy и выберите DISABLE (для работы в группах)
    • Отправьте /setjoingroups и выберите ENABLE (для добавления в группы)

Получение Chat ID

Для личных сообщений:

  1. Начните диалог с вашим ботом
  2. Отправьте любое сообщение
  3. Откройте в браузере: https://api.telegram.org/bot<ТОКЕН>/getUpdates
  4. Найдите "chat":{"id":123456789} - это ваш Chat ID

Для группы:

  1. Добавьте бота в группу
  2. Отправьте сообщение в группе
  3. Откройте в браузере: https://api.telegram.org/bot<ТОКЕН>/getUpdates
  4. Найдите "chat":{"id":-123456789} - отрицательное число для групп

Для канала:

  1. Добавьте бота как администратора канала
  2. Отправьте сообщение в канал
  3. Или используйте @username канала в качестве Chat ID

Решение частых проблем

Ошибка WebRequest:

Решение: 1. Сервис → Настройки → Советники 2. ✓ Разрешить WebRequest для следующих URL 3. Добавить: https://api.telegram.org 4. Перезапустить MT5

Бот не отвечает:

Проверьте: 1. Правильность токена 2. Правильность Chat ID 3. Интернет-соединение 4. Настройки WebRequest

Сообщения не доходят:

Возможные причины: 1. Превышен лимит API (30 сообщений/минуту) 2. Неверный формат HTML в сообщении 3. Слишком длинное сообщение (>4096 символов)

Примеры использования

Отправка сигнала на покупку

bot.SendTradeSignal(SIGNAL_BUY, "EURUSD", 1.1850, 1.1800, 1.1900);

Отправка скриншота с аннотацией

string caption = "<b>Точка входа</b>\n"; caption += "Пара: EURUSD\n"; caption += "Тип: BUY\n"; caption += "Цена: 1.1850"; bot.SendChartScreenshot(caption);

Отправка статуса счета

bot.SendAccountStatus(); // Автоматически отправит баланс, эквити, маржу и т.д.

Настройка ежедневных отчетов

// В OnTimer() советника if(TimeHour(TimeCurrent()) == 23 && TimeMinute(TimeCurrent()) == 0) {     bot.SendDailyReport(); }

Алерт о просадке

double drawdown = CalculateDrawdown(); // Ваша функция расчета if(drawdown > 20.0) // Просадка больше 20% {     bot.SendRiskAlert(drawdown); }

Структура сообщений

Позиция открыта

[POSITION OPENED] ↑ ================ Ticket: #12345678 Symbol: EURUSD Type: BUY Volume: 0.10 Price: 1.18500 Time: 2024.01.15 10:30 ================

Позиция закрыта

[POSITION CLOSED] ================ Ticket: #12345678 Symbol: EURUSD Profit: +125.50 USD Commission: -2.00 Swap: -0.50 Total: +123.00 USD Time: 2024.01.15 14:45 ================

Ежедневный отчет

[DAILY REPORT] ================ Date: 2024.01.15 ACCOUNT SUMMARY ---------------- Balance: 10,125.50 USD Equity: 10,250.00 USD Floating P/L: +124.50 USD TRADING ACTIVITY ---------------- Trades Today: 5 Today's Result: +250.00 USD Open Positions: 2 BOT STATISTICS ---------------- Messages Sent: 45 Signals Sent: 8 Success Rate: 98.5% ================