MT5 to Telegram - Professional Trading Notifications Library - библиотека для MetaTrader 5
Профессиональная библиотека интеграции Telegram Bot для MetaTrader 5. Полное решение для отправки торговых сигналов, скриншотов, отчетов и уведомлений в реальном времени в каналы и группы Telegram.
Основные возможности
- 📨 Уведомления о торговле в реальном времени - Мгновенные алерты об открытии/закрытии/модификации позиций
- 📸 Скриншоты графиков - Автоматический захват графиков с аннотациями
- 📊 Отчеты по счету - Ежедневные, еженедельные и ежемесячные отчеты о производительности
- ⚠️ Алерты управления рисками - Предупреждения о просадке, уровне маржи и stop-out
- 🔄 Система очереди сообщений - Надежная доставка с механизмом повторных попыток
- 👥 Поддержка нескольких каналов - Рассылка в несколько чатов/каналов Telegram
- 📝 Система шаблонов - Настраиваемые шаблоны сообщений
- 🎯 Умное ограничение скорости - Предотвращение блокировки API
Требования
- MetaTrader 5 версии 2375 или выше
- Токен Telegram Bot (получить у @BotFather)
- ID чата или канала
- Интернет-соединение
Установка
Шаг 1: Создание Telegram бота
- Откройте Telegram и найдите @BotFather
- Отправьте команду /newbot
- Выберите имя для вашего бота
- Выберите username (должен заканчиваться на 'bot')
- Сохраните токен, предоставленный BotFather
Шаг 2: Получение Chat ID
- Добавьте бота в группу/канал или начните приватный чат
- Отправьте любое сообщение боту
- Перейдите по ссылке: https://api.telegram.org/bot<ВАШ_ТОКЕН>/getUpdates
- Найдите chat ID в ответе
Шаг 3: Настройка MT5
- Откройте MT5 → Сервис → Настройки → Советники
- Поставьте галочку "Разрешить WebRequest для следующих URL"
- Добавьте URL: https://api.telegram.org
- Нажмите OK
Шаг 4: Установка файлов
- Скопируйте TelegramBot.mqh в папку MQL5/Include/
- Скопируйте TelegramBot_Example.mq5 в папку MQL5/Experts/
- Скомпилируйте оба файла
Быстрый старт
#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
-
Найдите BotFather
- Откройте Telegram
- В поиске введите @BotFather
- Нажмите START
-
Создайте нового бота
- Отправьте команду /newbot
- Введите имя бота (например: "Мой торговый бот")
- Введите username бота (например: my_trading_bot)
- Сохраните токен вида: 123456789:ABCdefGHIjklMNOpqrsTUVwxyz
-
Настройте бота
- Отправьте /setprivacy и выберите DISABLE (для работы в группах)
- Отправьте /setjoingroups и выберите ENABLE (для добавления в группы)
Получение Chat ID
Для личных сообщений:
- Начните диалог с вашим ботом
- Отправьте любое сообщение
- Откройте в браузере: https://api.telegram.org/bot<ТОКЕН>/getUpdates
- Найдите "chat":{"id":123456789} - это ваш Chat ID
Для группы:
- Добавьте бота в группу
- Отправьте сообщение в группе
- Откройте в браузере: https://api.telegram.org/bot<ТОКЕН>/getUpdates
- Найдите "chat":{"id":-123456789} - отрицательное число для групп
Для канала:
- Добавьте бота как администратора канала
- Отправьте сообщение в канал
- Или используйте @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% ================