Обзор
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
- Зарегистрируйтесь и оформите подписку на PositionRelay, затем откройте мастер настройки дашборда.
- Выберите вкладку TradingView Sync .
- Скопируйте Webhook URL, секрет webhook и сниппет импорта Pine.
Библиотека Pine
- Откройте опубликованную библиотеку StrategyWebhookJson на TradingView (
lifestylemaniacsrt/StrategyWebhookJson). - Ваша стратегия должна начинаться с
//@version=6в строке 1 (библиотеки требуют Pine v6). - Используйте 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.
Настройка уведомлений
- Примените стратегию к графику.
- Создайте алерт → Condition: ваша стратегия → Order fills only.
- Поле Message:
{{strategy.order.alert_message}} - Включите Webhook URL и вставьте webhook URL из дашборда (
https://positionrelay.com/api/webhook). - Trigger: Once per bar close (рекомендуется).
MT5 TV Slave EA
- Установите PositionRelay TV Slave Subscriber из MQL5 Market.
- Прикрепите EA к одному графику на каждом MT5-счёте подписчика.
- Укажите
InpUserIdравным вашему PositionRelay User ID и уникальныйInpAccountLabelдля каждого slave. - Включите 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 включён в вашем плане, прежде чем использовать вкладку настройки.

