캔들의 고가나 저가가 이웃 봉과 멀다는 사실은 오류 후보를 알려 줄 뿐 bad tick 판정은 아닙니다. 먼저 해당 구간의 원시 체결 ID·가격·수량·시각을 찾고, 같은 시각의 호가와 다른 독립 시장의 거래를 비교합니다. 그 뒤 거래소가 과거 체결이나 캔들을 정정했는지 확인해 유지·격리·정정의 상태를 기록하세요. OHLC 봉은 집계 결과이므로 한 봉만으로 체결의 진위나 시장 전체의 가격 변화를 단정할 수 없습니다.
캔들은 체결의 요약본입니다
OHLC 봉은 정해진 시간 구간의 시가·고가·저가·종가를 압축한 결과입니다. Coinbase의 캔들 API는 `time, low, high, open, close` 형식을 안내하고, 거래가 없던 구간에는 자료를 발행하지 않을 수 있다고 설명합니다. 따라서 화면에서 연속된 봉처럼 보인다고 해도 그 사이의 무체결 시간이나 원시 체결 수까지 자동으로 알 수는 없습니다.
Binance의 Kline 문서는 봉을 open time으로 고유 식별하고 시가·고가·저가·종가·거래량·거래 수를 따로 제공합니다. 이 필드는 같은 봉 안에서 어느 체결이 극값을 만들었는지를 직접 보여 주지 않습니다. 이상 고가가 보이면 봉을 지우거나 수정하기 전에 해당 구간의 체결 목록을 다시 조회할 수 있는지부터 확인해야 합니다.
공급자마다 시간대·구간 시작·종료·최대 반환 행 수가 다를 수 있습니다. 동일한 ‘1분봉’이라는 이름만 보고 두 데이터를 포개면 서로 다른 체결 집합을 비교하게 됩니다. 분석 메모에는 거래소, 상품, 기준 통화, UTC 여부, 봉의 시작 시각과 종료 규칙을 반드시 함께 적습니다.
캔들의 꼬리는 결론이 아니라, 집계 전에 있던 체결을 다시 확인하라는 신호입니다.
JOBCOIN 해설

그림은 이 주제의 공통 개념을 단순화한 설명입니다. 아래 항목에서 이 글의 구체적인 조건과 예외를 함께 읽어보세요.
- 캔들은 체결의 요약본입니다
OHLC 봉은 정해진 시간 구간의 시가·고가·저가·종가를 압축한 결과입니다.
- 후보를 만드는 계산과 오류 판정은 다릅니다
예를 들어 5분 동안의 일반 거래 범위가 100 부근인데 고가가 160이고, 그 고가를 만든 체결의 수량이 0.
- 원시 체결과 호가를 같은 시간축에 둡니다
첫째, 극값이 포함된 봉의 시작과 끝을 UTC 밀리초 또는 ISO 시각으로 고정합니다.
AI로 제작한 개념도 · 실제 가격·거래 내역·통계가 아닙니다.
후보를 만드는 계산과 오류 판정은 다릅니다
예를 들어 5분 동안의 일반 거래 범위가 100 부근인데 고가가 160이고, 그 고가를 만든 체결의 수량이 0.01이라고 가정해 보겠습니다. 이 값은 큰 이탈과 작은 수량이라는 두 조건을 만족하므로 검토 후보가 됩니다. 그러나 수량이 작다는 이유만으로 체결이 무효였다고 결론낼 수는 없습니다. 얕은 호가에서 실제로 성립한 거래일 수 있기 때문입니다.
후보 규칙은 사전에 고정합니다. 예를 들어 인접 종가 대비 편차, 해당 구간의 중간가 대비 편차, 수량, 체결 수, 교차 시장 일치 여부를 각 열로 둡니다. 이 규칙은 검사 대상을 줄이는 도구이며 시장의 정상 가격을 계산하는 공식이 아닙니다. 사후에 보기 싫은 봉만 골라 임계값을 바꾸면 재현성이 사라집니다.
가정 계산은 실제 시장 수익이나 가격 예측이 아닙니다. `편차율=(극값-비교값)/비교값`처럼 식과 단위를 적고, 가격 100과 160을 넣으면 60%라는 결과가 나온다는 정도만 검산합니다. 비교값이 마지막 체결가인지 중간가인지, 다른 거래소의 동시 가격인지가 달라지면 같은 160도 다른 의미가 됩니다.
| 관측 | 추가로 확인할 원시 자료 | 남길 상태 |
|---|---|---|
| 단일 체결이 봉의 고가 | trade ID·수량·체결 시각·전후 호가 | 검토 후보 |
| 여러 시장에서 같은 방향 이동 | 동일 상품·동일 UTC 창의 독립 체결 | 실제 급변 가능 |
| 고가 체결이 사라지거나 정정됨 | 거래소 공지·재조회 응답·버전 시각 | 정정 확인 |
| 원시 자료 접근 불가 | 데이터 공급자 보존 정책·요청 로그 | 판정 보류 |
원시 체결과 호가를 같은 시간축에 둡니다
첫째, 극값이 포함된 봉의 시작과 끝을 UTC 밀리초 또는 ISO 시각으로 고정합니다. 둘째, 그 창의 원시 체결을 체결 ID 순서와 함께 저장합니다. 셋째, 체결 직전·직후의 최우선 매수·매도 호가와 잔량을 붙입니다. 이 세 자료가 있어야 가격이 낮은 유동성에서 호가를 건너뛴 결과인지, 정상 시장 범위와 동떨어진 기록인지 검토할 수 있습니다.
호가창 스냅샷은 특정 시점의 상태일 뿐이며, 체결 직전의 모든 주문을 보장하지 않습니다. 따라서 사후 스냅샷에서 보이지 않는 호가만으로 체결 오류를 확정하면 안 됩니다. 웹소켓 순번·수신 지연·스냅샷 시각을 기록하고, 이벤트가 빠졌을 가능성도 함께 남깁니다.
다른 거래소 가격은 보조 증거입니다. 비교 대상이 현물인지 파생인지, 기준 통화와 수수료 구조가 같은지, 각 거래소의 시계가 맞는지를 확인합니다. 한 시장에서만 거래됐다는 사실은 이상값 후보를 강화할 수 있지만, 실제 체결을 가짜로 바꾸지는 않습니다.
- 봉의 시작·끝 시각과 상품·거래소를 고정합니다.
- 극값 체결의 ID·가격·수량·시각을 원본 응답으로 보관합니다.
- 직전·직후 호가와 데이터 수신 순번을 함께 기록합니다.
- 교차 시장 비교는 상품·통화·시간축을 맞춘 뒤 보조 근거로만 사용합니다.
정정과 결측은 다른 데이터 사건입니다
거래소가 과거 캔들이나 체결을 다시 계산할 수 있으므로 최초 수집본과 재조회본이 달라질 수 있습니다. 이때는 최신 값으로 원본을 덮어쓰지 말고 수집 시각·응답 해시·변경 행 수를 각각 남깁니다. 변경이 공식 정정인지, API 범위·페이지네이션 차이인지, 자신의 파서 오류인지를 구별할 수 있습니다.
무체결 구간은 값이 0인 봉과 다릅니다. Coinbase 문서는 무체결 구간에 데이터가 없을 수 있다고 명시합니다. 누락 행을 임의로 전 봉 종가로 채우면 차트는 매끄러워지지만 실제로 거래가 없었다는 사실이 사라집니다. 집계 전에 빈 구간을 별도의 상태로 세어 두는 편이 낫습니다.
요청 제한도 기록해야 합니다. Coinbase 캔들 응답은 한 요청에 최대 300개를 반환하며 넓은 범위는 여러 요청으로 나눠야 합니다. 경계가 겹치거나 빠지면 이상값 검사가 특정 구간만 본 결과가 될 수 있습니다. 각 요청의 시작·종료·반환 행 수와 다음 요청의 연결 규칙을 검증합니다.
최종 보고서는 유지·격리·정정을 분리합니다
유지는 원시 체결과 시간 경계가 확인되고, 공개 자료 안에서 수정 근거를 찾지 못한 상태입니다. 격리는 통계적으로 특이하지만 원시 기록·호가·정정 여부가 충분하지 않은 상태입니다. 정정은 거래소가 명시적으로 수정했거나 원본 데이터의 결함이 재현 가능하게 확인된 상태입니다. 세 상태를 한 그래프의 색으로 구분하면 다음 데이터 갱신에서 판단 이력을 잃지 않습니다.
보고서에는 후보 수와 제거 수만 쓰지 말고, 유지·격리·정정 각각의 사유와 증거 링크를 남깁니다. 제거 후 지표가 달라졌다면 원본 계열과 정정 계열을 모두 계산해 영향 범위를 보여 주세요. 특정 기준으로 정제된 가격이 더 ‘정확한 시장 가격’이라고 단정하려면 이 글에서 다루지 않는 추가 검증이 필요합니다.
이 절차는 시장 행동이나 자산의 적정 가격을 예측하지 않습니다. 오히려 한 개의 눈에 띄는 꼬리에서 시작해 어떤 자료를 확인했고 어느 단계에서 판단을 보류했는지를 재현 가능하게 남기는 방법입니다.
자주 묻는 질문
고가가 다른 거래소 가격과 다르면 바로 bad tick인가요?
아닙니다. 상품·통화·시간이 일치하는지와 원시 체결·호가를 먼저 확인해야 합니다. 다른 시장의 불일치는 후보 신호일 뿐 체결 무효의 단독 증거가 아닙니다.
캔들 API에 없는 시간은 가격이 0이라는 뜻인가요?
아닙니다. Coinbase 문서는 무체결 구간에 자료가 없을 수 있다고 설명합니다. 결측과 가격 0을 구분해 저장해야 합니다.
정정된 데이터만 남기면 되나요?
안 됩니다. 최초 응답과 재조회 응답의 시각·해시·차이를 함께 남겨야 공급자 정정과 수집·변환 오류를 나중에 추적할 수 있습니다.
더 깊이 읽기
본문에서 다룬 개념과 확인 절차를 다음 글에서 이어서 살펴보세요.



