주문메시지 항목 설명
주문메시지(TVM)의 각 항목이 무슨 뜻인지, 거래소마다 무엇이 다른지 정리한 참고 문서입니다.
주문메시지가 어떤 주문을 내는지 확인할 때 보는 참고 문서입니다. 주문이 생각과 다르게 들어갈 때 원인을 찾는 데도 씁니다.
먼저 읽어 주세요
- 주문메시지는 꼭 「메시지 작성」에서 만드세요. 거래소에서 안 되는 조합을 자동으로 막아 줍니다.
- 직접 고치다 따옴표·쉼표 하나만 틀려도 주문되지 않습니다.
- 내용을 바꿀 때는 다시 만들거나 단축 주문메시지를 쓰세요.
- 직접 바꿔도 되는 것은 전략 수량·가격 플레이스홀더와 테스트 모드뿐입니다.
1. 구조
TVM:{"exchange":"binance","account":"기본계정","symbol":"BTC/USDT","type":"limit","side":"sell","price":"last","amount":0.01,"token":"인증키"}:MVTTVM:으로 시작해:MVT로 끝납니다.- 가운데는
"항목":값을 쉼표로 이은 JSON입니다.
| 한도 | 값 |
|---|---|
| 얼러트 하나에 넣는 메시지 | 최대 20개 |
| 메시지 리스트 저장 (유료) | 최대 1000개 |
| 메시지 리스트 저장 (무료) | 최대 20개 |
여러 주문을 차례로
메시지를 한 줄에 하나씩 이어 붙이면 위에서부터 차례로 실행합니다.
TVM:{"exchange":"bybit","account":"기본계정","symbol":"BTC/USDT","type":"market","side":"sell_close","token":"인증키"}:MVT
TVM:{"exchange":"bybit","account":"기본계정","symbol":"BTC/USDT","type":"market","side":"buy","bal_pct":30,"token":"인증키"}:MVTTVM:{"exchange":"bybit","account":"기본계정","symbol":"BTC/USDT","type":"market","side":"buy","bal_pct":30,"token":"인증키"}:MVT
TVM:{"exchange":"bybit","account":"서브계정","symbol":"BTC/USDT","type":"market","side":"buy","bal_pct":30,"token":"인증키"}:MVT- 앞 주문이 실패해도 다음 주문은 실행됩니다. 실패는 텔레그램으로 확인하세요.
- 메시지마다 분당 주문 횟수에 들어갑니다.
- 사이에 간격이 필요하면 뒤 메시지에 지연시간(
delay)을 넣습니다. - 단축 주문메시지도 같은 방법으로 이어 붙일 수 있습니다.
전략 수량대로 주문
전체 메시지의 amount에 {{strategy.order.contracts}}를 넣으면 전략이 계산한 수량으로 주문합니다.
- 전체 메시지에서만 됩니다. 단축 메시지와 전략 변환은 저장한 수량을 씁니다.
- 진입·청산마다 같은 메시지가 와서 조건식으로 나눠야 합니다.
예제와 순서는 전략 수량대로 주문을 따라 해 주세요.
2. 기본 항목
| 항목 | 뜻 | 값 / 예 | 필수 |
|---|---|---|---|
exchange | 거래소 | upbit, binance-futures … (거래소별 값) | 필수 |
account | API키 등록의 계정명 | 기본계정(옛 메시지의 *도 기본계정) | 필수 |
symbol | 종목 | BTC/USDT, BTC/KRW | 필수(전부청산 제외) |
type | 주문유형 | market 시장가, limit 지정가 | 필수(전부청산 제외) |
side | 주문방법 | buy, sell, close … (값) | 필수 |
price | 주문가격 | last, bid, ask, avg, 숫자 | 지정가일 때 |
price_pct | 주문가격 조정(%) | -1 = 1% 낮게 | 선택 |
amount | 수량(개수·금액) | 0.01 | 수량 중 하나 |
amount_type | amount의 단위 | krw, usdt, usdc, usd … | 선택 |
bal_pct | 수량(자산 대비 %) | 30 | 수량 중 하나 |
equity | bal_pct의 기준 | 없음 = 잔액, "y" = 총자산 | 선택 |
delay | 실행 지연(초) | 최대 300 | 선택 |
token | 인증키 | 자동으로 들어감 | 웹훅 사용 시 |
주문가격 price
| 값 | 뜻 |
|---|---|
last | 마지막 체결가 |
bid | 매수호가 중 가장 높은 값 |
ask | 매도호가 중 가장 낮은 값 |
avg | 포지션 평균가 (선물·업비트만. 포지션이 없으면 마지막 체결가) |
| 숫자 | 직접 넣은 가격 |
price_pct로 가격을 % 만큼 옮깁니다.
지정가 매수를 더 싸게 하려면 -1, 지정가 매도를 더 비싸게 하려면 1.
주문수량 amount · bal_pct · equity
amount: 기본은 코인 개수입니다.amount_type을krw(빗썸·업비트)나usdt로 하면 금액만큼 주문합니다.- 일부 선물 마켓은 계약 수량입니다. → 거래소별
bal_pct: 자산 대비 %입니다. 수수료 때문에 99% 이하를 권합니다.equity:- 잔액 대비(기본): 주문 가능한 현금이 기준. 전액 매수·매도, 포지션 안 청산에 씁니다.
- 총자산 대비(
"equity":"y"): 현금 + 코인이 기준. 분할매수를 같은 금액으로 할 때 씁니다.
잔액 대비 vs 총자산 대비
총자산 300만원 (현금 100만 + BTC 100만 + ETH 100만)일 때
- 잔액 대비 20% × 2번: 20만원 → 16만원 (줄어듦)
- 총자산 대비 10% × 2번: 30만원 → 30만원 (같음)
레버리지를 쓰면 넣은 수량에 레버리지 배수를 곱해 주문합니다.
3. 주문방법 side
| 값 | 뜻 | 쓰는 곳 |
|---|---|---|
buy | 매수 (롱 진입) | 전체 |
sell | 매도 (숏 진입, 현물은 보유 코인 매도) | 전체 |
close | 청산 | 선물 한방향 모드 |
buy_close | 롱 포지션 청산 | 선물 양방향 모드 |
sell_close | 숏 포지션 청산 | 선물 양방향 모드 |
close_all | 계정의 모든 포지션 시장가 청산 | 선물 |
- 청산 수량을 비우면 100% 청산합니다.
- 분할청산은 수량(%)을 잔액 대비로 넣습니다.
close_all은 종목·유형·수량 없이 항상 시장가 100%입니다.- 어느 모드인지는 거래소·마켓이 정합니다. → 거래소별
TVM:{"exchange":"bybit","account":"기본계정","side":"close_all","token":"인증키"}:MVT4. 공통 추가 옵션
| 항목 | 하는 일 | 값 |
|---|---|---|
open_order | 미체결 먼저 취소 후 주문 | "cancel" 전부, "cancel-buy", "cancel-sell" |
same_order | 직전과 같은 주문이면 건너뜀 | "skip", "skip-10s" ~ "skip-24h" |
trading_time | 이 시간대의 얼러트만 실행 | "09:00-18:00", "21:30-06:00" |
condition_exp | 조건식이 참일 때만 실행 | "buy={{strategy.order.action}}" |
extended_hours | 장외 거래 | true → 자세히 |
slippage | 시장가 허용 폭(%) | 0~5, 기본 0.5 → 자세히 |
cancel_after | 미체결 자동 취소(초) | 1~600 → 자세히 |
dry_run | 테스트 모드 — 주문 직전에 멈춤 | true (따옴표 없이) |
- 시간대 밖이거나 조건식이 거짓이면 알림 없이 건너뜁니다.
- 조건식에는
=,<,>와 플레이스홀더를 씁니다. - 같은 주문 건너뛰기는 선물에 포지션이 없으면 적용되지 않습니다.
조건식 예
buy={{strategy.order.action}}— 전략 주문이 매수일 때만sell={{strategy.order.action}}— 매도일 때만{{strategy.order.price}}>100— 체결가가 100보다 클 때만
전략 얼러트 하나에 매수·매도 메시지를 다 넣고 조건식으로 골라 실행할 수 있습니다. → 플레이스홀더 목록
옵션을 바꾸려면 「메시지 작성」에서 고칩니다.
- 전체 메시지를 쓰면: 다시 만들어 얼러트에 붙여넣습니다.
- 단축 메시지(주문ID)를 쓰면: 저장된 메시지만 고치면 됩니다. → 차이
테스트 모드 dry_run
- 실제 주문 없이 얼러트와 메시지 내용을 확인할 때 씁니다.
예)
…,"bal_pct":30,"dry_run":true,"token":"인증키"}:MVT - 꼭 따옴표 없이
true."dry_run":"true"로 쓰면 실제로 주문합니다. - API키 연결까지 확인하고 주문 직전에 멈춥니다. 결과는 텔레그램(🧪)으로만 옵니다. → 알림봇
- 최소 수량·잔고·포지션은 확인하지 않습니다. 그것까지 보려면 테스트넷을 쓰세요.
- 단축 메시지는 고치지 말고 리스트의 테스트 모드 버튼을 쓰세요.
- 확인이 끝나면
"dry_run":true를 지우고 얼러트를 다시 만들어야 주문합니다.
장외 거래
「메시지 작성」 → 실행 조건 → 장외 거래를 켜면 정규장 밖에도 주문합니다.
메시지에는 "extended_hours":true가 들어갑니다.
| 증권사·계좌 | 국내 NXT | 미국 주간거래 |
|---|---|---|
| 한국투자증권 실전 | 지원 | 지원 |
| 키움증권 실전 | 지원 | 미지원 |
| 한투·키움 모의투자 | 미지원 | 미지원 |
시간은 한국시간입니다.
- 국내 NXT
- 프리마켓 08:00–08:50, 애프터마켓 주문 15:30–20:00 (체결은 15:40부터)
- NXT에서 거래되는 종목만 주문합니다. KRX 장외시장으로 자동 전환하지 않습니다.
- 한투 미국 주간거래
- 한국 10:00부터 뉴욕 04:00까지 (서머타임 한국 17:00, 표준시 18:00 종료)
- 한국시간 월–금 낮입니다.
- 한투 미국 프리·애프터마켓
- 장외 거래를 켜지 않아도 주문합니다. 휴장·종목 제한으로 거부될 수 있습니다.
장외 거래를 켜도 모든 시간·모든 종목이 되는 것은 아닙니다. 정규장은 기존 방식으로 주문합니다.
시장가 허용 폭
아래 시장가 주문은 증권사에 시장성 지정가로 냅니다.
- 한투 미국 주식 시장가
- 한투·키움 국내 NXT 시간의 시장가
허용 폭 입력란은 「시장가」를 고르고 아래 조건일 때만 나옵니다.
| 거래소·주문 | 허용 폭 |
|---|---|
| 한투 실전 미국 + 시장가 | 가능 |
| 한투 실전 국내 + 시장가 + 장외 거래 켬 | 가능 |
| 키움 실전 국내 + 시장가 + 장외 거래 켬 | 가능 |
| 국내 시장가 + 장외 거래 끔 | 불가 |
| 지정가 · 키움 미국 시장가 · 모의투자 · 코인 거래소 | 불가 |
- 범위 0–5%, 비우면 0.5%. 항목 이름은
slippage입니다. - 국내는 입력란이 보여도 NXT 시간에만 적용됩니다. KRX 정규장은 기존 시장가입니다.
| 주문 | 증권사에 내는 지정가 |
|---|---|
| 매수 | 매도 1호가 × (1 + 허용 폭/100), 호가 단위 올림 |
| 매도 | 매수 1호가 × (1 − 허용 폭/100), 호가 단위 내림 |
미체결 자동 취소
「메시지 작성」 → 실행 조건 → 미체결 자동 취소에 1–600초를 넣습니다. 비우면 꺼집니다.
항목 이름은 cancel_after입니다.
- 시간이 지나면 남은 수량만 취소합니다. 체결된 부분은 그대로입니다.
- 트레이딩뷰 얼러트 주문에서만 동작합니다. 바로 주문·퀵주문은 해당 없습니다.
- 실제 시장가로 낸 주문(국내 정규장 시장가 등)에는 적용되지 않습니다.
- 취소는 설정 시각보다 조금 늦을 수 있습니다.
| 대상 | 되는 주문 |
|---|---|
| 코인 거래소 | 일반 지정가(조건주문 제외). 페멕스·BingX 선물은 USDT 마켓만 |
| 키움 실전·모의 | 일반 지정가(조건주문 제외) |
| 키움 실전 국내 NXT | 시장성 지정가로 낸 시장가 주문 |
| 한투 실전·모의 | 지정가. 실전은 미국 시장가·국내 NXT 시장성 지정가도 |
알림과 「미체결 먼저 취소」와의 차이
- 정상 취소는 텔레그램(ℹ️)으로만 알려 드립니다.
- 취소 실패·상태 확인 실패는 텔레그램과 에러 메시지에 남습니다. 거래소 앱에서 직접 확인·취소해 주세요.
open_order는 새 주문 전에 기존 미체결을,cancel_after는 이번 주문의 미체결을 나중에 취소합니다.- 한투·키움 시장성 지정가에서 둘을 함께 쓰면, 기존 주문만 취소되고 새 주문은 없을 수 있습니다.
5. 선물 전용 옵션
매수(buy)·매도(sell)에서만 씁니다. 청산에는 못 씁니다.
단, 조건주문은 선물 일반 청산에도 씁니다(현물·close_all 제외).
| 항목 | 하는 일 | 값 / 주의 |
|---|---|---|
position_close | 포지션 청산 후 주문 | true. 양방향 모드는 반대 포지션만 청산 |
reduce_only | 포지션을 줄이기만 | true. 잔액 대비 %, 한방향에서만. 레버리지·목표가·손절가와 같이 못 씀 |
post_only | 지정가가 테이커로 체결되지 않게 | true. 지정가만. 테이커가 되면 취소 |
leverage | 레버리지 | 종목 최대 이하 |
margin_type | 마진모드 | "isolated" 격리, "cross" 교차. 포지션 있으면 못 바꿈 |
tp_pct / tp_price | 목표가 발동 | 매수 +, 매도 − (매수 10 = 10% 위) |
tp_lo_pct / tp_lo_price | 목표가 지정가 (없으면 시장가) | 비트겟 불가 |
sl_pct / sl_price | 손절가 발동 | 매수 −, 매도 + (매수 -5 = 5% 아래) |
sl_lo_pct / sl_lo_price | 손절가 지정가 | 비트겟 불가 |
trailing_stop | 추적손절매 | 바이빗·페멕스 등은 가격 거리, 바이낸스 선물·비트겟·OKX·BingX는 콜백 % |
ts_ac_pct / ts_ac_price | 추적손절매 활성화 가격 | 매수 +, 매도 −. 페멕스·BingX 불가 |
condition_price | 조건주문: 이 가격에 닿으면 주문 | "last", "avg", 가격 |
condition_pct | 조건가격 대비 % | last·avg일 때 필수 |
조건주문은 목표가·손절가·추적손절매와 같이 쓸 수 없습니다. 바이낸스 스탑마켓, 바이빗 조건부 주문과 같은 기능입니다.
TVM:{"exchange":"binance-futures","account":"기본계정","symbol":"BTC/USDT","type":"market","side":"buy","bal_pct":20,"leverage":5,"margin_type":"isolated","tp_pct":3,"sl_pct":-1.5,"token":"인증키"}:MVT6. 거래소별 값과 주의사항
| 거래소 | exchange 값 | 마켓 | 청산 |
|---|---|---|---|
| 빗썸 | bithumb | KRW | 현물 |
| 업비트 | upbit | KRW | 현물 |
| 바이낸스 현물 | binance | USDT, USDC, BTC, BNB | 현물 |
| 바이낸스 선물 | binance-futures | USDT, USDC, USD(COIN-M) | 거래소 설정대로 |
| 바이빗 현물 | bybit-spot | USDT 등 | 현물 |
| 바이빗 선물 | bybit | USDT, USD | USDT 양방향 / USD 한방향 |
| 비트겟 현물 | bitget-spot | USDT 등 | 현물 |
| 비트겟 선물 | bitget | USDT, USD | 양방향 |
| 페멕스 현물 | phemex-spot | USDT 등 | 현물 |
| 페멕스 선물 | phemex | USDT, USD | USDT 양방향 / USD 한방향 |
| OKX 현물 | okx-spot | USDT 등 | 현물 |
| OKX 선물 | okx | USDT, USDC, USD | 양방향 |
| BingX 선물 | bingx | USDT | 양방향 |
| 한국투자증권 | kis | KOSPI, KOSDAQ, NASD, NYSE, AMEX | 주식 |
| 키움증권 | kiwoom | KOSPI, KOSDAQ, NASD, NYSE, AMEX | 주식 |
- 양방향은 청산에
buy_close/sell_close, 한방향은close를 씁니다. - 테스트넷·모의투자 값:
bybit-testnet,bybit-spot-testnet,bitget-testnet,okx-testnet,okx-spot-testnet,phemex-testnet,phemex-spot-testnet,kis-testnet,kiwoom-testnet
7. 자주 하는 실수
| 실수 | 바르게 |
|---|---|
| 목표가·손절가 부호를 반대로 | 롱: 목표 + 손절 − / 숏: 목표 − 손절 + |
| 격리에서 수량 % 를 100 넘게 | 격리는 100 이하 |
양방향 거래소에서 close | buy_close / sell_close. 모드를 바꿨으면 새로 만들기 |
| 청산에 총자산 대비 선택 | 청산은 잔액 대비. 총자산 대비면 수량을 꼭 넣기 |
| 계정명을 바꾸고 옛 메시지 사용 | account가 API키 계정명과 같아야 함 |
"dry_run":"true" | 따옴표 없이 "dry_run":true (안 그러면 실제 주문) |
| 지연시간을 길게 | 한 얼러트 전체가 약 520초를 넘으면 남은 메시지는 실행 안 됨 |
그래도 안 되면 → 주문이 안 될 때
파인 전략의 alert_message에 메시지를 넣는 법은 지표를 전략으로에 있습니다.