Инкубатор стратегий принимает сигналы от TradingView через вебхуки (webhooks). В этой статье — пошаговая инструкция по настройке алерта и разбор шаблонов для каждой поддерживаемой биржи.
Общий принцип
- При создании стратегии в Инкубаторе генерируется уникальный Webhook URL и Webhook Token.
- Вы создаёте алерт в TradingView, вставляете URL в поле «Webhook URL» и шаблон JSON-сообщения в поле «Message».
- Когда стратегия в TradingView генерирует сигнал, TradingView отправляет POST-запрос на ваш URL.
- Инкубатор автоматически определяет формат вебхука (Binance, Bybit или OKX), нормализует данные и создаёт виртуальную сделку.
Шаг 1. Скопируйте Webhook URL
На странице стратегии (/incubator/{id}) раскройте секцию «Webhook Setup». Вы увидите:
- Webhook URL — полный URL вида
https://srgart.ru/api/incubator/webhook/{token} - Шаблон сообщения — готовый JSON для вставки в алерт
Нажмите кнопку копирования рядом с каждым полем.
Шаг 2. Настройте алерт в TradingView
- Откройте график с вашей стратегией в TradingView
- Нажмите «Add Alert» (или правый клик на индикатор → «Add Alert»)
- В настройках алерта:
- Condition — выберите вашу стратегию/индикатор и нужное условие
- Включите флаг «Webhook URL» и вставьте скопированный URL
- В поле «Message» вставьте шаблон JSON-сообщения
- Нажмите «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+marketPosition— OKX - Если присутствуют
trigger_timeилиmax_lagилиstrategy_id— Bybit - Если присутствуют
symbol+side— Binance (формат по умолчанию)
Это означает, что один 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 скомпрометирован, вы можете перегенерировать токен:
- Откройте страницу стратегии
- В секции «Webhook Setup» нажмите «Перегенерировать токен»
- Подтвердите действие
- Скопируйте новый URL и обновите алерт в TradingView
Старый URL немедленно перестанет работать.
Webhook-логи и отладка
Каждый входящий вебхук записывается в журнал. На странице стратегии в секции «Webhook Logs» вы можете:
- Просматривать все запросы с фильтрацией по статусу
- Видеть тело запроса (raw JSON) для отладки
- Включить автообновление (polling каждые 10 секунд)
Статусы вебхуков:
| Статус | Описание |
|---|---|
| Успешно | Вебхук обработан, сделка создана или обновлена |
| Ошибка формата | Тело запроса не является валидным JSON |
| Ошибка данных | JSON получен, но не содержит обязательных полей |
| Стратегия неактивна | Стратегия приостановлена или архивирована |
| Неверный UID | UID в теле вебхука не совпадает с UID стратегии |
| Ошибка цены | Не удалось получить рыночную цену |
| Не найдено | Стратегия с указанным токеном не найдена |
Если вы видите ошибки — проверьте, что алерт в TradingView отправляет корректный JSON и что URL совпадает с указанным на странице стратегии.
Советы
- Используйте стратегии, а не условные алерты. Для корректного трекинга позиций рекомендуется использовать Pine Script стратегии (
strategy()), а не отдельные алертыbuy/sell— так TradingView автоматически подставит правильные значения в плейсхолдеры. - Проверьте тикер. Убедитесь, что тикер на графике TradingView совпадает с инструментом стратегии в Инкубаторе. Например,
BTCUSDT.Pна Bybit нужно использовать с шаблоном Bybit. - Один алерт — одна стратегия. Каждый алерт TradingView должен быть привязан к одной стратегии Инкубатора через уникальный webhook URL.