개요
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 제품).
- TVEchoSlave는 TradingView 신호를 미러링하는 터미널에서만 사용하세요 (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 활성화
- TV Sync가 포함된 활성 PositionRelay 구독(Pro/Ultimate 또는 Starter 애드온)
TV Sync 활성화
- PositionRelay에 가입·구독한 뒤 대시보드 설정 마법사를 엽니다.
- 탭 TradingView Sync 을(를) 선택합니다.
- Webhook URL, webhook 시크릿, Pine import 스니펫을 복사합니다.
Pine 라이브러리
- 게시된 TradingView의 StrategyWebhookJson 라이브러리 를 엽니다(
lifestylemaniacsrt/StrategyWebhookJson). - 전략은
//@version=6로 1행을 시작해야 합니다(라이브러리는 Pine v6 필요). - 라이브러리 페이지에서 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"))webhook 전용 테스트에는 echo.Mode.CloudOnly 을(를) 사용하세요. 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 슬레이브 EA
- 설치: PositionRelay TV Slave Subscriber 출처: MQL5 Market.
- 각 MT5 팔로워 계정에서 차트 하나에 EA를 붙입니다.
- 설정:
InpUserId를 PositionRelay User ID로, slave마다 고유한InpAccountLabel. - 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는 알림을 제한할 수 있습니다(약 3분당 15개). PositionRelay는 재시도를 signalId로 중복 제거합니다.
보안
- 알림 메시지에 브로커 자격 증명을 넣지 마세요.
- webhook 시크릿이 노출되면 대시보드에서 교체하세요.
문제 해결
- Pine version unspecified 또는
import오류: 1행에//@version=6을(를) 추가하고 import 줄만이 아니라 전체 Webhook Alert Test 전략을 붙여넣으세요. - slave EA당 소스 하나만 — 같은 slave에서 MT5 master와 TV 신호를 동시에 미러링하지 마세요.
- 설정 탭을 쓰기 전에 플랜에 TV Sync가 켜져 있는지 확인하세요.

