WeCore
Автоматизация

Автоматизация алертов TradingView через webhooks

Что такое webhook, алерты индикатора и стратегии, как собрать JSON-сообщение с плейсхолдерами и что проверить, чтобы автоматизация алертов была надёжной и безопасной.

WeCore·Опубликовано ·4 мин чтения

TradingView - один из самых популярных инструментов для графиков и разработки стратегий, но его алерты сами по себе не отправляют ордера брокеру. Мост между алертом и исполнением - webhook: автоматическое сообщение, которое отправляется на выбранный вами адрес в момент срабатывания алерта. В статье разберём, как это работает, что писать в сообщении и о каких ловушках надёжности и безопасности стоит знать заранее.

Что такое webhook

Webhook - это механизм, при котором одна система отправляет HTTP-запрос другой, когда что-то происходит, вместо того чтобы вторая система постоянно спрашивала «есть что-нибудь новое?». В случае TradingView, когда выполняется условие алерта, серверы TradingView отправляют POST-запрос на заданный вами webhook URL, а в теле запроса - текст, который вы написали в поле сообщения.

Принимающая сторона, например платформа автоматизации, читает сообщение, определяет, что делать (купить, продать, закрыть, количество), и отправляет ордер на брокерский счёт. Помните: TradingView только отправляет сообщение. Все решения об исполнении, риск-менеджменте и проверках адекватности принимаются на принимающей стороне.

Согласно справочному центру TradingView, доставка webhook зависит от тарифного плана и обычно требует двухфакторной аутентификации на аккаунте. Требования могут меняться, поэтому проверяйте актуальные детали на их официальном сайте.

Алерты индикатора и алерты стратегии

Для автоматизации используют два основных вида алертов:

  • Алерт индикатора или условия: создаётся на индикаторе, на цене или на функции alert в коде Pine. Хорошо подходит, когда логика проста или когда сам индикатор решает, когда отправлять сигнал.
  • Алерт стратегии: создаётся на скрипте типа strategy и срабатывает, когда движок стратегии исполняет симулированный ордер (вход, выход, разворот). Плюс в том, что сообщение может нести информацию о самом ордере, например направление и размер.

Разница важна, потому что меняет поведение. Алерт стратегии зависит от её настроек, например считает ли она только на закрытии бара или на каждом тике. Если бэктест шёл по закрытию бара, а живой алерт работает внутри бара, результаты могут различаться. Проверьте настройки и убедитесь, что они согласованы.

Сообщение: JSON и плейсхолдеры

Большинство систем автоматизации ожидают сообщение в формате JSON - структуре из полей и значений. Если описать словами, типичное сообщение содержит поля: какой инструмент торговать, в каком направлении, сколько контрактов, а иногда идентификатор стратегии или токен подключения. Точный формат определяет принимающая сторона, поэтому всегда копируйте шаблон из документации используемой платформы.

TradingView поддерживает плейсхолдеры: переменные в двойных фигурных скобках, которые при отправке заменяются реальными значениями. Есть плейсхолдеры для символа, цены закрытия, времени, а в алертах стратегии - также для направления ордера и количества. Правильное использование плейсхолдеров позволяет применять один шаблон сообщения на нескольких графиках, не переписывая его.

Несколько правил, которых стоит придерживаться:

  • Следите за валидностью JSON: двойные кавычки вокруг имён полей и текста, запятые между полями, без лишней запятой в конце.
  • Не полагайтесь на поля, которые могут оказаться незаполненными в некоторых ситуациях.
  • Проверяйте итоговое сообщение в журнале алертов TradingView, чтобы видеть, что реально было отправлено.

Правильный символ и ролловер контракта

Фьючерсы добавляют особую проблему: непрерывный график (например, NQ1!) показывает ближайший контракт и переключается автоматически, а брокеру нужно знать, какой именно контракт торговать. Если сообщение передаёт имя непрерывного графика, принимающая сторона должна перевести его в нужный контракт. Если передаёт конкретный контракт, алерт придётся обновить при ролловере. Полное объяснение - в статье ролловер фьючерсных контрактов.

Надёжность

Хорошая автоматизация - та, про которую вы знаете, когда она не сработала. На что обратить внимание:

  1. Срок действия алерта: на некоторых тарифах у алертов есть срок действия. Истёкший алерт просто перестаёт отправлять сообщения - молча. Поставьте себе напоминание.
  2. Изменения скрипта: если вы правите индикатор или стратегию, существующий алерт может продолжать работать на старой версии. Обычно его нужно создать заново.
  3. Дублирующиеся алерты: два алерта на одном графике или алерт, срабатывающий больше одного раза за бар, могут отправить двойной ордер. Задавайте частоту срабатывания осознанно, а в идеале пусть принимающая сторона распознаёт дубли.
  4. Задержки: webhook идёт через интернет и может задержаться. На быстром рынке даже небольшая задержка влияет на цену; см. статью проскальзывание и издержки исполнения.
  5. Сбой приёмника: если принимающий сервер недоступен, сообщение может потеряться. Хорошая система вас об этом предупредит.

Защита webhook URL

Ваш webhook URL - по сути ключ: любой, кто его знает и знает формат сообщения, может отправлять ордера на ваш счёт. Поэтому:

  • Не публикуйте URL на скриншотах, форумах и в чатах.
  • Где возможно, используйте секретный токен внутри сообщения, который проверяет принимающая сторона.
  • Если подозреваете утечку URL, создайте новое подключение и отзовите старое.
  • Задайте лимиты риска на принимающей стороне, чтобы даже некорректное сообщение не могло открыть огромную позицию.

Чек-лист перед запуском

  • Тестировалась ли стратегия с теми же настройками расчёта, на которых работает алерт?
  • Валиден ли JSON согласно документации приёмника?
  • Сопоставлен ли символ с правильным контрактом?
  • Знаете ли вы срок действия алерта?
  • Заданы ли дневной лимит убытка и максимум контрактов?
  • Проверили ли вы всё сначала в симуляции?

Главное

  • Webhook - просто курьер: TradingView отправляет сообщение, а принимающая сторона исполняет и управляет риском.
  • Алерты стратегии могут передавать направление и количество, но требуют согласованных настроек расчёта.
  • Валидный JSON и правильные плейсхолдеры предотвращают массу ошибок.
  • Истечение срока, дубли и правки скрипта - частые источники сбоев.
  • Webhook URL - секрет; обращайтесь с ним как с паролем.

Если хотите увидеть, как это выглядит на практике, есть руководство как подключить алерты TradingView к WeCore. WeCore принимает алерты, превращает их в ордера на вашем счёте у брокера или в проп-фирме и применяет автоматические лимиты риска, а начать можно с режима симуляции.

Источники и дополнительное чтение