Блог им. 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.3К | ★19
4 комментария
спасибо, поюзаем, посмотрим
avatar
Спасибо тебе огромное за такой пример.

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

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

avatar

Читайте на SMART-LAB:
Фото
Т-Инвестиции отзывают рекомендацию по Яндексу после атак БПЛА
В пятницу, 9 октября, был атакован второй дата-центр компании в Калуге. Накануне, также из-за атак дронов, вышел из строя ЦОД в Рязанской...
Фото
Президент «Норникеля» Владимир Потанин о российской экономике, налоге на сверхдоход, инвестициях и международном сотрудничестве в интервью РБК
Макроэкономика Правительству приходится прилагать титанические усилия, чтобы обеспечить сбалансированность бюджета, что могло бы создать...
Фото
«Финам Радар»: как превратить Telegram в ваш личный командный центр
День современного инвестора похож на марафон с препятствиями: десятки открытых вкладок, нескончаемые ленты новостей и биржевые графики. В...
Фото
Нефтяной срез: выпуск №11. Удалось хорошо заработать пока все паниковали, но будущее туманно. Аккуратный переход в нефтебазовую оборону, ОСТАЛОСЬ ТОЛЬКО ДВЕ ИДЕИ.
Продолжаю выпускать рубрику — Нефтяной срез. Цель: отслеживать важные бенчмарки в нефтяной отрасли, чтобы понимать куда дует ветер. Прошлый пост...

теги блога UHSF

....все тэги



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