COT 보고서 읽는 법 및 항목별 의미 정리
COT(Commitments of Traders, 거래자 포지션 보고서)의 레거시, 디스어그리게이티드, TFF 테이블 항목을 상세히 분석합니다. 순포지션 산출 방식과 데이터 해석 시 반드시 고려해야 할 두 가지 한계점을 명확하게 설명하여 시장 분석의 정확도를 높이는 방법을 제시합니다.
COT 보고서 읽는 법
COT(Commitments of Traders, 거래자 포지션 보고서) 보고서를 읽는 법은 그 구조를 이해하는 것에서 시작합니다. COT 보고서는 상품선물거래위원회(CFTC)가 매주 발표하는 자료로, 거래자 유형별로 분류된 미결제 선물 포지션의 수를 집계한 것입니다. 모든 셀에 기재된 수치는 계약 수이며, 가격이나 향후 전망을 나타내지 않습니다. 이 페이지는 COT 보고서 발표 일정을 이미 숙지하고 있다는 전제하에, 각 열의 의미와 순포지션(net position) 산출 방식, 그리고 반드시 기억해야 할 두 가지 한계점을 설명합니다.
COT 보고서의 실제 집계 방식
모든 수치는 청산 회원사와 거래소가 CFTC(상품선물거래위원회)에 제출하는 포지션 보고서를 바탕으로 집계된 계약 수입니다. 각 시장별로 설정된 보고 의무 기준을 초과하는 계좌만이 집계 대상이 되며, 그 미만의 모든 물량은 잔여 항목으로 분류됩니다. 다음 세 가지 메커니즘이 혼선을 야기하는 주된 원인입니다.
- 매수(Long)와 매도(Short) 포지션은 각각 별도로 보고되며, 모두 총액(gross) 기준입니다. 예를 들어 한 기업이 4,000계약의 매수와 3,000계약의 매도를 보유하고 있다면, 순포지션인 1,000계약이 아닌 양쪽 열에 각각 해당 수치가 기재됩니다.
- 스프레딩(Spreading)은 투기적 범주에서 별도의 열로 분류됩니다. 이는 동일 시장 내에서 규모가 같고 상쇄되는 매수 및 매도 포지션을 의미하며, 한 번만 집계됩니다.
- 미결제약정(Open interest)은 해당 일자 기준 총 발행 계약 수입니다. 모든 범주의 매수 포지션 합계와 매도 포지션 합계는 각각 미결제약정 총액과 일치합니다.
레거시 보고서: 상업적, 비상업적, 보고 대상 외 거래자
가장 오래된 형식이자 여전히 가장 많이 인용되는 방식입니다. 이 보고서는 보고 대상 거래자를 두 부류로 분류하고 나머지를 세 번째 범주로 통합합니다.
- 상업적(Commercial): 기초자산에 대한 사업적 노출을 헤지하기 위해 시장을 이용한다고 CFTC(상품선물거래위원회)에 신고한 계좌입니다. 곡물 저장업체, 정유사, 스왑 북(swap book)을 헤지하는 은행 등이 이에 해당합니다.
- 비상업적(Non-commercial): 헤지 목적이 없다고 신고한 보고 대상 계좌입니다. 대규모 투기 세력과 관리형 선물 프로그램이 여기에 포함됩니다.
- 보고 대상 외(Non-reportable): 보고 기준 미달인 모든 거래자입니다. 직접 집계되는 것이 아니라, 전체 미결제약정에서 보고 대상인 매수 및 매도 총합을 뺀 잔여치로 산출됩니다.
이 분류는 제출된 양식에 따라 거래자가 스스로 신고하며, 헤지 데스크와 투기 데스크를 모두 운영하는 기업은 주된 활동을 기준으로 분류됩니다.
분해 보고서: 두 가지가 아닌 네 가지 범주
실물 원자재의 경우, 미국 상품선물거래위원회(CFTC)는 기존의 상업적 거래자(commercial) 범주를 둘로, 비상업적 거래자(non-commercial) 범주를 둘로 나눈 분해 보고서를 추가로 발행합니다.
- 생산자, 상인, 가공업자, 사용자: 재고나 생산량을 헤지(hedging)하는 실물 시장 참여자입니다.
- 스왑 딜러(swap dealer): 고객과 체결한 스왑 계약의 위험을 상쇄하기 위해 선물 포지션을 보유하는 딜러입니다. 고객은 헤지 거래자일 수도, 투기 거래자일 수도 있으므로 이 항목은 한 거래상대방을 통해 유입되는 혼합된 흐름을 나타냅니다.
- 관리 자금(managed money): 고객을 위해 거래하는 상품 투자 자문업자(CTA), 풀 운영자, 헤지펀드입니다. 이 보고서에서 추세 추종(trend-follower) 성향을 가장 잘 나타내는 항목입니다.
- 기타 보고 대상자(other reportables): 위 범주 어디에도 해당하지 않는 대규모 계좌입니다.
TFF 보고서: 금융 선물 분류
국채, 주가지수 및 통화에 대해 Traders in Financial Futures(TFF, 금융 선물 거래자) 보고서는 네 가지 분류 체계를 사용합니다.
- 딜러/중개인(Dealer/intermediary): 셀사이드(sell side)로, 일반적으로 견해를 표명하기보다는 고객 주문의 반대편을 담당하는 은행 및 딜러를 의미합니다.
- 자산운용사/기관(Asset manager/institutional): 연기금, 보험사, 뮤추얼 펀드 및 기금 등이 포함됩니다.
- 레버리지 펀드(Leveraged funds): 헤지펀드 및 CTA(상품거래자문사)를 의미하며, 흔히 "펀드들이 숏 포지션을 취하고 있다"고 말할 때 지칭하는 대상입니다.
- 기타 보고 대상(Other reportables): 앞선 세 범주에 속하지 않는 대규모 보고 대상 계좌입니다.
TFF는 동일한 미결제약정(open interest)을 다르게 구분한 것일 뿐, 기존 레거시(legacy) 표에 대한 두 번째 의견이 아니므로, 각 항목이 상업적(commercial) 및 비상업적(non-commercial) 분류와 일대일로 대응하지는 않습니다.
COT 보고서에서 순포지션 계산하는 방법
순포지션 계산은 간단합니다. 특정 범주 내에서 매수(long) 계약 수에서 매도(short) 계약 수를 빼면 됩니다. 스프레딩(spreading)은 구조상 양쪽 모두에 해당하지 않으며, 모든 매수 계약에는 대응하는 매도 계약이 존재하므로 전체 보고서상 범주별 순포지션의 합은 영(zero)이 됩니다.
단순 수치만으로는 순포지션을 잘못 해석할 수 있습니다. 순포지션 20만 계약은 미결제약정(open interest)이 80만 계약일 때와 400만 계약일 때 그 의미가 완전히 다릅니다. 이를 보정하려면 나눗셈이 필요합니다. 순포지션을 미결제약정으로 나누면 해당 범주가 차지하는 비중이 산출되며, 이를 통해 시점과 계약 간 비교가 가능해집니다.
CFTC 포지셔닝 데이터는 본 패널에 포함되어 있지 않으므로, 아래에서는 직접 추출할 수 있는 데이터를 바탕으로 동일한 산술 방식을 적용합니다. 해당 블록은 매달 AAPL 콜옵션과 풋옵션 계약 수를 집계한 뒤, 그 차이를 두 가지 방식으로 나타냅니다. 하나는 단순 수치이고, 다른 하나는 해당 월 전체 거래량 대비 비중입니다. 이는 풋/콜 비율 계산 방식의 근간이 되는 움직임입니다.
Jan 2024에 순포지션은 3294천 계약, 즉 해당 월 전체 거래량의 18.9%를 기록했습니다. Jun 2026에 순포지션은 27.7%의 비중을 차지하는 4671천 계약으로 나타났습니다. 전체 30개월 동안 단순 순포지션 수치는 시장의 활성도에 따라 등락을 반복하지만, 비중 수치는 COT 순포지션이 미결제약정을 기준으로 하는 것과 마찬가지로 시장 활동의 영향을 제거하여 보여줍니다.
순수치보다 백분위수가 더 정직한 이유
순수치가 주식 수로 환산되면, 두 번째 단계는 과거 기록과의 비교입니다. 미결제약정의 12%를 보유한 카테고리가 높은지 낮은지는 해당 시장의 자체 기록을 기준으로만 판단할 수 있습니다. 표준적인 분석 틀은 다년간의 데이터를 소급 적용한 백분위수입니다. 이는 과거 관측치 중 현재 수치와 같거나 그보다 낮은 수치가 차지하는 비율을 의미합니다.
미국 주식 시장은 고유한 포지셔닝 데이터를 보유하고 있습니다. FINRA 공매도 데이터는 월 2회 공매도 주식 수를 보고하며, 커버에 필요한 일수(days to cover)는 해당 수치를 일평균 거래량으로 나눕니다. 이는 미결제약정 대비 순포지션이 수행하는 것과 동일한 정규화 과정입니다. 아래 패널은 6개 주요 종목의 최신 수치를 고정하고, 각 종목의 지난 5년간 기록 내에서 순위를 매긴 것입니다.
모든 수치 뒤에 숨겨진 정확한 SQL
WITH history AS
(
SELECT
ticker,
settlement_date,
max(toFloat64(days_to_cover)) AS dtc,
max(toFloat64(short_interest)) AS si
FROM global_markets.stocks_short_interest
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'KO', 'XOM', 'JNJ')
AND settlement_date >= today() - 1825
AND days_to_cover > 0
GROUP BY ticker, settlement_date
),
latest AS
(
SELECT
ticker,
argMax(dtc, settlement_date) AS latest_dtc,
argMax(si, settlement_date) AS latest_si,
toString(max(settlement_date)) AS snapshot_label
FROM history
GROUP BY ticker
)
SELECT
l.ticker AS symbol,
l.snapshot_label AS snapshot_label,
round(l.latest_si / 1e6, 1) AS short_interest_millions,
round(l.latest_dtc, 2) AS days_to_cover_ratio,
round(100 * countIf(h.dtc <= l.latest_dtc) / count(), 0) AS percentile_5y_pct
FROM history AS h
INNER JOIN latest AS l ON h.ticker = l.ticker
GROUP BY l.ticker, l.snapshot_label, l.latest_si, l.latest_dtc
ORDER BY percentile_5y_pct DESC6개 종목 중 가장 높은 NVDA은 지난 5년 범위 내에서 100 백분위수에 위치하며, 커버에 필요한 일수는 2.47일입니다. 가장 낮은 XOM은 76 백분위수에 위치합니다. 공매도 주식 수 원본 열에는 324.1백만 주와 42.7백만 주가 기록되어 있는데, 이 열은 포지셔닝보다는 기업 규모를 더 잘 반영하므로 종목 간 직접 비교가 불가능합니다. COT(Commitment of Traders) 순포지션 역시 계약 간 비교가 불가능한 것과 같은 이치입니다.
백분위수는 원본 수치가 변하지 않아도 움직일 수 있으며, 그 반대의 경우도 가능합니다. 특정 종목을 3년간 추적하면 이러한 현상을 확인할 수 있습니다.
모든 수치 뒤에 숨겨진 정확한 SQL
WITH history AS
(
SELECT
settlement_date AS d,
max(toFloat64(days_to_cover)) AS dtc
FROM global_markets.stocks_short_interest
WHERE ticker = 'AAPL'
AND settlement_date >= '2023-07-01'
AND settlement_date < '2026-07-01'
AND days_to_cover > 0
GROUP BY settlement_date
)
SELECT
toString(a.d) AS settlement_date,
formatDateTime(a.d, '%b %e, %Y') AS as_of_label,
round(a.dtc, 2) AS days_to_cover_ratio,
round(100 * countIf(b.dtc <= a.dtc) / count(), 0) AS window_percentile_pct
FROM history AS a
CROSS JOIN history AS b
GROUP BY a.d, a.dtc
ORDER BY a.d72회의 월 2회 측정치 전반에 걸쳐 비율은 좁은 범위 내에 머물지만, 백분위수 선은 0에서 100 사이의 범위를 대부분 포괄합니다. Jun 30, 2026에 측정된 마지막 수치는 커버에 필요한 일수 1.73일로, 해당 기간 내 17 백분위수를 기록했습니다.
두 가지 한계점, 명확한 설명
스냅샷은 화요일 기준이며 금요일에 전달됩니다
포지션은 화요일 종가 기준이며 보고서는 금요일 오후에 발송됩니다. 따라서 보고서가 전달될 시점에는 이미 3거래일이 지난 상태이며, 수요일에 반전된 범주는 과거의 상황을 보여줍니다. 아래 패널은 SPY가 각 화요일 종가부터 그 다음 금요일 종가까지 얼마나 움직였는지 측정합니다.
모든 수치 뒤에 숨겨진 정확한 SQL
WITH spy AS
(
SELECT
date,
toFloat64(close) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
AND date >= '2016-01-01'
AND date < '2026-07-01'
)
SELECT
toString(toYear(tue.date)) AS year,
count() AS session_pair_count,
round(quantileDeterministic(0.5)(abs(fri.close_px / tue.close_px - 1) * 100,
toUInt64(toUnixTimestamp(tue.date))), 2) AS median_gap_move_pct,
round(quantileDeterministic(0.9)(abs(fri.close_px / tue.close_px - 1) * 100,
toUInt64(toUnixTimestamp(tue.date))), 2) AS p90_gap_move_pct
FROM spy AS tue
INNER JOIN spy AS fri ON fri.date = tue.date + 3
WHERE toDayOfWeek(tue.date) = 2
GROUP BY year
ORDER BY year2016 기간 동안 51번의 화요일-금요일 쌍을 분석한 결과, 중앙값 절대 변동폭은 0.88%였으며, 변동폭이 가장 컸던 하위 10%의 구간은 최소 2.2%를 기록했습니다. 2026 기간의 중앙값은 1.26%였습니다. 주가지수 선물은 해당 흐름을 밀접하게 추종하므로, 금요일의 COT(Commitments of Traders, 거래자 포지션 보고서) 수치는 이미 변동이 일어난 시장을 설명합니다. 포지셔닝 데이터는 현재가 아닌 지난 화요일을 나타냅니다.
"상업 거래자(commercials)는 항상 옳다"는 속설입니다
많은 실물 시장에서 상업 거래자 범주는 구조적으로 매도 포지션을 취하는데, 이는 생산자가 이미 보유한 생산물에 대해 헤지(hedge)를 하기 때문입니다. 10년 중 거의 매주 순매도 상태를 유지하는 것은 해당 분류의 특징일 뿐, 투자 성과를 의미하는 것은 아닙니다. COT의 어떤 범주를 근거로 주장을 펼치려면 명확한 투자 기간, 설정된 임계값, 실패한 기간을 포함한 표본, 그리고 사전에 시도된 임계값의 개수에 대한 정직한 집계가 필요합니다. 이러한 원칙은 풋/콜 비율(put/call ratio)이 높으면 강세인가를 포함한 모든 군중 포지셔닝 지표에 동일하게 적용됩니다.
CFTC 원본 파일 직접 확인하기
유료 다이버전스 지표를 사용할 필요는 없습니다. CFTC는 매주 보고서를 자체 거래자 포지션 보고서(Commitments of Traders) 페이지에 게시합니다. 이 보고서는 숏(short) 및 롱(long) 형식, 선물 전용 및 선물·옵션 결합 변형으로 제공되며, 1986년까지 거슬러 올라가는 과거 데이터와 함께 쉼표로 구분된 텍스트 파일로 구성됩니다. 스프레드시트의 정확성을 유지하려면 두 가지 습관이 필요합니다. 첫째, 동일한 주차라도 선물 전용 수치와 결합 수치가 다르므로 한 가지 변형을 선택하여 일관되게 사용하십시오. 둘째, 순매수(raw net) 수치가 아닌 비중(share)을 기준으로 백분위수를 계산하십시오.
자주 묻는 질문(FAQ)
COT 보고서에서 상업적(commercial) 및 비상업적(non-commercial) 거래자는 무엇을 의미합니까?
상업적 거래자는 생산자가 생산량을 헤지하거나 은행이 스왑 북(swap book)을 헤지하는 등 사업적 노출을 방어하기 위해 시장을 이용한다고 CFTC에 신고한 주체입니다. 비상업적 거래자는 그러한 헤지 목적 없이 보고 대상이 되는 계좌로, 주로 대규모 투기 세력과 관리형 선물 프로그램(managed futures programs)이 이에 해당합니다. 이 분류는 거래자의 자발적 신고에 따릅니다.
COT 보고서는 지연되어 발표됩니까?
그렇습니다. 포지션은 화요일 종가 기준으로 집계되어 금요일 오후에 발표되므로, 데이터가 사용자에게 도달할 시점에는 이미 3거래일이 지난 상태입니다.
주식에 대한 COT 보고서도 있습니까?
개별 종목에 대해서는 없습니다. 가장 유사한 지표로는 월 2회 발표되는 공매도 잔고 보고(short interest filings)와 월간 FINRA 신용융자 통계(FINRA margin debt statistics)가 있습니다. 두 지표 모두 시차를 두고 발표되며, 절대적인 수치보다는 백분위수로 해석하는 것이 더 유용합니다.
여기에 포함된 모든 패널은 해당 데이터를 산출한 SQL과 함께 제공됩니다. 패널을 열고 티커(ticker)를 변경하면, Strasmore 터미널에서 동일한 연산이 모든 종목에 적용됩니다.