비공개 스크립트 자동매매
소스가 보호된 트레이딩뷰 스크립트나 초대 전용 스크립트를 TVExtBot 주문메시지와 연결해 자동매매하는 방법. 인풋에 주문ID를 넣는 방식과, 코드를 고칠 수 없을 때 조건식으로 매수·매도 메시지를 골라 실행하는 방식을 예제로 설명합니다.
소스가 보이지 않는 보호 스크립트나 초대 전용 스크립트도 주문메시지와 연결할 수 있습니다. 코드를 고칠 수 없으니 전략 변환은 쓸 수 없고, 스크립트 종류에 따라 아래 방법 중 하나를 씁니다.
| 스크립트 | 방법 |
|---|---|
| 인풋에 인증키·주문ID 칸이 있는 전략 | 인풋에 주문ID 넣기 |
| 주문메시지 칸이 없는 전략 | 조건식으로 메시지 고르기 |
| 지표(얼러트 조건이 있는 것) | 얼러트 조건마다 메시지 넣기 |
인풋에 주문ID 넣기
작성자가 TVExtBot용으로 만든 전략은 인풋 화면에 인증키·주문ID·메모 칸이 있습니다. 소스가 숨겨져 있어도 인풋은 고칠 수 있으므로, 공개 전략과 같은 방법으로 씁니다.
주문메시지 저장
「메시지 작성」에서 진입·청산 메시지를 만들어 리스트에 저장합니다. 각 메시지의 주문ID를 확인해 둡니다.
인풋에 입력
차트에 전략을 넣고 인풋 화면에 인증키, 주문ID, 메모를 넣습니다.
예시는 하이킨아시 업스윙을 보세요.
인풋에 넣은 인증키는
인풋 값은 내 차트 설정에만 저장되고, 스크립트 작성자에게는 보이지 않습니다.
조건식으로 메시지 고르기
주문메시지 칸이 없는 전략은 얼러트 메시지 칸에 전체 메시지를 여러 줄 넣습니다.
전략 얼러트는 진입이든 청산이든 체결될 때마다 같은 메시지를 보냅니다.
그래서 줄마다 조건식(condition_exp)을 붙여, 맞는 줄만 실행되게 합니다.
롱만 하는 전략: 매수 체결이면 첫 줄(진입), 매도 체결이면 둘째 줄(청산)만 실행됩니다.
TVM:{"exchange":"binance-futures","account":"기본계정","symbol":"BTC/USDT","type":"market","side":"buy","bal_pct":20,"condition_exp":"buy={{strategy.order.action}}","token":"인증키"}:MVT
TVM:{"exchange":"binance-futures","account":"기본계정","symbol":"BTC/USDT","type":"market","side":"close","condition_exp":"sell={{strategy.order.action}}","token":"인증키"}:MVT메시지 만들기
「메시지 작성」에서 진입·청산 메시지를 각각 만듭니다.
⑤ 실행 조건의 「조건식」에 진입은 buy={{strategy.order.action}}, 청산은 sell={{strategy.order.action}}을 넣습니다.
전체 메시지 붙여넣기
미리보기의 [전체 메시지]를 복사해, 전략 얼러트 메시지 칸에 한 줄에 하나씩 붙여넣습니다.
청산 종류가 여러 개일 때
분할 청산과 전량 청산처럼 매도가 여러 종류면 {{strategy.order.comment}}로 나눕니다.
주문의 comment는 차트 아래 전략 테스터 → 거래 목록의 신호 이름에서 확인합니다.
예: 분할 청산의 신호 이름이 part, 전량 청산이 close라면
TVM:{"exchange":"binance-futures",...,"side":"close",(분할 수량),"condition_exp":"part={{strategy.order.comment}}","token":"인증키"}:MVT
TVM:{"exchange":"binance-futures",...,"side":"close","condition_exp":"close={{strategy.order.comment}}","token":"인증키"}:MVT위 예시는 형식만 보여 줍니다. 수량 부분은 「메시지 작성」에서 분할 청산 메시지를 만들어 그대로 쓰세요.
조건식 방식의 주의사항
- 단축 메시지(주문ID)로는 안 되고 전체 메시지만 됩니다. 트레이딩뷰는 얼러트 메시지 칸의 플레이스홀더만 바꾸고, 리스트에 저장된 메시지는 바꾸지 않습니다.
- 메시지를 고치면 얼러트를 다시 만들어야 합니다.
- 롱·숏을 오가는 전략은
buy·sell만으로 진입과 청산을 구분할 수 없습니다. 신호 이름({{strategy.order.comment}}또는{{strategy.order.id}})으로 나누세요. - 조건식이 맞지 않는 줄은 알림 없이 건너뜁니다. 아무 주문도 안 나가면 신호 이름이 정확한지 먼저 확인하세요.
- 전략이 수량을 직접 계산하게 하려면 전략 수량대로 주문을 함께 보세요.
얼러트 조건마다 메시지 넣기
비공개 지표는 얼러트 조건(alertcondition)을 골라 얼러트를 만듭니다.
조건마다 얼러트를 하나씩 만들고, 메시지 칸에 그 신호에 맞는 주문메시지(단축 메시지도 됨)를 넣습니다.
→ 얼러트 메시지 정리
비공개 스크립트를 고를 때
코드를 볼 수 없어 리페인팅 여부나 로직을 확인하기 어렵습니다. 여러 기간·종목으로 백테스트하고, 테스트넷에서 실제 얼러트를 충분히 확인한 뒤 쓰세요.
전략 수량대로 주문
트레이딩뷰 전략이 계산한 주문 수량({{strategy.order.contracts}})과 가격({{close}})을 TVExtBot 전체 주문메시지에 넣어 그대로 주문하는 방법을 롱 전략 예제와 조건식, 주의사항으로 설명합니다.
전략 변환
트레이딩뷰에 공개된 파인스크립트 전략(strategy)·지표(indicator) 코드를 붙여넣으면 TVExtBot 확장프로그램이 단축 주문메시지(주문ID)를 연결하고 백테스트 기간 설정을 추가해 줍니다. 선택형 진입 필터, 코드 확인, 주문메시지 연결, 트레이딩뷰 얼러트 설정까지 설명합니다.