Skip to content

Формат Webhook Payload

Payload — это JSON-сообщение, которое TradingView отправляет на ваш webhook Amabit при срабатывании алерта. Формат различается для Strategy Mode и Signal Mode.

Payload для алерта стратегии

Для стратегий TradingView с использованием strategy.entry() и strategy.close():

json
{
  "action": "{{strategy.order.action}}",
  "symbol": "{{ticker}}",
  "contracts": "{{strategy.order.contracts}}",
  "position_size": "{{strategy.position_size}}",
  "price": "{{close}}",
  "order_type": "market",
  "order_id": "{{strategy.order.id}}",
  "comment": "{{strategy.order.comment}}"
}

Требуется режим One-Way (Net)

Стратегические вебхуки полагаются на единую нетто-позицию по символу. Hedge Mode (когда одновременно открыты и LONG, и SHORT по одному символу) не поддерживается — входящие сигналы будут отклонены. Перед использованием Strategy webhook'а переключите аккаунт на One-Way / Net Mode на бирже.

Главное поле — position_size: ЗНАКОВАЯ целевая позиция, которую стратегия хочет иметь ПОСЛЕ этого сигнала: положительное = long, отрицательное = short, 0 = нет позиции. Amabit читает текущую позицию на бирже и сам считает разницу:

Текущая → ЦелеваяДействие
0 → +Qодин BUY-ордер на Q
+Q → +2Qодин BUY-ордер на Q
+2Q → 0один SELL на 2Q, автоматически reduce_only
+2Q → −Qдва ордера: SELL 2Q (reduce_only) на закрытие + SELL Q на открытие шорта
0 → 0ничего не делается — уже на целевой позиции

reduce_only рассчитывается автоматически из дельты и не должен задаваться в Strategy-payload — любое значение игнорируется. Поля action и contracts сохраняются для логов/отладки, но реальные направление и размер берутся из position_size.

Payload для ручного сигнала

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

json
{
  "action": "buy",
  "symbol": "BTCUSDT",
  "quantity": 0.01,
  "price": "{{close}}",
  "order_type": "market",
  "reduce_only": false
}

Измените "action" на "sell" для сигналов продажи.

Справочник полей

ПолеОбязательноеЗначенияОписание
actionДа (Signal)"buy", "sell"Направление сделки. Также можно использовать side. В Strategy Mode — справочное, реальная сторона определяется из position_size
symbolДанапример, "BTCUSDT"Торговая пара в формате Binance. Префиксы биржи вида BINANCE:BTCUSDT автоматически удаляются
quantity / contractsДа (Signal)ЧислоОбъём сделки в базовой валюте. Не обязательно, если webhook использует "% of Balance". В Strategy Mode — справочное, реальный размер определяется из position_size
position_sizeДа (Strategy)ЗНАКОВОЕ числоТолько Strategy. Целевая позиция ПОСЛЕ сигнала: положительное = long, отрицательное = short, 0 = flat
priceНетЧисло или "{{close}}"Цена для лимитных ордеров. Также используется как цена входа для расчёта TP/SL в Signal Mode
order_typeНет"market", "limit"По умолчанию используется тип ордера, настроенный в webhook, если не указан
order_idНетСтрокаОпциональный идентификатор — записывается для отслеживания
commentНетСтрокаОпциональный комментарий — сохраняется в журнале исполнения
reduce_onlyНет (Signal)true, falseТолько Signal Mode. Если true, только уменьшает существующую позицию. Игнорируется в Strategy Mode — Amabit вычисляет его сам из position_size
position_sideНет"LONG", "SHORT"Переопределяет сторону позиции webhook по умолчанию. Только для Hedge Mode фьючерсов — не используется в Strategy Mode (Strategy требует One-Way mode)

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

TradingView заменяет эти плейсхолдеры реальными значениями в момент срабатывания алерта:

ПлейсхолдерЗначение
{{strategy.order.action}}"buy" или "sell" (справочно в Strategy Mode)
{{strategy.order.contracts}}Количество контрактов/единиц из стратегии (справочно в Strategy Mode)
{{strategy.position_size}}Strategy Mode — знаковая целевая позиция после ордера: положительное = long, отрицательное = short, 0 = flat
{{strategy.order.id}}ID ордера, назначенный стратегией
{{strategy.order.comment}}Комментарий, заданный в strategy.entry() или strategy.close()
{{ticker}}Символ графика (например, "BTCUSDT" или "BINANCE:BTCUSDT")
{{close}}Текущая цена закрытия
{{open}}, {{high}}, {{low}}Значения OHLC текущей свечи
{{volume}}Объём текущей свечи
{{time}}Временная метка текущей свечи

Формат символа

Amabit ожидает формат символа Binance — название пары без разделителей:

ПринимаетсяНе принимается
BTCUSDTBTC/USDT
ETHUSDTETH-USDT
BINANCE:BTCUSDTSOL/USDT

TIP

Если ваш график TradingView использует префикс биржи (например, BINANCE:BTCUSDT), это нормально — Amabit автоматически удаляет префикс. Но форматы со слэшем или дефисом (BTC/USDT, BTC-USDT) не поддерживаются.

Если {{ticker}} выдаёт неподдерживаемый формат, захардкодируйте символ в payload.

Примеры

Лимитный ордер

Исполнить по цене алерта вместо рыночной:

json
{
  "action": "buy",
  "symbol": "BTCUSDT",
  "quantity": 0.005,
  "price": "{{close}}",
  "order_type": "limit"
}

Reduce-Only (Фьючерсы)

Закрыть существующую позицию без открытия новой:

json
{
  "action": "sell",
  "symbol": "BTCUSDT",
  "quantity": 0.01,
  "order_type": "market",
  "reduce_only": true
}

Hedge Mode — Закрыть длинную позицию

json
{
  "action": "sell",
  "symbol": "BTCUSDT",
  "quantity": 0.01,
  "order_type": "market",
  "position_side": "LONG",
  "reduce_only": true
}

Использование % от баланса (Quantity не нужен)

Если ваш webhook настроен с размером лота Custom % of Balance, поле quantity игнорируется:

json
{
  "action": "buy",
  "symbol": "ETHUSDT",
  "order_type": "market"
}

Официальный брокер Binance