Блог им. UHSF

Как отправлять сообщения в Telegram из робота OsEngine

    • 17 февраля 2024, 17:58
    • |
    • UHSF
  • Еще


Бывает нужно получать от торгующего робота какие-то уведомления – это могут быть уведомления об открытии позиций, закрытии, каком-то сбое и тд.

 

Так вот, сегодня рассмотрим способ отправки сообщений в один из популярных мессенджеров Телеграм.

 

Как отправлять сообщения в Telegram из робота OsEngine


Инструкция состоит из 3-х пунктов:

1. Создание бота в Telegram для приема сообщений

2. Отправка сообщений на примере бесплатного робота OsEngine

3. Обзор кода робота

 


1. Создание бота в
Telegram  для приема сообщений

Нам будет нужен бот в самом мессенджере Телеграм. Для его создания используем BotFather (https://t.me/BotFather) – это официальный бот мессенджера, который позволяет создавать ботов и управлять ими. Открываем его и начинаем с ним чат (команда “/start” или Запустить):

Как отправлять сообщения в Telegram из робота OsEngine

BotFather отвечает списком команд, нам нужна команда – “/newbot” – вводим ее. В ответ предлагается выбрать имя нашему новому боту – придумываем и вводим, например, “newOSAbot”.
Далее предлагается выбрать имя пользователя, оканчивающееся на “bot” – делаем его, просто приписав в конец то, что нужно — “newOSAbot_bot”.

 

Вот так в итоге выглядит диалог создания бота:

Как отправлять сообщения в Telegram из робота OsEngine

BotFather сообщил нам об успешном создании бота и выдал Токен, который нужно куда-то сохранить – он нам будет нужен для работы.

При необходимости, созданных в BotFather ботов можно настраивать – добавлять описание, команды, устанавливать аватар и прочее.

 

Далее нам нужно узнать свой Telegram ID. Для этого можно использовать вот этого бота — https://t.me/userinfobot

Запускаем бота, и он выдает нам в ответ ID, сохраняем его рядом с Токеном.
Вот как это выглядит:

Как отправлять сообщения в Telegram из робота OsEngine

Давайте теперь проверим нашего вновь созданного бота — вводим в поиске Телеграм имя бота (newOSAbot_bot) и запускаем его. Проверить отправку ему сообщений можно в браузере – для этого в адрес («api.telegram.org/bot + Token + /sendMessage?chat_id= + ID + &text=Hello!») надо вставить наши Токен и ID:

Как отправлять сообщения в Telegram из робота OsEngine

Если все правильно, то в чат с ботом придет приветственное сообщение:

Как отправлять сообщения в Telegram из робота OsEngine
Впоследствии все уведомления от робота OsEngine будут приходить сюда же.



2. Отправка сообщений на примере бесплатного робота
OsEngine

Нам нужен робот-пример отправки сообщений в Телеграм, называется он TelegramSample.cs

Как отправлять сообщения в Telegram из робота OsEngine

Запускаем OsEngine, добавляем данного робота. Настройки уведомлений находятся во вкладке Параметров Telegram settings – там вводим ранее полученные Токен и ID в соответствующие поля:

Как отправлять сообщения в Telegram из робота OsEngine

Включаем режим “On” не забываем. Так же на вкладке Trade settings надо тоже включить и настроить индикатор там еще можно и рабочий объем.

 

Робот не для боевой торговли, а для демонстрации работы с уведомлениями в Телеграм, его торговая стратегия простейшая — индикатор Price Channel, вход в лонг при пробое верхней границы канала, выход при пробое нижней…

 

Уведомления в роботе сделана на: а) открытие позиции; б) закрытие позиции; в) потерю соединения с сервером.
Уведомление о потере соединения работает только в OsTrader (в боевом режиме). Поэтому в Тестере мы сейчас проверим уведомления о сделках.

В уведомлениях текст события, в скобках название робота, цена входа/выхода.

 

Настроили все, запустили тест (без ускорения, а то спамить уведомлениями будет) — уведомления есть:

Как отправлять сообщения в Telegram из робота OsEngine




3. Обзор кода робота

За отправку уведомлений в Телеграм отвечает асинхронный метод SendTelegramMessageAsync(string message), принимает, соответственно, сообщение, которое нужно отправить:

Как отправлять сообщения в Telegram из робота OsEngine

В методе некоторые проверки что введены ID и Токен и правильности ввода.

 

Метод для открытия и закрытия позиций вызывается в обработчиках успешного открытия и закрытия позиции. В обработчиках собираем нужную нам строку и передаем в метод:

Как отправлять сообщения в Telegram из робота OsEngine

Проверка соединения с сервером реализована в методе CheckConnect():

Как отправлять сообщения в Telegram из робота OsEngine

В методе крутится бесконечный цикл while с периодичностью 10 секунд, проверяется статус сервера. Когда соединение обрывается – приходит уведомление об этом.
Метод запускается в отдельном потоке из Конструктора в том случае, если робот запущен в боевом соединении (OsTrader):

Как отправлять сообщения в Telegram из робота OsEngine

Спасибо за внимание! Прибыльных алгоритмов и всего доброго!

 

Ссылка на робота на GitHub: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/TelegramSample.cs

7.1К | ★19
4 комментария
спасибо, поюзаем, посмотрим
avatar
Спасибо тебе огромное за такой пример.

Десятки людей будут использовать. От всех выражаю признательность!
Робот может такие картинки присылать?

avatar
Mathman, хехе в следующей версии надо обязательно сделать.
Или вот — человек, позиция в прибыли, надо обмыть.

avatar

Читайте на SMART-LAB:
Технологии как новый драйвер: ключевые идеи инвестиционного форума ВТБ «РОССИЯ ЗОВЕТ!»
🧮 Главный тренд 2026 года — стабилизация и технологический поворот Руководитель департамента по работе с клиентами рыночных отраслей...
ВТБ обещал миноритариям обойтись без допэмиссии
Акции ВТБ в ходе торгов 20 февраля, проходивших на российском рынке в умеренном плюсе, вышли в лидеры роста, подорожав на 3,4%, до 88,42...
Фото
ПКО «Вернём». Зачем облигации при масштабировании бизнеса?
В эфире PRObonds генеральный директор ПКО «Вернём» Павел Ивановский и финансовый директор Роман Гаммель. С ответами на вопросы о новом...
Фото
Россети Центр. Отчет об исполнении инвестпрограммы за Q4 2025г. Ожидаемо снизилась дивидендная база по РСБУ.
Компания Россети Центр опубликовала отчет об исполнении инвестпрограммы за Q4 2025г., где показаны финансовые показатели компании по РСБУ в...

теги блога UHSF

....все тэги



UPDONW
Новый дизайн