Бывает, нужно получать от торгующего робота какие-то уведомления. Это могут быть уведомления об открытии позиций, закрытии, каком-то сбое и тд.
Так вот, рассмотрим способ отправки сообщений в один из популярных мессенджеров Телеграм.
Инструкция состоит из 3-х пунктов:
1. Создание бота в Telegram для приема сообщений
2. Отправка сообщений на примере бесплатного робота OsEngine.
3. Обзор кода робота.
1. Создание бота в Telegram для приема сообщений.
Нам будет нужен бот в самом мессенджере Телеграм. Для его создания используем BotFather – это официальный бот мессенджера, который позволяет создавать ботов и управлять ими. Открываем его и начинаем с ним чат (команда “/start” или Запустить):
BotFather отвечает списком команд, нам нужна команда – “/newbot” – вводим ее. В ответ предлагается выбрать имя нашему новому боту. Придумываем и вводим, например, “newOSAbot”.
Далее предлагается выбрать имя пользователя, оканчивающееся на “bot”. Делаем его, просто приписав в конец то, что нужно - “newOSAbot_bot”.
Вот так в итоге выглядит диалог создания бота:
BotFather сообщил нам об успешном создании бота и выдал Токен, который нужно куда-то сохранить. Он нам будет нужен для работы.
При необходимости созданных в BotFather ботов можно настраивать – добавлять описание, команды, устанавливать аватар и прочее.
Далее нам нужно узнать свой Telegram ID. Для этого можно использовать вот этого бота: https://t.me/userinfobot
Запускаем бота, и он выдает нам в ответ ID, сохраняем его рядом с Токеном.
Вот как это выглядит:
Давайте теперь проверим нашего вновь созданного бота. Вводим в поиске Телеграм имя бота (newOSAbot_bot) и запускаем его. Проверить отправку ему сообщений можно в браузере. Для этого в адрес ("https://api.telegram.org/bot + Token + /sendMessage?chat_id= + ID + &text=Hello!") надо вставить наши Токен и ID:
Если все правильно, то в чат с ботом придет приветственное сообщение:
Впоследствии все уведомления от робота OsEngine будут приходить сюда же.
2. Отправка сообщений на примере бесплатного робота OsEngine.
Нам нужен робот-пример отправки сообщений в Телеграм, называется он TelegramSample.cs
Запускаем OsEngine, добавляем данного робота. Настройки уведомлений находятся во вкладке Параметров Telegram settings – там вводим ранее полученные Токен и ID в соответствующие поля:
Не забываем включить режим “On”. Также на вкладке Trade settings надо тоже включить и настроить индикатор. Там еще можно и рабочий объем.
Робот не для боевой торговли, а для демонстрации работы с уведомлениями в Телеграм. Его торговая стратегия простейшая - индикатор Price Channel, вход в лонг при пробое верхней границы канала, выход при пробое нижней…
Уведомления в роботе сделаны на:
а) открытие позиции;
б) закрытие позиции;
в) потерю соединения с сервером.
Уведомление о потере соединения работает только в OsTrader (в боевом режиме). Поэтому в Тестере мы сейчас проверим уведомления о сделках.
В уведомлениях текст события, в скобках название робота, цена входа/выхода.
Настроили все, запустили тест (без ускорения, а то спамить уведомлениями будет) - уведомления есть:
3. Обзор кода робота.
За отправку уведомлений в Телеграм отвечает асинхронный метод SendTelegramMessageAsync(string message), принимает, соответственно, сообщение, которое нужно отправить:
В методе некоторые проверки, что введены ID и Токен и правильности ввода.
Метод для открытия и закрытия позиций вызывается в обработчиках успешного открытия и закрытия позиции. В обработчиках собираем нужную нам строку и передаем в метод:
Проверка соединения с сервером реализована в методе CheckConnect():
В методе крутится бесконечный цикл while с периодичностью 10 секунд, проверяется статус сервера. Когда соединение обрывается, приходит уведомление об этом.
Метод запускается в отдельном потоке из Конструктора в том случае, если робот запущен в боевом соединении (OsTrader):
Ссылка на робота на GitHub: https://github.com/AlexWan/OsEngine
ООО «ВАН ТЕХНОЛОГИИ»т: +7 953 769 56 45
* Торговля на финансовых рынках связана с риском, который лежит на Вас.
* Ничто из написанного на сайте o-s-a.net не является рекомендацией.
* Если Вы этого не понимаете, не читайте этот сайт, ничего не покупайте.
Комментарии