Кирков Алексей
Кирков Алексей личный блог
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
    Спасибо. Полезная информация.
  • Lev
    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, 05:33
      Lev, Это на каком языке?
      • Lev
        27 ноября 2016, 15:10
        Антон Ш, curl — утилита командной строки, есть нативно в Linux и MacOS. Можно установить в Windows и писать простенькие bat-файлы с использованием curl. Есть биндинги ко всем популярным языкам программирования. Так что curl сейчас стандарт «де-факто» и использование его вместо самописных сетевых функций — более правильный подход
  • Зарабатывающий Юзер
    27 ноября 2016, 01:27
    ужасно неудобный способ.
    купил/продал + инструмент запрограммировать надо же?

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

    Если роботостроитель не тупой, он итак знает все позы и изменения во времени, ему достаточно подобных сообщений, чтобы видеть изменение «портфеля» позиций.
  • Сергей Гаврилов
    27 ноября 2016, 02:05
    ++
  • ZDH
    27 ноября 2016, 02:18
    а как сделать так чтоб смс приходила когда цена коснулась уровня? там можно сделать?
    • SMT
      27 ноября 2016, 05:25
      ZDH, конечно. Вы же на форекс. И фортс торгуете, судя по профилю, вероятно, через метатрейдер.
       А на MQL это сделать проще простого.
       через 
      ПУШуведомдения
  • Гуру Хренов
    27 ноября 2016, 03:43
    Спасибо за идею
  • Гуру Хренов
    27 ноября 2016, 04:06
    еще есть у пацанов на районе популярный способ: писать все в текстовые логи, а потом их грузить в splunk и смотреть через веб интерфейс
  • SciFi
    27 ноября 2016, 08:18
    Я пользуюсь пуш уведомлениями в MQL5, Metatrader
  • Мария
    27 ноября 2016, 09:28
    а еще можно пользоваться удаленным рабочим столом и в своем телефончике в любой момент открывать и смотреть, что там происходит, и даже действия совершать, на случай ошибок.
  • Алексей Никитин
    27 ноября 2016, 10:33
    а я  телеграмм не  видел ни разу
  • Bazilius
    27 ноября 2016, 11:02
    Молодец! Неистово плюсую+++ Хоть мне и не пригодится)
  • Александр Муравьев
    27 ноября 2016, 11:08
    А чем телеграмм удобней, чем отправка емейл сообщений на телефон? Для работы с емейл сообщениями есть куча программ для телефона, можно подобрать наиболее удобное приложение. А какие преимущества есть у телеграмма?
  • Евгений Черных
    27 ноября 2016, 11:12
    Здорово. Спасибо за совет! ЦЕнно
  • TrueMan
    27 ноября 2016, 14:07
    Если интересно, есть подробное описание для mql5. Использую как оповещения при появление сигнала на сделку. 
    www.mql5.com/ru/articles/2355?utm_campaign=MetaEditor+5&utm_medium=special&utm_source=mt5editor+article
  • Любопытный Пай
    27 ноября 2016, 14:47
    Вопрос смежный, но не очень по теме — кто знает телеграм- каналы с новостями, но не всеми подряд, а которые можно считать за значимые, влияющие на рынок?
    • TrueMan
      27 ноября 2016, 15:40
      Любопытный Пай, я читаю @investtalks
  • day0markets.ru
    27 ноября 2016, 16:41
    Общение голосом с роботом, через Telegram api https://www.youtube.com/watch?v=4ArYo1NOYzk&feature=youtu.be
  • Сергей Гаврилов
    27 ноября 2016, 16:43
    Здесь универсальное решение. А mql5 вещь однобокая…
  • gry
    27 ноября 2016, 17:35
    Спасибо за идею, переключился с смс-ок на telegram
  • Пафос Респектыч
    27 ноября 2016, 19:33
    Плюсанул, идея дельная )
  • India
    27 ноября 2016, 21:15
    Да, тема нужная, давно хотел реализовать. А бесплатные смски через гугл-календарь уже давно не работают.
  • kvazar
    27 ноября 2016, 23:39
    а просто запустить teamviewer? и не парится? открыл форму статистики бота и смотри. а еще модуль риск-менеждмента никто не отменял. Словом за технологии 5, но не понял зачем.
  • kapodes
    28 ноября 2016, 11:53
    Класс! Спасибо за идею!

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

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