529 / 736OHLCV

OHLCV

정해진 구간의 시가·고가·저가·종가와 거래량

야나는 비트코인 차트를 열고 긴 거래 목록 대신 캔들이 늘어선 모습을 봅니다. 캔들 하나는 일정 기간을 몇 가지 정보로 줄여 보여 줍니다. 가격이 어디서 시작해 얼마나 오르고 내렸는지, 어디서 끝났는지, 얼마나 거래됐는지입니다. 이 요약이 OHLCV입니다. 과거를 빠르게 이해하는 데 유용하지만 거래의 전 과정을 담지는 못합니다.

OHLCV는 Open, High, Low, Close, Volume의 약자입니다. 한 구간의 첫 체결가, 최고가, 최저가, 마지막 체결가, 거래량을 뜻합니다. 특정 시장과 기간에 대한 자료이며, 이미 이뤄진 거래를 설명합니다. 지금 바로 살 수 있는 호가를 뜻하지는 않습니다.

야나는 먼저 거래소, 거래쌍, 시간 간격을 고릅니다. 거래쌍은 무엇을 무엇과 바꾸는지, 예를 들어 비트코인을 달러와 교환하는지를 알려 줍니다. Kraken은 Open을 구간의 첫 체결가, Close를 마지막 체결가로 정의합니다. High와 Low는 도달한 최고와 최저 가격입니다. 야나는 거래를 하나씩 읽지 않고도 가격 범위와 처음에서 끝까지의 변화를 알 수 있습니다. 다만 이 가격들이 자동으로 평균이나 호가창의 현재 주문을 뜻하지는 않습니다. [1]

가격 움직임 외에도 야나는 실제로 얼마나 거래됐는지 알고 싶습니다. Kraken의 Volume은 거래쌍의 기준 자산 단위이므로 BTC/USD에서는 비트코인 수량입니다. Binance는 가격 표시 자산, 이 예에서는 달러로 계산한 거래대금과 거래 건수도 구분합니다. 비트코인 수량, 달러 가치, 체결 횟수는 서로 다른 지표입니다. 단위 없는 큰 숫자만으로 시장이 얼마나 활발했는지 알 수는 없습니다. 먼저 자료가 무엇을 세는지 확인해야 합니다. [1] [2]

야나는 다른 곳에서 서로 다른 일봉을 발견하고 오류를 의심합니다. 결론을 내리기 전에 시간 경계도 비교해야 합니다. Binance는 시간대 매개변수 timeZone으로 구간을 정할 수 있지만 자료 선택에 쓰는 startTime과 endTime은 공통 세계 시간 기준인 UTC로 해석합니다. 하루의 시작이 다르면 포함되는 거래도 달라질 수 있습니다. 일봉이라는 이름만으로는 부족하며 시장, 기간, 타임스탬프의 의미가 일치해야 합니다. [2]

실시간 차트의 최신 캔들은 눈앞에서 변할 수 있습니다. 프로그램이 데이터를 요청하는 Kraken의 REST 인터페이스에는 현재 진행 중인 미완성 구간도 항상 포함됩니다. 그 Close는 아직 확정 종가가 아니라 최근 확인된 체결가이고, 거래량도 더 늘 수 있습니다. 완료된 기간을 비교하려면 야나는 이 미완성 캔들을 구분해야 합니다. 그렇지 않으면 끝난 역사와 계속 만들어지는 값을 비교하게 됩니다. [3]

때로는 한 구간이 빠져 있습니다. Coinbase는 과거 자료가 불완전할 수 있다고 알리며, 거래 이벤트가 없는 구간은 캔들을 제공하지 않습니다. 따라서 야나는 빈칸을 가격이 영으로 폭락했다고 해석하면 안 됩니다. 거래가 없었는지 데이터가 누락됐는지 먼저 확인해야 합니다. 이전 가격을 이어 붙여도 새 거래가 되는 것은 아닙니다. 차트가 이렇게 빈칸을 채운다면 그 가공 여부를 구별할 수 있어야 합니다. [4]

차트 프로그램을 만들면 또 다른 함정이 있습니다. OHLCV라는 약자는 응답 필드의 순서를 보장하지 않습니다. Coinbase는 시간, Low, High, Open, Close, Volume 순으로 설명합니다. Kraken은 거래 건수와 거래 수량으로 가중한 평균 가격인 VWAP도 구분합니다. 프로그램은 해당 인터페이스 문서대로 각 필드를 읽어야 합니다. 값을 바꿔 읽어도 차트가 눈에 띄게 망가지지 않고, 그럴듯하지만 잘못된 곡선이 만들어질 수 있습니다. [4] [1]

Kraken의 정의에서 올바른 구간 결합 방법도 도출할 수 있습니다. 같은 시장의 구간들이 완전하고 연속적이며 겹치지 않는다면 야나는 첫 Open과 마지막 Close를 택합니다. High는 최고가들 중 최댓값, Low는 최저가들 중 최솟값이며 비교 가능한 Volume은 더합니다. 시가들을 평균 내면 다른 값이 됩니다. 먼저 시간순서, 중복, 누락을 확인해야 합니다. 덧셈이 빠진 거래를 되살리지는 못합니다. [1]

Coinbase의 요약 필드에는 전체 거래 순서나 호가창에서 기다리던 주문이 보존되지 않습니다. 캔들이 높은 가격과 낮은 가격을 보여 줘도 어느 쪽이 먼저였는지는 알 수 없습니다. 야나가 과거 자료로 가상의 주문을 시험할 때 High와 Low만으로는 가격 기준에 닿은 순서나 실제 체결을 증명하지 못합니다. OHLCV는 과거를 보는 유용한 요약이지만 세부 거래 기록이나 본인 주문 확인을 대신하지는 않습니다. [4]

예시 · OHLCV

야나가 거래를 요약하는 방법

가상의 종료된 구간에서 순서대로 0.01 BTC가 100000 USD/BTC, 0.02 BTC가 100020 USD/BTC, 0.01 BTC가 99980 USD/BTC, 마지막으로 0.03 BTC가 100010 USD/BTC에 거래됩니다. 야나는 첫 가격을 Open 100000, 최고를 High 100020, 최저를 Low 99980, 마지막을 Close 100010으로 정하며 모두 USD/BTC 단위입니다. 수량을 더하면 Volume은 0.01 + 0.02 + 0.01 + 0.03 = 0.07 BTC입니다. 이 행은 가격 범위와 총량을 빠르게 보여 주지만 최고가가 최저가보다 먼저 나왔다는 사실은 더 이상 알려 주지 않습니다. 실제 시세도 아니며 야나의 주문이 해당 가격에 체결된다는 보장도 아닙니다.

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Candlestick chart, Timeframe, Technical analysis, Order book, Backtesting, Volume weighted average price. 다음 항목에서도 이 글을 참조합니다 Technical analysis, Timeframe, Candlestick chart, Simple moving average.

01다음 Open은 이전 Close와 같아야 하나요?

아닙니다. 다음 Open은 새 구간의 첫 실제 거래이며 과거 가격을 반드시 복사한 값이 아닙니다. 다른 가격에 거래될 수도 있고 그 사이 거래 공백이나 데이터 누락이 있을 수도 있습니다.

02OHLCV로 모든 거래를 복원할 수 있나요?

없습니다. 서로 다른 순서의 거래가 같은 극값, 시가, 종가, 거래량을 만들 수 있습니다. 순서에는 자세한 기록이 필요하고 본인 주문을 평가하려면 당시 이용 가능한 호가와 체결 규칙도 필요합니다.

DOC · 001Kraken — WebSocket OHLC문서 DOC · 002Binance — Spot Market Data문서 DOC · 003Kraken — REST OHLC문서 DOC · 004Coinbase — Product Candles문서
개정일: 1차 출처 우선 · 투자 조언이 아닙니다