Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 183
- Рейтинг:
- Опубликован:
- Обновлен:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Профессиональная библиотека интеграции 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% ================

Индикатор Perfect Seconds позволяет конвертировать минутные свечи живых данных в секунды. 1. Выберите любое количество секунд для закрытия бара с точным временем. 2. Это живые данные, основанные на тарифах OHLC, он работает, даже если тики недоступны. 3. Не требует внешних DLL, работает на VPS 4. Быстрый и оптимизированный код 5. Поддерживает криптовалютные пары, такие как BInance, Kucoin и все другие биржи, где живой график фьючерсов может быть легко преобразован в секунды. 6. Поддержка всех типов символов, таких как золото и пары Forex. 7. Возможность удаления символов и курсов.

Синхронизированный пользовательский индикатор перекрестия, показывающий цену и (серверное/местное) время.

Этот инструмент рассчитает приемлемый размер лота на основе расстояния до стоп-лосса и процента риска.

Этот код показывает, как можно создать приборную панель для отображения всей необходимой информации на графике