Автоматизация алертов TradingView через webhooks
Что такое webhook, алерты индикатора и стратегии, как собрать JSON-сообщение с плейсхолдерами и что проверить, чтобы автоматизация алертов была надёжной и безопасной.
TradingView - один из самых популярных инструментов для графиков и разработки стратегий, но его алерты сами по себе не отправляют ордера брокеру. Мост между алертом и исполнением - webhook: автоматическое сообщение, которое отправляется на выбранный вами адрес в момент срабатывания алерта. В статье разберём, как это работает, что писать в сообщении и о каких ловушках надёжности и безопасности стоит знать заранее.
Что такое webhook
Webhook - это механизм, при котором одна система отправляет HTTP-запрос другой, когда что-то происходит, вместо того чтобы вторая система постоянно спрашивала «есть что-нибудь новое?». В случае TradingView, когда выполняется условие алерта, серверы TradingView отправляют POST-запрос на заданный вами webhook URL, а в теле запроса - текст, который вы написали в поле сообщения.
Принимающая сторона, например платформа автоматизации, читает сообщение, определяет, что делать (купить, продать, закрыть, количество), и отправляет ордер на брокерский счёт. Помните: TradingView только отправляет сообщение. Все решения об исполнении, риск-менеджменте и проверках адекватности принимаются на принимающей стороне.
Согласно справочному центру TradingView, доставка webhook зависит от тарифного плана и обычно требует двухфакторной аутентификации на аккаунте. Требования могут меняться, поэтому проверяйте актуальные детали на их официальном сайте.
Алерты индикатора и алерты стратегии
Для автоматизации используют два основных вида алертов:
- Алерт индикатора или условия: создаётся на индикаторе, на цене или на функции alert в коде Pine. Хорошо подходит, когда логика проста или когда сам индикатор решает, когда отправлять сигнал.
- Алерт стратегии: создаётся на скрипте типа strategy и срабатывает, когда движок стратегии исполняет симулированный ордер (вход, выход, разворот). Плюс в том, что сообщение может нести информацию о самом ордере, например направление и размер.
Разница важна, потому что меняет поведение. Алерт стратегии зависит от её настроек, например считает ли она только на закрытии бара или на каждом тике. Если бэктест шёл по закрытию бара, а живой алерт работает внутри бара, результаты могут различаться. Проверьте настройки и убедитесь, что они согласованы.
Сообщение: JSON и плейсхолдеры
Большинство систем автоматизации ожидают сообщение в формате JSON - структуре из полей и значений. Если описать словами, типичное сообщение содержит поля: какой инструмент торговать, в каком направлении, сколько контрактов, а иногда идентификатор стратегии или токен подключения. Точный формат определяет принимающая сторона, поэтому всегда копируйте шаблон из документации используемой платформы.
TradingView поддерживает плейсхолдеры: переменные в двойных фигурных скобках, которые при отправке заменяются реальными значениями. Есть плейсхолдеры для символа, цены закрытия, времени, а в алертах стратегии - также для направления ордера и количества. Правильное использование плейсхолдеров позволяет применять один шаблон сообщения на нескольких графиках, не переписывая его.
Несколько правил, которых стоит придерживаться:
- Следите за валидностью JSON: двойные кавычки вокруг имён полей и текста, запятые между полями, без лишней запятой в конце.
- Не полагайтесь на поля, которые могут оказаться незаполненными в некоторых ситуациях.
- Проверяйте итоговое сообщение в журнале алертов TradingView, чтобы видеть, что реально было отправлено.
Правильный символ и ролловер контракта
Фьючерсы добавляют особую проблему: непрерывный график (например, NQ1!) показывает ближайший контракт и переключается автоматически, а брокеру нужно знать, какой именно контракт торговать. Если сообщение передаёт имя непрерывного графика, принимающая сторона должна перевести его в нужный контракт. Если передаёт конкретный контракт, алерт придётся обновить при ролловере. Полное объяснение - в статье ролловер фьючерсных контрактов.
Надёжность
Хорошая автоматизация - та, про которую вы знаете, когда она не сработала. На что обратить внимание:
- Срок действия алерта: на некоторых тарифах у алертов есть срок действия. Истёкший алерт просто перестаёт отправлять сообщения - молча. Поставьте себе напоминание.
- Изменения скрипта: если вы правите индикатор или стратегию, существующий алерт может продолжать работать на старой версии. Обычно его нужно создать заново.
- Дублирующиеся алерты: два алерта на одном графике или алерт, срабатывающий больше одного раза за бар, могут отправить двойной ордер. Задавайте частоту срабатывания осознанно, а в идеале пусть принимающая сторона распознаёт дубли.
- Задержки: webhook идёт через интернет и может задержаться. На быстром рынке даже небольшая задержка влияет на цену; см. статью проскальзывание и издержки исполнения.
- Сбой приёмника: если принимающий сервер недоступен, сообщение может потеряться. Хорошая система вас об этом предупредит.
Защита webhook URL
Ваш webhook URL - по сути ключ: любой, кто его знает и знает формат сообщения, может отправлять ордера на ваш счёт. Поэтому:
- Не публикуйте URL на скриншотах, форумах и в чатах.
- Где возможно, используйте секретный токен внутри сообщения, который проверяет принимающая сторона.
- Если подозреваете утечку URL, создайте новое подключение и отзовите старое.
- Задайте лимиты риска на принимающей стороне, чтобы даже некорректное сообщение не могло открыть огромную позицию.
Чек-лист перед запуском
- Тестировалась ли стратегия с теми же настройками расчёта, на которых работает алерт?
- Валиден ли JSON согласно документации приёмника?
- Сопоставлен ли символ с правильным контрактом?
- Знаете ли вы срок действия алерта?
- Заданы ли дневной лимит убытка и максимум контрактов?
- Проверили ли вы всё сначала в симуляции?
Главное
- Webhook - просто курьер: TradingView отправляет сообщение, а принимающая сторона исполняет и управляет риском.
- Алерты стратегии могут передавать направление и количество, но требуют согласованных настроек расчёта.
- Валидный JSON и правильные плейсхолдеры предотвращают массу ошибок.
- Истечение срока, дубли и правки скрипта - частые источники сбоев.
- Webhook URL - секрет; обращайтесь с ним как с паролем.
Если хотите увидеть, как это выглядит на практике, есть руководство как подключить алерты TradingView к WeCore. WeCore принимает алерты, превращает их в ордера на вашем счёте у брокера или в проп-фирме и применяет автоматические лимиты риска, а начать можно с режима симуляции.