0 거래량 캔들은 해당 시간 버킷에 거래가 없었다는 값을 공급자가 행으로 제공한 경우입니다. 반면 누락 봉은 그 시간의 행 자체가 없다는 사실일 뿐 거래가 0이었다는 증거가 아닙니다. 직전 종가로 채운 봉은 분석 도구가 연속 시간축을 위해 만든 값일 수 있습니다. 행 존재 여부, volume·trade count, 공급자의 빈 구간 규칙을 나눠 확인해야 합니다.
캔들은 시간마다 자동으로 생기지 않습니다
캔들은 정한 시간 구간의 open·high·low·close·volume을 요약한 레코드입니다. Binance의 kline 문서는 봉이 open time으로 식별되고, 응답에 volume, close time, number of trades가 별도 필드로 들어간다고 설명합니다. 즉 특정 open time 행이 내려왔다면 그 행의 거래 수와 volume을 읽을 수 있지만, 행이 없다고 즉시 거래가 없었다고 단정할 수는 없습니다.
시장 데이터 서비스는 빈 구간을 0 거래량 행으로 내보내기도 하고, 거래가 있었던 구간만 내보내기도 하며, 화면용 차트에서 이전 종가로 가격을 채우기도 합니다. API의 응답 규칙과 차트 UI의 규칙도 다를 수 있습니다. 무거래 캔들이라는 말은 어떤 레이어의 결과인지 먼저 밝혀야 정확합니다.
시간축의 빈칸은 거래가 없었다는 결론이 아니라, 먼저 데이터가 어떻게 전달됐는지를 묻는 신호입니다.
JOBCOIN 해설

그림은 이 주제의 공통 개념을 단순화한 설명입니다. 아래 항목에서 이 글의 구체적인 조건과 예외를 함께 읽어보세요.
- 캔들은 시간마다 자동으로 생기지 않습니다
캔들은 정한 시간 구간의 open·high·low·close·volume을 요약한 레코드입니다.
- 세 상태를 같은 회색 막대로 보지 않기
실제 0 거래량 봉은 공급자가 그 시간 경계의 행을 만들고 volume=0 또는 trade count=0으로 표시한 경우입니다.
- 시간 경계부터 대조합니다
1분 봉이라면 기대 open time은 60초 간격이어야 합니다.
AI로 제작한 개념도 · 실제 가격·거래 내역·통계가 아닙니다.
세 상태를 같은 회색 막대로 보지 않기
실제 0 거래량 봉은 공급자가 그 시간 경계의 행을 만들고 volume=0 또는 trade count=0으로 표시한 경우입니다. 가격 필드가 직전 종가와 같을 수도 있지만, 그 가격이 새 체결가라는 뜻은 아닙니다. 결측 구간은 요청 범위, limit, 유지보수, 상장 전후, 수집 실패, 공급자 정책 등 여러 원인으로 생길 수 있습니다. 원시 거래를 확인하지 않은 이상 0 거래로 바꾸어 적지 않습니다.
직전값 채움은 분석자가 가격 곡선을 끊기지 않게 만들기 위해 이전 close를 새 버킷의 OHLC에 복사하는 변환입니다. 이 봉은 분명히 파생 자료여야 하며 원본 volume은 0, null, 또는 별도 상태 값으로 보존해야 합니다. 실제 체결과 채운 값을 한데 모으면 VWAP·변동성·체결 수 계산이 왜곡됩니다.
| 상태 | 관측 가능한 근거 | 분석 처리 |
|---|---|---|
| 0 거래량 봉 | 해당 open time 행과 0 volume 또는 0 trades | 공급자 정의를 붙여 별도 상태로 유지 |
| 누락 봉 | 예상 open time 행이 응답에 없음 | 결측으로 기록하고 원인을 조사 |
| 직전값 채움 | 변환 규칙 또는 fill flag가 있음 | 원시 체결 봉과 분리해 표시 |
시간 경계부터 대조합니다
1분 봉이라면 기대 open time은 60초 간격이어야 합니다. 먼저 요청 시작·끝 시각을 UTC로 고정하고, 받은 open time을 정렬한 뒤 인접 값의 차이를 봅니다. 12:00, 12:01, 12:03만 있다면 12:02가 없다는 사실을 기록합니다. 12:02의 거래가 없었는지, API 페이지가 끊겼는지는 다음 단계의 질문입니다.
Binance 문서의 kline 응답은 open time·close time·volume·number of trades를 별도 필드로 제공합니다. 행이 있는 경우에는 volume과 거래 수의 조합을 우선 확인합니다. 행이 없을 때는 동일 시간대의 거래 endpoint, 다른 limit 요청, 거래소 공지나 상품 상태를 대조합니다. 이 과정 없이 누락을 0으로 채우면 데이터 수집의 실패를 시장의 정지로 바꾸게 됩니다.
- 분석 시작·끝 시각과 캔들 간격을 UTC로 적습니다.
- 모든 기대 open time과 실제 응답 open time을 대조합니다.
- 행이 있는 봉은 volume과 number of trades를 함께 보관합니다.
- 빈 행은 0으로 바꾸기 전에 재요청·페이지 경계·상품 상태를 확인합니다.
- 직전값을 채웠다면 원시 여부를 나타내는 필드를 추가하고 별도 집계합니다.
가격이 같아도 출처는 다를 수 있습니다
직전 종가가 100이고 다음 분의 OHLC가 모두 100인 행을 보았다고 해도, 그 사이 체결이 한 건도 없었는지 100에서 체결이 한 건 있었는지, 제공자가 가격을 채웠는지는 OHLC만으로 구분되지 않을 수 있습니다. volume과 거래 수가 있으면 추가 단서가 되지만, 그 필드의 정의 역시 venue마다 확인해야 합니다.
고빈도 자료에서 한 분 안에 체결이 여러 번 있었더라도 open·high·low·close가 모두 같을 수 있습니다. 따라서 평평한 캔들을 무거래로 읽지 않습니다. 반대로 volume=0 행을 제공하는 문서가 있어도 동일한 규칙을 다른 API나 다른 상품에 적용하지 않습니다. 데이터 제품별 방법론을 출처로 남기는 이유입니다.
채우기가 통계량을 바꾸는 방식
직전값을 채운 10분을 실제 관측값처럼 포함하면 수익률 표본이 늘고, 그 구간의 수익률은 0으로 들어갑니다. 변동성 평균은 낮아질 수 있으며, 시간 가중 평균가격도 이전 가격이 오래 유지된 것으로 계산될 수 있습니다. 이 결과가 목적에 맞으려면 ‘거래가 없으면 이전 가격이 유지된다’는 가정을 명시해야 합니다.
반대로 결측을 전부 제외하면 실제 관측이 있었던 시점만으로 지표를 계산하게 됩니다. 이는 거래가 드문 시장의 시간 경로를 과장해 보일 수 있습니다. 어느 방식이 자동으로 옳은 것은 아닙니다. 거래 활동을 측정하는 지표에는 원시 거래만 쓰고, 시각화용 연속 가격에는 채움 상태를 표시하는 식으로 질문별 자료를 나누는 편이 낫습니다.
| 처리 | 가격 수익률 표본 | 거래 활동 해석 |
|---|---|---|
| 결측 유지 | 해당 시점의 수익률 계산 보류 | 수집 또는 공급자 범위의 불확실성 보존 |
| 0 거래량 행 유지 | 가격 필드 규칙을 별도 확인 | 거래 수 0이라는 제공값을 보존 |
| 직전값 채움 | 0 수익률 관측이 추가될 수 있음 | 체결 활동의 증거로 사용하지 않음 |
재현 가능한 표기법을 사용합니다
보고서에는 ‘1분 OHLCV, 거래소 X, 현물 Y-Z, 00:00–01:00 UTC, 원시 API 응답’처럼 범위를 씁니다. 결측 행 개수, 0 거래량 행 개수, 채운 행 개수를 각각 표시하면 독자는 같은 그래프의 빈 부분이 무엇인지 확인할 수 있습니다. API 페이지 경계를 놓치면 결측처럼 보이는 구간이 생길 수 있으므로 수집 로그도 함께 봅니다.
캔들은 거래를 요약한 자료이지 원시 체결 목록의 대체물이 아닙니다. 급격한 가격 변화나 무거래 판단이 중요한 분석에서는 같은 창의 개별 체결·거래 수·상품 상태를 다시 확인합니다. 차트의 선이 이어져 있다는 시각적 사실과, 실제 시장에서 거래가 있었다는 사실을 분리하면 후속 지표도 안전해집니다.
빈 봉을 만났을 때의 결론 범위
행이 있고 volume=0이라는 규칙이 확인된 경우에는 ‘이 공급자는 이 구간을 0 거래량으로 제공했다’고 쓸 수 있습니다. 행이 없는 경우에는 ‘응답에서 해당 봉을 찾지 못했다’까지가 확인된 사실입니다. 거래가 없었다, 상장이 중단됐다, 데이터가 조작됐다는 설명은 각각 추가 증거가 있어야 합니다.
이 구분은 단순한 정리 문제가 아닙니다. 0 거래량과 결측을 섞으면 거래량 합계, 활동 시간, 지연 탐지, 백테스트 결과가 모두 달라질 수 있습니다. 다음 분석 전에 원시 응답, 변환한 시계열, 채움 규칙을 분리해 보관하면 같은 숫자를 다른 의미로 재사용하는 일을 줄일 수 있습니다.
자주 묻는 질문
volume이 0이면 OHLC도 반드시 직전 종가인가요?
반드시 그렇지 않습니다. 공급자가 어떤 가격 필드를 넣는지는 제품 규칙에 달렸습니다. volume·trade count와 빈 구간 처리 방법을 문서에서 확인해야 합니다.
빠진 1분 봉을 직전값으로 채워도 되나요?
시각화 목적이라면 가능하지만, 채운 행임을 표시하고 원본과 분리해야 합니다. 거래량·체결 수·변동성 분석에 원시 체결 봉처럼 넣으면 안 됩니다.
OHLC가 모두 같으면 무거래 봉인가요?
아닙니다. 같은 가격에 여러 거래가 체결돼도 OHLC는 같을 수 있습니다. volume과 거래 수, 원시 체결을 함께 확인합니다.
더 깊이 읽기
본문에서 다룬 개념과 확인 절차를 다음 글에서 이어서 살펴보세요.



