유료 광고 포함

제가 트레이딩뷰 지표들을 여러 개 써봤는데, LuxAlgo - Arbitrage Matrix 는 좀 특별하더라고요. 대부분의 지표가 "이 가격이 오를까 내릴까"를 고민하는데, 이 지표는 완전 다른 각도에서 접근합니다. 같은 자산인데 거래소마다 가격이 다르다는 걸 표로 보여줘요. 우리나라에서는 아비트리지 보다는 김치 프리미엄이라고 하죠.
이 지표는 솔직히 처음 봤을 땐 복잡해 보였어요. 그런데 코드를 뜯어보고 실제로 돌려본 후론 정말 영리한 설계라는 생각이 들었습니다. 특히 파인스크립트로 어떻게 여러 거래소 데이터를 동시에 비교하는지, 그리고 저는 한국 거래소인 업비트를 코드 수정을 통해 추가해서 김치프리미엄을 보는 방법을 이 글에서 상세히 풀어드릴게요.
Arbitrage Matrix 지표, 정확히 뭐하는 건가?
예를 들어볼게요. 지금 이 순간 비트코인 가격이:
- 바이낸스에서 65,000 USDT
- 업비트에서 85,000,000원 (약 65,047 USDT)
- 코인베이스에서 64,930 USDT

이렇게 거래소마다 다르잖아요. Arbitrage Matrix 지표는 이런 가격 차이를 실시간으로 매트릭스 형태로 보여줍니다. 마치 엑셀 표처럼요.
지표 창을 켜면 대시보드가 나타나는데, 행과 열에 거래소 이름이 있고, 각 칸에 가격 차이가 숫자로 표시돼요. 거래소 A에서(세로열) 사고 거래소 B에서 팔면(가로열) 얼마의 수익(또는 손실)이 나는지를 한눈에 볼 수 있다는 뜻입니다.
코드를 보면 이런 구조거든요. 지표 제작자는 여러 거래소 데이터를 request.security() 함수로 동시에 불러옵니다. 각 거래소별로 현재가와 거래량을 수집해서, 그걸 비교 표로 만드는 거죠. 간단해 보이지만, 실제론 꽤 정교한 데이터 처리가 들어가 있습니다.
코드로 보는 지표의 작동 원리
파인스크립트 코드를 분석해보면, 핵심 부분이 있어요.
for [index,eachExchange] in exchanges
string tickerid = eachExchange+':'+ticker
[assetPrice,assetVolume] = request.security(...)
여기서 주목할 점은 request.security() 함수입니다. 이 함수가 각 거래소에서 데이터를 가져오는데, 만약 그 거래소에서 해당 자산을 거래하지 않으면 어떻게 될까요?
코드에 ignore_invalid_symbol = true 옵션이 있어요. 이건 "없는 데이터는 그냥 무시해"라는 뜻입니다. 예를 들어, 한국의 업비트나 코빗 같은 거래소는 트레이딩뷰에 등록되지 않을 수 있는데, 그런 경우 자동으로 건너뛰고 다음 거래소를 봅니다.
또 하나 중요한 부분이 있어요. 지표는 최대 19개까지 거래소를 동시에 비교할 수 있게 설계돼 있어요. 왜냐하면 코드에서:
var array<asset> assets = array.from(
asset.new(...), asset.new(...), ..., asset.new(...)
)
이렇게 19개의 asset 객체를 미리 만들어놨거든요. 암호화폐 거래소 12개, 외환 브로커 7개.
업비트 추가하기: 한국 거래소를 지표에 포함시키는 방법

여기가 흥미로운 부분입니다. 저도 처음엔 "업비트를 이 지표에 추가할 수 있을까?"라고 생각했어요. 그런데 TradingView에서 UPBIT:BTCUSDT 심볼을 지원한다는 걸 알게 됐거든요.
업비트는 원화(KRW), BTC, USDT 마켓 3개를 제공하는데, USDT 마켓은 해외 거래소들처럼 달러 기준 거래입니다. 이게 중요해요. 환율 변수 없이 순수한 거래소 간 가격 차이를 볼 수 있다는 뜻이거든요.
코드 수정 방법:
먼저 입력 부분에 업비트 옵션을 추가합니다:
enableUPBITInput = input.bool(true, 'UPBIT', group = EXCHANGES_GROUP, inline = 'rowX')
그 다음, 거래소 배열에 업비트를 추가:
if enableUPBITInput
crypto.push('UPBIT')
이 코드는 "UPBIT 옵션이 활성화되면, 거래소 목록에 'UPBIT'을 추가해"라는 뜻입니다.
중요한 부분: 기존 코드는 asset 배열이 19개였는데, 업비트를 추가하면 20개가 필요합니다. 그래서 이 부분을 수정해야 해요:
// 수정 전 (19개)
var array<asset> assets = array.from(
asset.new(...), asset.new(...), ...
)
// 수정 후 (20개)
var array<asset> assets = array.from(
asset.new(...), asset.new(...), ... asset.new(...) // 20번째 추가
)
코드를 제대로 수정하면, 트레이딩뷰에서 UPBIT:BTCUSDT 차트를 열고 지표를 실행했을 때, 업비트가 다른 거래소들과 나란히 비교됩니다. 이게 정말 유용해요. 왜냐하면 한국 시장의 실시간 가격을 글로벌 시장과 직접 비교할 수 있거든요.
// 통 복사용
var array<asset> assets = array.from(asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()),
asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()),
asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()),
asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()), asset.new(array.new<float>(),array.new<float>()))
당신이 봐야 할 4가지 데이터 모드

지표 설정에서 'Data' 옵션을 보면 4가지 선택지가 있어요:
PRICE_LAST (현재 가격 차이) 이건 지금 이 순간의 가격만 봅니다. 초단타 트레이더들이 쓰는 모드죠. 아주 짧은 시간에 벌어지는 미세한 가격 차이를 포착하는 데 최적화됐어요. 대신 수초 안에 그 기회가 사라질 수 있어요.
PRICE_AVG (평균 가격 차이) Average Length 설정값(기본 20)에 따라 최근 N개 캔들의 평균 가격을 계산해서, 거래소 간 차이를 봅니다. 이게 훨씬 안정적이에요. 순간적인 가격 움직임에 흔들리지 않거든요.
VOLUME_LAST (현재 거래량 차이) 지금 이 순간에 어느 거래소가 더 활발하게 거래되고 있는지 보여줍니다. 거래량이 크다는 건 그만큼 빠르게 사고팔 수 있다는 뜻이에요. 차익거래를 실제로 실행하려면, 거래량이 충분해야 내 주문이 빠르게 체결되거든요.
VOLUME_AVG (평균 거래량 차이) 여기가 가장 중요해요. 어느 거래소가 평균적으로 유동성이 좋은지 알 수 있거든요. 이 모드를 켜면, 진짜 거래 가능한 거래소를 구분할 수 있습니다. 예를 들어, 바이낸스는 매시간 1000개 이상의 비트코인이 거래되는데, HTX 같은 마이너 거래소는 시간당 50개 정도만 거래될 수 있어요. 그럼 당연히 가격도 다르겠죠. 하지만 HTX에서 100개를 한 번에 팔려고 하면 가격이 떨어져서 차익거래 기회가 사라져요.
실제로 수익을 만들려면 PRICE_AVG와 VOLUME_AVG를 조합으로 봐야 합니다. 가격 차이가 크더라도 거래량이 없으면 그림의 떡이거든요.
한국 거래소의 진짜 가격 차이: 김치프리미엄
업비트를 지표에 추가하고 데이터를 보면 뭔가 이상한 걸 발견하게 돼요. 업비트의 가격이 거의 모든 해외 거래소보다 비싸다는 겁니다.
예를 들어보죠:
BINANCE: 65,000 USDT
UPBIT: 65,046 USDT
차이: 46 USDT (약 60,000원)
1 BTC = 약 8,450만원이니까,
60,000원은 큰 돈 아닐까요?
그런데 정말 이 돈을 벌 수 있을까요? 아니에요. 계산해보면:
BINANCE에서 BTC 매수 수수료: 0.05% = 약 32.5 USDT (42,000원)
UPBIT에서 BTC 매도 수수료: 0.05% = 약 32.5 USDT (42,000원)
총 수수료 = 65 USDT (약 84,500원)
차익거래 수익 = 46 - 65 = -19 USDT = 약 -25,000원
손실입니다.
이 현상을 김치프리미엄(Kimchi Premium)이라고 부르는데, 한국 암호화폐 시장이 글로벌 시장보다 비싼 이유가 뭘까요?
첫째, 유동성 차이입니다. 업비트는 한국 개인 트레이더들만 주로 접근하거든요. 반면 바이낸스는 전 세계 기관, 트레이더들이 거래합니다. 유동성이 적은 곳은 가격이 높아져요. 공급 부족 때문이죠.
둘째, 규제입니다. 한국 거래소에는 출금 제한이 있을 수 있어요. 이게 차익거래 기회를 완전히 없애버립니다. "차이가 크니까 매수하자"고 해도, 실제로 팔 때 문제가 생길 수 있다는 뜻이거든요.
셋째, 시간대 차이입니다. 한국은 미국보다 13시간 앞서요. 미국 장이 닫혔을 때 한국 시장만 열려있으면, 한국의 수급이 가격을 결정하게 됩니다.
실제 사용자들의 반응과 현실성
온라인 트레이딩 커뮤니티에서 Arbitrage Matrix에 대해 어떻게 말하는지 봤어요.
Reddit의 트레이딩 커뮤니티에서는 "좋은 개념이지만, 실제 실행은 훨씬 어렵다"는 평가가 많더라고요. 특히 거래소 간 입출금 시간 차이나 규제 때문에요. 한국 거래소와 해외 거래소 간 차익거래는 법적으로도 복잡해요.
대신, "같은 거래소 내에서 현물과 선물을 비교하는 용도로 쓰면 도움이 된다"는 피드백이 많았어요. 특히 이 지표로 선물 프리미엄을 모니터링하는 트레이더들이 있었습니다.
또 하나 눈에 띄는 반응은, "지표 자체보다 그 사고방식이 중요하다"는 의견이에요. 같은 자산이 여러 가격에 거래된다는 시장의 비효율성을 인식하는 것 자체가 좋은 학습이라는 뜻이죠.
실제 최적 설정값: 전략별 가이드
당신의 블로그를 보니 여러 주제를 다루시는데, 각 전략별로 최적 설정이 다릅니다.
초단타 스캘핑을 주로 하신다면: Average Length 5에서 10, Data는 PRICE_LAST, Size는 SMALL (빠르게 변하는 데이터만 봐야 하니까)
당일 트레이딩: Average Length 20에서 30, Data는 PRICE_AVG + VOLUME_AVG 왕복, Size는 NORMAL
스윙 트레이딩(며칠 보유): Average Length 50에서 100, Data는 VOLUME_AVG 중심, Size는 NORMAL (안정적인 차이만 봐야 함)
당신의 현재 트레이딩 스타일이 뭔지 모르겠지만, 블로그 톤을 보면 깊이 있는 분석을 선호하시는 것 같아요. 그럼 Average Length 50, Data를 VOLUME_AVG로 두고, 매일 1회 정도 지표를 살펴보는 방식을 추천합니다. 크지 않지만 현실적인 차익거래 기회를 찾을 수 있어요.
자주 묻는 질문들
Q. 업비트를 추가했는데 지표에 안 뜨는 이유가 뭐예요?
A. TradingView에서 UPBIT:BTCUSDT 심볼이 완전히 지원되지 않을 수 있어요. 검색창에 직접 입력해서 차트가 뜨는지 먼저 확인하세요. 차트가 안 뜬다면 코드에서 UPBIT을 주석처리하고, 다른 거래소만 활성화하세요.
Q. 이 지표만으로 꾸준히 돈을 벌 수 있나요?
A. 어렵습니다. 지표가 기회를 보여줄 순 있지만, 실제 실행에서 많은 변수가 생겨요. 수수료, 입출금 시간, 환율 변동, 규제 등이 모두 영향을 미칩니다. 대신 당신의 주 거래 전략에 보조 도구로 쓰면 도움이 될 수 있습니다.
Q. 한국-해외 가격 차이를 정말 활용할 수 없나요?
A. 개인이 직접 차익거래하기는 어렵지만, 이 정보 자체가 콘텐츠가 됩니다. "왜 한국 비트코인이 비싼가", "김치프리미엄의 비밀", "수수료를 고려한 실제 수익률 계산" 같은 글을 쓸 수 있거든요. 당신의 블로그 강점이 바로 이런 깊이 있는 분석입니다.
Q. PRICE_LAST와 PRICE_AVG는 뭐가 다른가요?
A. PRICE_LAST는 최신 한 개 캔들의 가격만 봅니다. PRICE_AVG는 최근 Average Length 개의 캔들 평균값을 봅니다. PRICE_AVG가 더 안정적이고, PRICE_LAST가 더 반응이 빠릅니다.
마치며: 지표의 올바른 활용
Arbitrage Matrix 지표를 분석하면서 느낀 점은, 좋은 지표는 "대답을 주는 게 아니라 올바른 질문을 하도록 도와준다"는 거예요.
이 지표를 켜면 당신은 자동으로 이런 질문들을 하게 됩니다:
"왜 이 거래소와 저 거래소의 가격이 다를까?" "한국 시장이 비싼 이유가 뭘까?" "이 차이를 실제로 수익화할 수 있을까?" "수수료를 고려하면 진짜 수익이 날까?"
이런 질문들이 쌓이면, 당신의 시장 이해도가 깊어져요. 트레이딩 초보자는 단순히 "BTC가 오를까 내릴까"만 생각하지만, 경험이 쌓인 트레이더는 "시장의 비효율성은 뭐가 있을까"를 생각하거든요.
그래서 저는 이 지표를 추천합니다. 안 써서 손해 보기보다, 써보고 배우는 게 낫거든요. 특히 당신처럼 기술적 분석을 깊이 있게 공부하는 사람이라면, 이런 지표들을 이해하는 과정 자체가 좋은 학습이 될 거라고 생각해요. 업비트 코드까지 추가하면, 한국 시장의 특수성도 이해할 수 있고요.
트레이딩뷰 가입 링크
트레이딩뷰는 무료로도 지표 5개 가능하며, 유료로 사용하시면 더 많은 지표 설정이 가능합니다. 아래 링크로 가입 하시면 저에게 수수료가 생깁니다. 도움을 주시는 만큼 더 좋은 정보로 올려 보겠습니다.
https://kr.tradingview.com/chart/?aff_id=162745&aff_sub=tisoty&source=flowtrader