Руководство по интеграции веб-хуков Vector Trading

Добро пожаловать в интеграцию веб-хуков с Vector Trading! Это подробное руководство поможет вам подключить ваши стратегии TradingView к нашей торговой платформе с помощью веб-хуков.

API веб-хуков Vector Trading поддерживает различные типы сигналов, включая открытие позиций, управление позициями и управление стратегиями. Мы также предоставляем лучшие практики для обеспечения безопасности и оптимизации ваших торговых стратегий.

API достаточно гибок и не ограничен лишь TradingView. Вы можете использовать его с любыми другими платформами, которые поддерживают отправку HTTP POST запросов в формате JSON.

Что такое веб-хуки TradingView?

Веб-хуки TradingView позволяют отправлять автоматические торговые сигналы из ваших Pine Script стратегий напрямую на платформу Vector Trading. Когда условия вашей стратегии выполняются, TradingView отправляет JSON-пакет на наш веб-хук, который затем выполняет соответствующее торговое действие на подключенной бирже.

Настройка торгового бота

Создание торгового бота

  1. Перейдите в терминал Vector Trading в секции "Торговля" основного меню
  2. Подключите учётную запись нужной биржи (например, BingX, Bybit и т.д.)
  3. Нажмите "+ Создать бота"
  4. Выберите название для вашего алгоритма
  5. Настройте параметры бота:
    • Лимиты по торговле: Укажите лимиты по размеру позиций и общему капиталу
    • Входы: Установите входы для бота, и отступы, если не хотите, чтобы бот использовал входы из сигналов TradingView
    • Тейк-профиты: Настройте уровни тейк-профита для автоматической фиксации прибыли, если не хотите, чтобы бот использовал тейк-профиты из сигналов TradingView
    • Стоп-лосс: Установите уровень стоп-лосса для защиты капитала, если не хотите, чтобы бот использовал стоп-лосс из сигналов TradingView

Получение URL веб-хука

После создания бота вы получите уникальный URL веб-хука, который выглядит так:

https://www.vector-trading.app/webhooks/signals/v1/ВАШ_API_КЛЮЧ

Рыночный ордер

Самый простой тип ордера, который исполняется немедленно по текущей рыночной цене. Для создания рыночного ордера не указывайте поля или .

Базовый рыночный ордер

{  "version": 1.0,  "action": "open",  "marketPrice": {{close}},  "order": {      "side": "buy"  },  "timestamp": "{{timenow}}",  "hashtag": "LONG_BTCUSDT_20250214010200_15M"}

Простейший рыночный ордер без дополнительных параметров. Исполняется немедленно по текущей рыночной цене.

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

Лимитный ордер исполняется только по указанной цене или лучше. Укажите поле для создания лимитного ордера.

Базовый лимитный ордер

{  "version": 1.0,  "action": "open",  "marketPrice": {{close}},  "order": {      "side": "buy",      "price": {{close * 0.998}}  },  "timestamp": "{{timenow}}",  "hashtag": "LONG_BTCUSDT_20250214010200_15M"}

Лимитный ордер с указанием цены исполнения. Будет исполнен только по указанной цене или лучше.

Триггерный ордер

Триггерный ордер активируется при достижении триггерной цены. Укажите поле . Опционально можете добавить поле для создания лимитного триггерного ордера.

Базовый триггерный ордер

{  "version": 1.0,  "action": "open",  "marketPrice": {{close}},  "order": {      "side": "buy",      "triggerPrice": {{close * 1.01}}  },  "timestamp": "{{timenow}}",  "hashtag": "LONG_BTCUSDT_20250214010200_15M"}

Триггерный ордер активируется при достижении указанной цены и исполняется по рынку.

Принудительный ордер

Если вы хотите гарантированно закрыть все существующие позиции и ордера перед открытием новой позиции (надёжный разворот), используйте флаг . Это особенно полезно для стратегий, которые требуют полного выхода из текущей позиции перед входом в противоположную.

Пример: Принудительное закрытие и открытие новой позиции

{    "version": 1.0,    "action": "open",    "force": true,    "marketPrice": {{close}},    "order": {        "side": "buy"    },    "timestamp": "{{timenow}}",    "hashtag": "LONG_BTCUSDT_20250214010200_15M"}

Поведение флага force:

  • - сначала закрыть ВСЕ позиции и отменить ВСЕ ордера по торговой паре, затем создать новый ордер
  • или отсутствует - проверить доступный лимит бота, игнорировать сигнал если есть позиции других ботов, создать ордер на доступный остаток

Сигнал update

Используйте , чтобы изменить текущее торговое состояние без открытия новой позиции.

  • Если позиция уже открыта, работает как trailing stop и обновляет активный stop-loss ордер.
  • Если позиция ещё не открыта, но entry-ордер уже есть, изменяет / этого ордера и значение stop-loss.

Trailing Stop для открытой позиции

{    "version": 1.0,    "action": "update",    "marketPrice": {{close}},    "order": {        "side": "sell",        "stop": {{close * 0.985}}    },    "timestamp": "{{timenow}}",    "hashtag": "LONG_BTCUSDT_20250214010200_15M"}

Обновление pending entry и stop-loss

{    "version": 1.0,    "action": "update",    "marketPrice": {{close}},    "order": {        "side": "buy",        "price": {{close * 0.997}},        "triggerPrice": {{close * 1.003}},        "stop": {{close * 0.96}}    },    "timestamp": "{{timenow}}",    "hashtag": "LONG_BTCUSDT_20250214010200_15M"}

Важно: Для поддерживаются поля , , и явно переданный . Если не передан, TP не меняются; удаляет текущие TP; непустой массив заменяет TP-набор.

Управление позициями

Отмена всех открытых ордеров

{    "version": 1.0,    "action": "cancel",    "marketPrice": {{close}},    "timestamp": "{{timenow}}",    "hashtag": "LONG_BTCUSDT_20250214010200_15M"}

Закрытие всех позиций

{    "version": 1.0,    "action": "close",    "marketPrice": {{close}},    "timestamp": "{{timenow}}",    "hashtag": "LONG_BTCUSDT_20250214010200_15M"}

Управление стратегией

Запуск торговой стратегии

{    "version": 1.0,    "action": "start",    "marketPrice": {{close}},    "timestamp": "{{timenow}}",    "hashtag": "LONG_BTCUSDT_20250214010200_15M"}

Приостановка торговой стратегии

{    "version": 1.0,    "action": "pause",    "marketPrice": {{close}},    "timestamp": "{{timenow}}",    "hashtag": "LONG_BTCUSDT_20250214010200_15M"}

Структура данных веб-хука

Обязательные поля

ПолеТипОписание
NumberВерсия вашей стратегии в TradingView (для отслеживания успешности разных версий)
StringДействие: , , , , ,
NumberТекущая рыночная цена при срабатывании сигнала
StringВременная метка сигнала (используйте для текущего времени)
BooleanПринудительное закрытие всех позиций/ордеров перед открытием (только для )

Опциональные поля ордера

ПолеТипОписание
StringНаправление ордера: или
NumberЦена исполнения (для лимитных ордеров)
NumberЦена срабатывания (для триггерных ордеров)
NumberЦена стоп-лосса
NumberПроцент от доступного баланса для использования (1-100)
ArrayЦели тейк-профита с ценой и процентом
StringХэштег для телеграм уведомлений, связывающий события одной позиции (открытие + тейк-профиты)

Примечание: Тип ордера определяется автоматически на основе наличия полей и .

Для применяются , , и явно переданный . Если не передан, TP не меняются; очищает их; непустой массив заменяет TP-набор.

Правила валидации TP/SL

  • необязателен. Если он передан, это должна быть конечная положительная цена.
  • необязателен. Если он передан, это должен быть массив.
  • Один сигнал может содержать не более целей тейк-профита.
  • Каждый тейк-профит должен содержать конечные положительные значения и .
  • Каждый переданный тейк-профита должен быть больше , а сумма не должна превышать .
  • Отсутствующий допустим, но один невалидный тейк-профит отклоняет весь payload.
  • Цены TP/SL проверяются относительно base price сигнала: , затем , затем .
  • Для тейк-профиты должны быть выше base price, а стоп-лосс ниже него.
  • Для тейк-профиты должны быть ниже base price, а стоп-лосс выше него.

Структура тейк-профита

"takeProfits": [    {"price": 50000.00, "percent": 30},    {"price": 55000.00, "percent": 40},    {"price": 60000.00, "percent": 30}]

Настройка TradingView

Создание алертов

  1. Откройте ваш график TradingView
  2. Примените вашу Pine Script стратегию
  3. Нажмите кнопку "Алерт" (иконка часов)
  4. Настройте условия алерта:
    • Условие: Выберите вашу стратегию
    • Опции: Выберите "Once Per Bar Close" для большинства стратегий
    • Срок действия: Установите подходящее время истечения

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

  1. В диалоге алерта перейдите на вкладку "Уведомления"
  2. Отметьте "Webhook URL"
  3. Вставьте ваш URL веб-хука Vector Trading
  4. В поле "Сообщение" вставьте ваш JSON payload

Использование переменных TradingView

Вы можете использовать встроенные переменные TradingView в вашем JSON:

  • - Текущая цена закрытия
  • - Текущая цена открытия
  • - Текущий максимум
  • - Текущий минимум
  • - Текущий объём
  • - Текущая временная метка
  • - Действие стратегии (buy/sell)
  • - Текущий размер позиции

Пример динамического расчёта цены:

{    "version": 1.0,    "action": "open",    "marketPrice": {{close}},    "order": {        "side": "buy",        "orderType": "limit",        "price": {{close * 0.998}},        "stop": {{close * 0.96}},        "takeProfits": [            {"price": {{close * 1.04}}, "percent": 50},            {"price": {{close * 1.08}}, "percent": 50}        ]    },    "timestamp": "{{timenow}}",    "hashtag": "LONG_BTCUSDT_20250214010200_15M"}

Лучшие практики

Рекомендации по безопасности

  • Никогда не публикуйте ваш URL веб-хука публично
  • Используйте уникальные хэштеги для каждой стратегии во избежание конфликтов
  • Регулярно мониторьте ваши алерты, чтобы убедиться в их корректной работе
  • Тщательно тестируйте на демо-счетах перед живой торговлей

Оптимизация стратегии

  • Начинайте с малых размеров позиций при тестировании интеграции веб-хуков
  • Используйте подходящие таймфреймы для вашей стратегии
  • Устанавливайте разумные стоп-лоссы для защиты капитала
  • Мониторьте производительность и корректируйте параметры по мере необходимости

Обработка ошибок

  • Проверяйте логи веб-хуков в панели управления Vector Trading
  • Валидируйте JSON синтаксис с помощью онлайн валидаторов JSON
  • Убедитесь, что все обязательные поля присутствуют в вашем payload
  • Обращайтесь в поддержку при постоянных проблемах

Заключение

Интеграция веб-хуков TradingView с Vector Trading открывает мощные возможности для автоматизации торговли. Следуйте этому руководству и лучшим практикам для успешной реализации ваших торговых стратегий.