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}}",
  "quantity": "{{strategy.order.contracts}}",
  "price": "{{close}}",
  "order_type": "market",
  "order_id": "{{strategy.order.id}}",
  "comment": "{{strategy.order.comment}}",
  "reduce_only": false
}

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

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

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

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

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

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

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

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

ПлейсхолдерЗначение
{{strategy.order.action}}"buy" или "sell"
{{strategy.order.contracts}}Количество контрактов/единиц из стратегии
{{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