November 16, 2022

TradingView alerts to Telegram

Иногда трейдерам требуется отправлять сообщения в Телеграм-канал или чат для себя, либо своих подписчиков с сигналами или какими-то сообщениями.

Здесь описан способ настройки таких оповещений напрямую из TradingView в Telegram без использования промежуточного сервера.

Изучаем внимательно))

  • Создаём бота в Telegram

🔹 Для создания бота используем - @BotFather

При создании бота нам выдают token следующего вида:

5736528616:AAGwgsY18JXq5E6RVn84Nf8aCPVApqSnCPc (см.скрин ниже)

🔹 Этого бота необходимо добавить администратором в Telegram-канал, куда будем отправлять сигналы и, конечно же запустить его (для этого пишем созданному боту /start или нажимаем "Запустить".

🔹 Также нам потребуется идентификатор нашего канала/группы. Для этого пересылаем любое сообщение из нашего канала/группы в @getmyid_bot, а в ответ он выдаст требуемый id (см.скрин ниже)

  • Формируем Webhook для наших сигналов в Telegram

🔹 Вид webhook для отправки сообщения имеет следующий вид:

https://api.telegram.org/bot<наш бот-токен>/sendMessage?jsonRequest=true&parse_mode=html

Пример:
https://api.telegram.org/bot5736528616:AAGwgsY18JXq5E6RVn84Nf8aCPVApqSnCPc/sendMessage?jsonRequest=true&parse_mode=html

  • Формируем текст для оповещения в коде PineScript

🔹 Текст оповещения должен иметь следующий вид:

{"chat_id":"Идентификатор id канала/группы","text":"Текст оповещения"}

1 вариант - формируем текст в коде для автоматической отправки его с помощью оповещения "только при вызове функции alert()" или с помощью функции заполнения заявок - {{strategy.order.alert_message}}

Пример:

Метод парсинга - html, но при использовании переноса строки в тексте вместо /n используйте //n, поскольку tradingview "подрезает" /n в этом случае при формировании текста на выходе.
Для выделения текста используйте <b> </b> или <i> </i>.
Для использования ссылок в тексте используйте отдельную переменную, чтобы сохранить кавычки в выходном сообщении, например: REFERAL_BINANCE = "<a href='https://accounts.binance.com/register?ref=36000656'> BINANCE</a>"

my_chat_id = '-1001476562919'

market_entry_long = '#'+syminfo.ticker+' 🔵 <b>Open LONG</b>'+'\\n🔹Take = 3%\\n🔹Stop = 1%'+'\\n\\n'+REFERAL_BINANCE

market_entry_short = '#'+syminfo.ticker+' 🔴 <b>Open SHORT</b>'+'\\n🔹Take = 3%\\n🔹Stop = 1%'+'\\n\\n'+REFERAL_BINANCE

open_long_message = '{"chat_id":"'+my_chat_id +'","text":"' + market_entry_long + '"}'

open_short_message = '{"chat_id":"'+my_chat_id +'","text":"' + market_entry_short + '"}'

Далее отправляем команды с помощью alert()

if longCondition
alert(open_long_message, alert.freq_once_per_bar_close)
if shortCondition
alert(open_short_message , alert.freq_once_per_bar_close)

Или можем отправлять команды с помощью alert_message:

if longCondition
  strategy.entry('Long', strategy.long, qty=lot_l, alert_message=open_long_message )
strategy.exit('take-profit', 'Long', limit=take_l, stop=stop_l, alert_profit=profit_message, alert_loss=loss_message)

И получаем сообщение в Телеграм:

2 вариант - пишем текст нужного нам сообщения в тексте самого оповещения, соблюдая синтаксис

Пример:

{"chat_id":"-1001476562919","text":"Вход в лонг на 20% депозита!"}

🔹 По вопросам подключения и сотрудничества обращайтесь: @Shuttle_Trader

🔹 Адрес для донатов: USDT(TRC20): TLDL415YYF2A8Uih8zZyaRABCwTap5z3xP

🔹 Реферальная ссылка Binance

🔹 Реферальная ссылка TradingView

🔹 Телеграм-канал Shuttle Club