SRGARTSRGART
Справочный центр

Настройка вебхуков Инкубатора

Инкубатор стратегий принимает сигналы от TradingView через вебхуки (webhooks). В этой статье — пошаговая инструкция по настройке алерта и разбор шаблонов для каждой поддерживаемой биржи.

Общий принцип

  1. При создании стратегии в Инкубаторе генерируется уникальный Webhook URL и Webhook Token.
  2. Вы создаёте алерт в TradingView, вставляете URL в поле «Webhook URL» и шаблон JSON-сообщения в поле «Message».
  3. Когда стратегия в TradingView генерирует сигнал, TradingView отправляет POST-запрос на ваш URL.
  4. Инкубатор автоматически определяет формат вебхука (Binance, Bybit или OKX), нормализует данные и создаёт виртуальную сделку.

Шаг 1. Скопируйте Webhook URL

На странице стратегии (/incubator/{id}) раскройте секцию «Webhook Setup». Вы увидите:

  • Webhook URL — полный URL вида https://srgart.ru/api/incubator/webhook/{token}
  • Шаблон сообщения — готовый JSON для вставки в алерт

Нажмите кнопку копирования рядом с каждым полем.

Шаг 2. Настройте алерт в TradingView

  1. Откройте график с вашей стратегией в TradingView
  2. Нажмите «Add Alert» (или правый клик на индикатор → «Add Alert»)
  3. В настройках алерта:
    • Condition — выберите вашу стратегию/индикатор и нужное условие
    • Включите флаг «Webhook URL» и вставьте скопированный URL
    • В поле «Message» вставьте шаблон JSON-сообщения
  4. Нажмите «Create»

Шаблоны сообщений

Binance Futures (рекомендуется)
{
  "symbol": "{{ticker}}",
  "side": "{{strategy.order.action}}",
  "positionSide": "BOTH",
  "investmentType": "coin_qty",
  "qty": "{{strategy.order.contracts}}",
  "price": "market",
  "reduceOnly": false,
  "positionMode": "one_way_mode",
  "signalId": "<your-signal-id>",
  "uid": "<your-uid>"
}

Поля signalId и uid заполняются автоматически в шаблоне, который вы копируете со страницы стратегии.

Bybit Futures
{
  "symbol": "{{ticker}}",
  "side": "{{strategy.order.action}}",
  "qty": "{{strategy.order.contracts}}",
  "price": "{{close}}",
  "trigger_time": "{{timenow}}",
  "max_lag": "20",
  "strategy_id": "<your-signal-id>"
}
OKX Futures
{
  "id": "{{strategy.order.id}}",
  "action": "{{strategy.order.action}}",
  "marketPosition": "{{strategy.market_position}}",
  "prevMarketPosition": "{{strategy.prev.market_position}}",
  "marketPositionSize": "{{strategy.market_position_size}}",
  "prevMarketPositionSize": "{{strategy.prev.market_position_size}}",
  "instrument": "{{ticker}}",
  "signalToken": "<your-signal-token>"
}

Автоматическое определение формата

Инкубатор определяет формат входящего вебхука автоматически по набору полей:

  • Если присутствуют action + instrument + marketPositionOKX
  • Если присутствуют trigger_time или max_lag или strategy_idBybit
  • Если присутствуют symbol + sideBinance (формат по умолчанию)

Это означает, что один URL работает для всех форматов — система сама разберётся.

Плейсхолдеры TradingView

В шаблонах используются стандартные плейсхолдеры TradingView:

ПлейсхолдерЗначение
{{ticker}}Тикер инструмента (например, BTCUSDT)
{{strategy.order.action}}Действие: buy или sell
{{strategy.order.contracts}}Количество контрактов ордера
{{strategy.market_position}}Текущая позиция: long, short или flat
{{strategy.prev.market_position}}Предыдущая позиция
{{close}}Цена закрытия бара
{{timenow}}Текущее время

Обработка позиций

Инкубатор отслеживает состояние позиции для каждой стратегии:

  • Flat → Buy = открытие Long
  • Flat → Sell = открытие Short
  • Long → Sell (qty = текущая позиция) = закрытие Long
  • Short → Buy (qty = текущая позиция) = закрытие Short
  • Long → Sell (qty > текущая позиция) = флип в Short
  • Long → Buy = усреднение (добавление к позиции)

При усреднении рассчитывается средневзвешенная цена входа.

Перегенерация токена

Если вы подозреваете, что ваш webhook URL скомпрометирован, вы можете перегенерировать токен:

  1. Откройте страницу стратегии
  2. В секции «Webhook Setup» нажмите «Перегенерировать токен»
  3. Подтвердите действие
  4. Скопируйте новый URL и обновите алерт в TradingView

Старый URL немедленно перестанет работать.

Webhook-логи и отладка

Каждый входящий вебхук записывается в журнал. На странице стратегии в секции «Webhook Logs» вы можете:

  • Просматривать все запросы с фильтрацией по статусу
  • Видеть тело запроса (raw JSON) для отладки
  • Включить автообновление (polling каждые 10 секунд)

Статусы вебхуков:

СтатусОписание
УспешноВебхук обработан, сделка создана или обновлена
Ошибка форматаТело запроса не является валидным JSON
Ошибка данныхJSON получен, но не содержит обязательных полей
Стратегия неактивнаСтратегия приостановлена или архивирована
Неверный UIDUID в теле вебхука не совпадает с UID стратегии
Ошибка ценыНе удалось получить рыночную цену
Не найденоСтратегия с указанным токеном не найдена

Если вы видите ошибки — проверьте, что алерт в TradingView отправляет корректный JSON и что URL совпадает с указанным на странице стратегии.

Советы

  • Используйте стратегии, а не условные алерты. Для корректного трекинга позиций рекомендуется использовать Pine Script стратегии (strategy()), а не отдельные алерты buy/sell — так TradingView автоматически подставит правильные значения в плейсхолдеры.
  • Проверьте тикер. Убедитесь, что тикер на графике TradingView совпадает с инструментом стратегии в Инкубаторе. Например, BTCUSDT.P на Bybit нужно использовать с шаблоном Bybit.
  • Один алерт — одна стратегия. Каждый алерт TradingView должен быть привязан к одной стратегии Инкубатора через уникальный webhook URL.