Продукты / TradingView → MT5 / Настройка

TradingView → MT5

Настройка TradingView

Подключите уведомления скрипта Pine к PositionRelay и MT5 slave.

Обзор

PositionRelay TV Sync соединяет алерты стратегий TradingView со счетами-подписчиками MetaTrader 5. Ваша Pine-стратегия формирует webhook JSON через библиотеку StrategyWebhookJson; PositionRelay принимает алерты во виртуальный исходный счёт; TV Slave EA зеркалит открытие, закрытие и изменение на каждом MT5 slave.

Все три EA (без конфликтов)

Вы можете запускать MT5 Copy и TV Sync на одном аккаунте PositionRelay. Используйте отдельный терминал MT5 для каждого EA — никогда не прикрепляйте оба slave EA к одному счёту. Полное руководство по развёртыванию — в мастере настройки дашборда.

  • Master Publisher (MasterPublisher.mq5) — Только один мастер-счёт MT5. POST /api/sync (публикует позиции мастера).
  • Slave Subscriber (SlaveSubscriber.mq5) — Каждый slave-счёт копирования MT5. GET /api/positions (зеркалит мастера).
  • TV Slave (TVEchoSlave.mq5) — Каждый MT5-счёт зеркала TV. GET /api/positions?source=tv (зеркалит TradingView).

Правила

  • Используйте один и тот же PositionRelay User ID на каждом EA.
  • Запускайте MasterPublisher ровно на одном терминале — вашем мастер-счёте MT5.
  • Используйте SlaveSubscriber только на терминалах, которые копируют мастера (продукт MT5 Copy).
  • Используйте TVEchoSlave только на терминалах, которые зеркалят сигналы TradingView (продукт TV Sync).
  • Никогда не прикрепляйте SlaveSubscriber и TVEchoSlave к одному терминалу MT5.
  • Запускайте только один экземпляр slave EA на терминал (одного графика достаточно — не прикрепляйте один и тот же EA к нескольким графикам).
  • Задайте уникальный InpAccountLabel на каждом slave-терминале (метки общие для MT5 copy slaves и TV slaves).
  • Включите Algo Trading на каждом терминале (и на VPS / виртуальном хостинге, если используете).
  • Разрешите WebRequest для https://ea-sync-production.up.railway.app в MT5 (Tools → Options → Expert Advisors).
  • Webhook URL алерта TradingView: https://positionrelay.com/api/webhook (скопируйте из настройки дашборда).

Пример: все три EA одновременно: Терминал 1 — мастер → MasterPublisher ((необязательная метка)); Терминал 2 — prop copy → SlaveSubscriber (FTMO_01); Терминал 3 — TV mirror → TVEchoSlave (TV_FTMO_01). Алерты TradingView идут на https://positionrelay.com/api/webhook — не через MasterPublisher.

Требования

  • План TradingView Plus или выше (поле Webhook URL)
  • Включённая 2FA на аккаунте TradingView
  • Активная подписка PositionRelay с TV Sync (Pro/Ultimate или аддон Starter)

Включить TV Sync

  1. Зарегистрируйтесь и оформите подписку на PositionRelay, затем откройте мастер настройки дашборда.
  2. Выберите вкладку TradingView Sync .
  3. Скопируйте Webhook URL, секрет webhook и сниппет импорта Pine.

Библиотека Pine

  1. Откройте опубликованную библиотеку StrategyWebhookJson на TradingView (lifestylemaniacsrt/StrategyWebhookJson).
  2. Ваша стратегия должна начинаться с //@version=6 в строке 1 (библиотеки требуют Pine v6).
  3. Используйте Copy to clipboard на странице библиотеки только для строки import.

Тестовая стратегия

Вставьте всю стратегию Webhook Alert Test ниже в новый Pine strategy (не indicator). Замените секрет webhook из мастера настройки. Не вставляйте только строку import — это вызывает ошибки «Pine version unspecified».

Webhook Alert Test (скопируйте весь скрипт)

//@version=6
strategy("Webhook Alert Test", overlay=true)
import lifestylemaniacsrt/StrategyWebhookJson/1 as wh

var wh.Config cfg = wh.init("YOUR_WEBHOOK_SECRET", wh.Mode.CloudOnly)

float fastMa = ta.sma(close, 14)
float slowMa = ta.sma(close, 28)

if ta.crossover(fastMa, slowMa) and strategy.position_size == 0
    strategy.entry("Long", strategy.long,
      alert_message = wh.openMsg(cfg, "Long", "buy", 0.1, close * 0.99, close * 1.02))

if ta.crossunder(fastMa, slowMa) and strategy.position_size > 0
    strategy.close("Long",
      alert_message = wh.closeMsg(cfg, "Long"))

Используйте echo.Mode.CloudOnly для тестирования только webhook. Передайте объект cfg из init() в openMsg и closeMsg.

Настройка уведомлений

  1. Примените стратегию к графику.
  2. Создайте алерт → Condition: ваша стратегия → Order fills only.
  3. Поле Message: {{strategy.order.alert_message}}
  4. Включите Webhook URL и вставьте webhook URL из дашборда (https://positionrelay.com/api/webhook).
  5. Trigger: Once per bar close (рекомендуется).

MT5 TV Slave EA

  1. Установите PositionRelay TV Slave Subscriber из MQL5 Market.
  2. Прикрепите EA к одному графику на каждом MT5-счёте подписчика.
  3. Укажите InpUserId равным вашему PositionRelay User ID и уникальный InpAccountLabel для каждого slave.
  4. Включите Algo Trading и разрешите WebRequest для https://ea-sync-production.up.railway.app (Tools → Options → Expert Advisors).

EA использует встроенные эндпоинты на https://ea-sync-production.up.railway.app: /api/positions?source=tv и /api/sync. Алерты TradingView используют https://positionrelay.com/api/webhook.

Лимиты скорости

TradingView может ограничивать алерты (~15 за 3 минуты). PositionRelay дедуплицирует повторы по signalId.

Безопасность

  • Никогда не помещайте учётные данные брокера в сообщение алерта.
  • Смените секрет webhook в дашборде, если он был раскрыт.

Устранение неполадок

  • Pine version unspecified или ошибки import : добавьте //@version=6 в строку 1 и вставьте полную стратегию Webhook Alert Test, а не только строку import.
  • Запускайте только один источник на slave EA — не зеркальте одновременно MT5 master и TV-сигналы на одном slave.
  • Убедитесь, что TV Sync включён в вашем плане, прежде чем использовать вкладку настройки.

← Страница продукта TradingView