Кирков Алексей
Кирков Алексей личный блог
26 ноября 2016, 23:47

Как использовать 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 и массу других языков.

 

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

27 Комментариев
  • Фредерико
    27 ноября 2016, 00:40
    Спасибо. Полезная информация.
  • Leo
    27 ноября 2016, 00:53
    Или одна строчка вызова curl
    curl -s -X POST https://api.telegram.org/bot$BotID/sendMessage \
             -d text="$Message" -d chat_id=$UserID
    
  • Зарабатывающий Юзер
    27 ноября 2016, 01:27
    ужасно неудобный способ.
    купил/продал + инструмент запрограммировать надо же?

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

    Если роботостроитель не тупой, он итак знает все позы и изменения во времени, ему достаточно подобных сообщений, чтобы видеть изменение «портфеля» позиций.
  • Сергей Гаврилов
    27 ноября 2016, 02:05
    ++

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн