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

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

247
(12)

Ключевые особенности

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

Требования

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

Установка

Шаг 1: Создайте Telegram-бота

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

Шаг 2: Получите идентификатор чата

  1. Добавьте бота в группу/канал или начните приватный чат
  2. Отправьте боту любое сообщение
  3. Зайдите на сайт: https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
  4. Найдите 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("YOUR_TOKEN", "YOUR_CHAT_ID"))     {         Print("Failed to initialize bot");         return INIT_FAILED;     }          // Отправьте тестовое сообщение     bot.SendMessage("Bot connected successfully!");          // Отправить скриншот графика     bot.SendChartScreenshot("Current market situation");          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> Bold text</b>\n"; message += "<i> Italic text</i>\n"; message += "<code> Fixed-width code</code>\n"; message += "<a href='http://example.com'> Link</a>"; bot.SendHTMLMessage(message);

Формат Markdown

string message = "*Bold text*\n"; message += "_Italic text_\n"; message += "`Fixed-width code`\n"; message += "[Link](http://example.com)"; bot.SendMarkdownMessage(message);

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

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

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

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

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

Поддержка

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

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

Версия 1.0.0 (2024)

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

Лицензия

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

Автор

Financial Blueprint
Профессиональные торговые решения

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

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


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

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

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

  1. Найдите BotFather

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

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

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

Получение идентификатора чата

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

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

Для групп:

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

Для каналов:

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

Устранение распространенных проблем

Ошибка WebRequest:

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

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

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

Сообщения не доставляются:

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

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

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

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

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

string caption = "<b> Entry Point</b>\n"; caption += "Pair: EURUSD\n"; caption += "Type: BUY\n"; caption += "Price: 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% ================


Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/63587