Блог им. robostock

Как использовать Telegram для мониторинга работы роботов

У коллег роботописателей существует необходимость постоянного контроля работы торговых роботов.

Существует огромное количество всевозможных вариантов:

— смс-уведомления из торгового терминала QUIK

— подключение к SMS-агрегатору для последующей отправки SMS-сообщений на собственный номер

— отправка e-mail сообщений

— особо изощренные программисты используют уведомления в календаре гугла, для бесплатной отправки сообщений о выставлении заявок роботом (экзотика, но как не упомянуть об этом)

Сколько копий было сломано, чтобы протестировать описанные выше способы.

 

Существует еще один очень интересный и простой в реализации инструмент – Телеграм со множеством полезных функций: telegram api и telegram bot api.

Bot api позволяет отправлять уведомления о состоянии робота, о сделках и множество другой торговой информации прямо в телеграм в чат с вашим ботом.

Скажу, что из всех предыдущих технологий, разобраться с работой bot api и получить рабочее решение оказалось проще всего. На запуск рабочего решения потребовалось 30 мин: с момента как впервые открыл api, зарегистрировал бота, и до внедрения отправки сообщений из бота в чат.

 

Для того что бы запустить собственный чат бот, который будет вас информировать о состоянии вашего робота нужно выполнить следующие действия:

  1. Ознакомиться с bot api (https://tlgrm.ru/docs/bots/api)

  2. Изучать все API для базового функционала нет смысла. Необходимо начать с разделов: Авторизация бота, отправка запросов, метода sendMessage и метода getUpdates (в разделе bot api «Получение обновлений»

  3. Далее переходим к практической части. Необходимо установить Телеграм на телефон. С помощью бота @BotFather (https://tlgrm.ru/docs/bots) прямо в чате Телеграма создать собственного бота и получить токен для вашего бота. Токен в последствии будет использоваться для авторизации запросов на отправку сообщений.

  4. В чате с ботом @BotFather пишите команду /newbot. После чего botfather попросит вас указать имя вашего бота. В случае успешного создания botfather сообщит вам токен вашего личного чат бота. Запомните его.

  5. После создания вашего собственного чат бота, можете сразу начать с ним беседу. Для того что бы в последствии с помощью функции getUpdates можно было получить уникальный идентификатор чата chat_id. Данные идентификатор используется для отправки сообщения конкретному пользователю.

  6. Самое сложное закончилось.

  7. Переходим в проект торгового робота (в данном примере будет использован C#).

  8. Код отправки сообщения для вашего чат бота занимает 8 строчек и выглядит следующим образом:

  9. string uri = «api.telegram.org/bot<chatbottoken>/sendMessage?chat_id=<ваш chat_id>&text=купил RIZ6 по „+price.ToString();

     

                string resultPage = “»;

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                using (StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8, true))

                {

                    resultPage = sr.ReadToEnd();

                    sr.Close();

                }

     

    Приведенная на C# логика легко внедряется в lua, phyton и массу других языков.

 

Удачи в торговле роботами.

★57
27 комментариев
Спасибо. Полезная информация.
avatar
Или одна строчка вызова curl
curl -s -X POST https://api.telegram.org/bot$BotID/sendMessage \
         -d text="$Message" -d chat_id=$UserID
avatar
Lev, Это на каком языке?
avatar
Антон Ш, curl — утилита командной строки, есть нативно в Linux и MacOS. Можно установить в Windows и писать простенькие bat-файлы с использованием curl. Есть биндинги ко всем популярным языкам программирования. Так что curl сейчас стандарт «де-факто» и использование его вместо самописных сетевых функций — более правильный подход
avatar
ужасно неудобный способ.
купил/продал + инструмент запрограммировать надо же?

Проще любым способом из любой торгпроги отсылать с разницей в N минут сообщение куда угорно посредством чего угодно.

Если роботостроитель не тупой, он итак знает все позы и изменения во времени, ему достаточно подобных сообщений, чтобы видеть изменение «портфеля» позиций.
Лузер, сам то понял, что написал…
а как сделать так чтоб смс приходила когда цена коснулась уровня? там можно сделать?
avatar
ZDH, конечно. Вы же на форекс. И фортс торгуете, судя по профилю, вероятно, через метатрейдер.
 А на MQL это сделать проще простого.
 через 
ПУШуведомдения
avatar
Спасибо за идею
avatar
еще есть у пацанов на районе популярный способ: писать все в текстовые логи, а потом их грузить в splunk и смотреть через веб интерфейс
avatar
Я пользуюсь пуш уведомлениями в MQL5, Metatrader
avatar
а еще можно пользоваться удаленным рабочим столом и в своем телефончике в любой момент открывать и смотреть, что там происходит, и даже действия совершать, на случай ошибок.
avatar
а я  телеграмм не  видел ни разу
Молодец! Неистово плюсую+++ Хоть мне и не пригодится)
avatar
А чем телеграмм удобней, чем отправка емейл сообщений на телефон? Для работы с емейл сообщениями есть куча программ для телефона, можно подобрать наиболее удобное приложение. А какие преимущества есть у телеграмма?
Здорово. Спасибо за совет! ЦЕнно
Если интересно, есть подробное описание для mql5. Использую как оповещения при появление сигнала на сделку. 
www.mql5.com/ru/articles/2355?utm_campaign=MetaEditor+5&utm_medium=special&utm_source=mt5editor+article
avatar
Вопрос смежный, но не очень по теме — кто знает телеграм- каналы с новостями, но не всеми подряд, а которые можно считать за значимые, влияющие на рынок?
Любопытный Пай, я читаю @investtalks
avatar
Общение голосом с роботом, через Telegram api https://www.youtube.com/watch?v=4ArYo1NOYzk&feature=youtu.be
avatar
Здесь универсальное решение. А mql5 вещь однобокая…
Спасибо за идею, переключился с смс-ок на telegram
avatar
Плюсанул, идея дельная )
Да, тема нужная, давно хотел реализовать. А бесплатные смски через гугл-календарь уже давно не работают.
avatar
а просто запустить teamviewer? и не парится? открыл форму статистики бота и смотри. а еще модуль риск-менеждмента никто не отменял. Словом за технологии 5, но не понял зачем.
avatar
Класс! Спасибо за идею!
avatar

теги блога Кирков Алексей

....все тэги



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