Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

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

Просмотров:
358
Рейтинг:
(12)
Опубликован:
\MQL5\Include\ \MQL5\Experts\
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

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

  • 📨 Торговые уведомления в реальном времени - Мгновенные оповещения об открытии/закрытии/изменении позиции
  • 📸 Скриншоты графиков - Автоматические снимки графиков с аннотациями
  • 📊 Отчеты по счету - Ежедневные, еженедельные и ежемесячные отчеты о результатах работы
  • ⚠️ Оповещения о риск-менеджменте - предупреждения о просадке, уровне маржи и стоп-ауте
  • 🔄 Система очередей сообщений - надежная доставка с механизмом повторных попыток
  • 👥 Поддержка нескольких каналов - трансляция в несколько чатов/каналов 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

Arbitrage Triangle EURGBP-EURUSD-GBPUSD Arbitrage Triangle EURGBP-EURUSD-GBPUSD

Советник выявляет расхождения между теоретическими и фактическими курсами валют, чтобы реализовать торговые возможности с минимальным риском.

Martingale Pulse EA Martingale Pulse EA

Представляем MP by SPLpulse, сложный и универсальный советник, созданный для современного трейдера. Независимо от того, являетесь ли вы скальпером, последователем тренда или разворотным трейдером, MP by SPLpulse сочетает в себе множество торговых стратегий и пакет управления рисками институционального уровня, чтобы адаптироваться к вашему уникальному стилю торговли. Возьмите под контроль свою торговлю благодаря беспрецедентной настройке и мощной автоматизации.

The RSI Engine The RSI Engine

Советник RSI Engine - это универсальный автоматический торговый робот для MetaTrader 5, предназначенный для совершения сделок по сигналам популярного индикатора Relative Strength Index (RSI). В версии 2.1 оптимизирована обработка сигналов и повышена стабильность работы. Советник имеет гибкую структуру с несколькими стратегиями на основе RSI, фильтрами подтверждения и комплексными настройками управления сделками, что делает его подходящим как для новичков, так и для опытных трейдеров.

Find Swing Highs  Swing Lows Find Swing Highs Swing Lows

Swing High/Low Identifier для MetaTrader 5 отмечает значимые максимумы и минимумы свингов прямо на вашем графике с помощью цветных стрелок. Этот инструмент помогает трейдерам быстро определить ключевые ценовые уровни, которые могут служить сопротивлением и поддержкой, и идеально подходит для анализа разворота тренда, составления карты поддержки и сопротивления, а также для совершенствования стратегий ценового действия. Выделяя эти важнейшие точки колебаний, он предоставляет ценные сведения для принятия обоснованных торговых решений и оптимизации торговых стратегий.