logo
TradFi

페멕스 시그널 트레이딩 웨훅 알림 설정 가이드 및 방법

TradingView 전략을 Phemex 시그널 트레이딩에 연동하려면, 아래 JSON 템플릿을 TradingView 알림의 Message 필드에 붙여넣고, Phemex에서 발급받은 signalToken을 입력한 뒤, 알림을 Phemex의 webhook URL로 전송하세요. 이렇게 하면 Phemex가 매수/매도 시그널을 자동으로 복제하여 거래를 실행합니다. 단계별 가이드에 대해서는 다음 문서를 참고하세요 > Phemex에서 시그널 트레이딩 봇 사용법 (웹)

알림 포맷

아래 JSON 템플릿을 TradingView 알림의 Message 필드에 복사해 넣으세요. 중괄호로 된 변수들은 TradingView 전략 변수를 나타내며, 실시간으로 자동 채워집니다.

{   "id": "{{strategy.order.id}}",   "symbol": "{{ticker}}",   "action": "{{strategy.order.action}}",   "qty": "{{strategy.order.contracts}}",   "price": "{{strategy.order.price}}",   "type": "Limit",   "marketPosition": "{{strategy.market_position}}",   "prevMarketPosition": "{{strategy.prev_market_position}}",   "marketPositionSize": "{{strategy.market_position_size}}",   "prevMarketPositionSize": "{{strategy.prev_market_position_size}}",   "signalToken": "POdKsisSLkUxWXXIcjlx-eh_4UDuqfgYXL2KKX5wbOgazrhgKhdNhLoUb8OQK_xv0RnLdIclDFOOfqL6sfXwzkBJTN6n9v-U4qgwWK5YCtMP38IG1UJ91dsn2cw=",   "timestamp": "{{timenow}}" }

파라미터 참고

파라미터 필수 여부 값 설명
id 필수 TradingView의 {{strategy.order.id}} 주문 ID - 주문의 식별자. 전략 함수(strategy.entry, strategy.exit, strategy.order)에 지정한 문자열을 반환합니다.
symbol 필수 TradingView의 {{ticker}} 종목명 - Phemex에서 사용하는 심볼명과 반드시 일치해야 합니다.
action 필수 TradingView의 {{strategy.order.action}} 주문 방향 - "buy"(매수) 또는 "sell"(매도)를 반환. 매수: 롱 포지션 신규 진입/숏 포지션 청산, 매도: 숏 포지션 신규 진입/롱 포지션 청산.
qty 옵션 TradingView의 {{strategy.order.contracts}} 주문 수량 - 예시: BTCUSDT에 0.001 수량으로 주문. 값이 동일하게 매칭되어야 합니다.
price 필수 TradingView의 {{strategy.order.price}} 지정가 주문 가격 - 본 시그널 전략은 모든 주문을 지정가로 처리합니다.
type 옵션 기본값 "Limit"이며, 필요시 "Market"으로 변경 가능 주문 방식 - 지정가(Limit)로 주문하려면 "Limit" 사용, 시장가(Market) 주문 시에는 "Market" 사용
marketPosition 옵션 TradingView의 {{strategy.market_position}} marketPosition - 주문 실행 시점의 예상 포지션 상태. "long"(롱), "flat"(무포지션), "short"(숏) 중 하나
prevMarketPosition 옵션 TradingView의 {{strategy.prev_market_position}} 이전 포지션 상태 - 주문 실행 직전의 포지션 상태("long", "flat", "short") 반환
marketPositionSize 옵션 TradingView의 {{strategy.market_position_size}} marketPositionSize - 주문 실행 시점의 예상 포지션 수량
prevMarketPositionSize 옵션 TradingView의 {{strategy.prev_market_position_size}} 이전 포지션 수량 - 주문 실행 직전의 포지션 수량
signalToken 필수 Phemex에서 시그널 생성 시 제공 시그널 코드 - 알림의 인증을 위한 값. 외부 요청의 적합성과 권한을 검증. Phemex에서 시그널 생성 시 자동 발급되며, TradingView 알림 메시지에 반드시 입력해야 함.
timestamp 필수 TradingView의 {{timenow}} 주문 타임스탬프

예시

예시 1: 롱 포지션 오픈 → 롱 포지션 전량 청산 (Close All)

// BTCUSDT 롱 포지션 오픈, 진입가: 40,000, 수량: 0.001
{ "id": "id_9b4b19b3d112", "symbol": "BTCUSDT", "action": "buy", "qty": 0.001, "price": 40000, "type": "Limit", "marketPosition": "long", "prevMarketPosition": "flat", "marketPositionSize": 0.001, "prevMarketPositionSize": 0, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T10:51:58Z" }
// BTCUSDT 롱 포지션 전량 청산, 청산가: 41,000, 청산수량: 0.001
{ "id": "id_9b4b19b3d113", "symbol": "BTCUSDT", "action": "sell", "qty": 0.001, "price": 41000, "type": "Limit", "marketPosition": "flat", "prevMarketPosition": "long", "marketPositionSize": 0, "prevMarketPositionSize": 0.001, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T11:51:58Z" }

예시 2: 롱 → 숏 (원스텝 반전)

// BTCUSDT 롱 포지션 오픈, 진입가: 40,000, 수량: 0.001
{ "id": "id_9b4b19b3d112", "symbol": "BTCUSDT", "action": "buy", "qty": 0.001, "price": 40000, "type": "Limit", "marketPosition": "long", "prevMarketPosition": "flat", "marketPositionSize": 0.001, "prevMarketPositionSize": 0, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T10:51:58Z" }
// BTCUSDT 숏 포지션 오픈, 진입가: 41,000, 수량: 0.002
// 만약 qty > posQty일 경우, 0.001 롱 포지션 전량 청산 후 0.001 숏 포지션 신규 오픈(반전) 처리됨
{ "id": "id_9b4b19b3d113", "symbol": "BTCUSDT", "action": "sell", "qty": 0.002, "price": 41000, "type": "Limit", "marketPosition": "short", "prevMarketPosition": "long", "marketPositionSize": 0.001, "prevMarketPositionSize": 0.001, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T11:51:58Z" }

예시 3: 롱 포지션 오픈 → 부분 청산 → 전량 청산

// BTCUSDT 롱 포지션 오픈, 진입가: 40,000, 수량: 0.002
{ "id": "id_9b4b19b3d112", "symbol": "BTCUSDT", "action": "buy", "qty": 0.002, "price": 40000, "type": "Limit", "marketPosition": "long", "prevMarketPosition": "flat", "marketPositionSize": 0.002, "prevMarketPositionSize": 0, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T10:51:58Z" }
// BTCUSDT 롱 포지션 부분 청산, 청산가: 41,000, 청산수량: 0.001
{ "id": "id_9b4b19b3d113", "symbol": "BTCUSDT", "action": "sell", "qty": 0.001, "price": 41000, "type": "Limit", "marketPosition": "long", "prevMarketPosition": "long", "marketPositionSize": 0.001, "prevMarketPositionSize": 0.002, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T11:51:58Z" }
// BTCUSDT 롱 포지션 전량 청산, 청산가: 42,000, 청산수량: 0.001
{ "id": "id_9b4b19b3d114", "symbol": "BTCUSDT", "action": "sell", "qty": 0.001, "price": 42000, "type": "Limit", "marketPosition": "flat", "prevMarketPosition": "long", "marketPositionSize": 0, "prevMarketPositionSize": 0.001, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T12:51:58Z" }

예시 4: 롱 시장가 진입 → 롱 시장가 청산

// BTCUSDT 롱 포지션 오픈, 진입가: 40,000, 수량: 0.001
{ "id": "id_9b4b19b3d112", "symbol": "BTCUSDT", "action": "buy", "qty": 0.001, "price": 40000, "type": "Market", "marketPosition": "long", "prevMarketPosition": "flat", "marketPositionSize": 0.001, "prevMarketPositionSize": 0, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T10:51:58Z" }
// BTCUSDT 롱 포지션 시장가 전량 청산, 청산가: 41,000, 청산수량: 0.001
{ "id": "id_9b4b19b3d113", "symbol": "BTCUSDT", "action": "sell", "qty": 0.001, "price": 41000, "type": "Market", "marketPosition": "flat", "prevMarketPosition": "long", "marketPositionSize": 0, "prevMarketPositionSize": 0.001, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T11:51:58Z" }

관련 문서

Sorry we couldn't help — let us assist you directly

Choose a contact method — support responds within 2 minutes:

Submit Ticket

Log in to check your account status in real time