产品展示 / TradingView → MT5 / 设置

TradingView → MT5

TradingView 设置

将 Pine 脚本警报连接到 PositionRelay 和 MT5 从站。

概述

PositionRelay TV Sync 将 TradingView 策略警报连接到 MetaTrader 5 跟随账户。您的 Pine 策略通过 StrategyWebhookJson 库格式化 webhook JSON;PositionRelay 将警报摄入虚拟源账户;TV Slave EA 在每个 MT5 slave 上镜像开仓、平仓与修改操作。

所有三个 EA(无冲突)

您可以在同一个 PositionRelay 账户上同时运行 MT5 Copy 和 TV Sync。请为每个 EA 使用独立的 MT5 终端——切勿将两个 slave EA 挂到同一账户。完整部署指南见 仪表盘设置向导

  • Master Publisher (MasterPublisher.mq5) — 仅一个 MT5 主账户. POST /api/sync(发布主账户持仓).
  • Slave Subscriber (SlaveSubscriber.mq5) — 每个 MT5 跟单从账户. GET /api/positions(镜像主账户).
  • TV Slave (TVEchoSlave.mq5) — 每个 MT5 TV 镜像账户. GET /api/positions?source=tv(镜像 TradingView).

规则

  • 在每个 EA 上使用相同的 PositionRelay User ID。
  • 仅在一个终端上运行 MasterPublisher — 即您的 MT5 主账户。
  • 仅在复制主账户的终端上使用 SlaveSubscriber(MT5 Copy 产品)。
  • 仅在镜像 TradingView 信号的终端上使用 TVEchoSlave(TV Sync 产品)。
  • 切勿将 SlaveSubscriber 和 TVEchoSlave 挂到同一 MT5 终端。
  • 每个终端仅运行一个从 EA 实例(一个图表即可 — 不要把同一 EA 挂到多个图表)。
  • 为每个从终端设置唯一的 InpAccountLabel(标签在 MT5 跟单从账户与 TV 从账户之间共享)。
  • 在每个终端启用 Algo Trading(如使用 VPS / 虚拟主机也请启用)。
  • 在 MT5 中允许对 https://ea-sync-production.up.railway.app 的 WebRequest(Tools → Options → Expert Advisors)。
  • TradingView 警报 webhook URL:https://positionrelay.com/api/webhook(从仪表盘设置复制)。

示例:同时运行全部三个 EA: 终端 1 — master → 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 字段)
  • TradingView 账户已启用 2FA
  • 有效的 PositionRelay 订阅并含 TV Sync(Pro/Ultimate 或 Starter 附加组件

启用TV Sync

  1. 在 PositionRelay 注册并订阅,然后打开 仪表盘设置向导
  2. 选择 TradingView Sync 选项卡。
  3. 复制您的 Webhook URL、webhook 密钥以及 Pine import 代码片段。

Pine 库

  1. 打开已发布的 TradingView 上的 StrategyWebhookJson 库 lifestylemaniacsrt/StrategyWebhookJson)。
  2. 您的策略必须以 //@version=6 作为第 1 行开头(库需要 Pine v6)。
  3. 在库页面仅对 import 行使用 Copy to clipboard

测试策略

将下方完整的 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 电视从机 EA

  1. 安装 PositionRelay TV Slave Subscriber 来自 MQL5 Market
  2. 在每个 MT5 跟随账户上将该 EA 挂到一张图表。
  3. InpUserId 设为您的 PositionRelay User ID,并为每个 slave 设置唯一的 InpAccountLabel
  4. 启用 Algo Trading,并为 https://ea-sync-production.up.railway.app 允许 WebRequest(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 可能会限制警报(约每 3 分钟 15 条)。PositionRelay 通过 signalId对重试去重。

安全性

  • 切勿在警报消息中放入经纪商凭据。
  • 若 webhook 密钥泄露,请从仪表盘轮换密钥。

故障排除

  • Pine version unspecified import 错误:将 //@version=6 作为第 1 行,并粘贴完整的 Webhook Alert Test 策略,而不是仅粘贴 import 行。
  • 每个 slave EA 只运行一个源——不要在同一 slave 上同时镜像 MT5 master 和 TV 信号。
  • 使用设置选项卡前,请确认您的套餐已启用 TV Sync。

← TradingView 产品页面