Strasmore Research
학습 Matt Connor작성자 Matt Connor · data as of August 14, 2026 · refreshed weekly

주식 vs 지수 풋/콜 비율 차이와 해석 방법

개별 주식과 지수 풋/콜 비율(put/call ratio)은 산출 방식과 정상 범위가 다릅니다. 지수 옵션이 주식보다 높은 수치를 보이는 이유와 시장 상황에 따른 올바른 비교 분석 기준을 상세히 설명합니다.

풋/콜 비율의 이해

높은 풋/콜 비율(put/call ratio)은 단일한 수치가 아닙니다. 동일한 옵션 거래 데이터에서 최소 세 가지 지표가 산출됩니다. 하나는 개별 주식 옵션만을 집계하며, 다른 하나는 지수 상품만을 집계합니다. 마지막 세 번째는 두 가지를 모두 합산합니다. 각 지표는 고유한 정상 범위를 가지고 있으며, 이 때문에 1.20이라는 수치가 어떤 지표에서는 이상치(outlier)가 될 수 있고 다른 지표에서는 평범한 수준이 될 수 있습니다. 해당 지표 자체가 생소하다면, 풋/콜 비율이 측정하는 것에서 기초적인 내용을 확인할 수 있습니다.

지수 풋/콜 비율이 주식 비율보다 높게 나타나는 이유는 무엇인가

누가 매수 주체인지부터 살펴보아야 합니다. 지수 풋옵션은 분산 투자된 전체 포트폴리오를 방어할 수 있는 가장 저렴한 단일 수단입니다. 400개 종목을 보유한 펀드는 400개의 개별 풋옵션을 매수하지 않습니다. 대신 지수 풋옵션을 매수하고 이를 캘린더 방식으로 롤오버(roll-over)하며, 지불한 프리미엄을 보험 비용으로 회계 처리합니다. 해당 거래량은 펀드가 이미 보유한 주식에 대한 방어 수단이며, 이는 펀드 매니저의 시장 전망과 관계없이 발생합니다.

개별 주식 옵션은 구성이 다릅니다. 거래량의 상당 부분은 개별 종목에 대한 콜옵션 매수이며, 반대편에서는 커버드콜(covered-call) 매도 물량이 콜옵션 거래량을 추가합니다. 개별 종목의 풋옵션 매수 역시 존재하지만, 이는 훨씬 큰 규모의 콜옵션 흐름과 함께 나타납니다.

공식은 이러한 흐름을 구분하지 못합니다. 헤지(hedge) 수요가 많은 풋옵션 거래량을 적은 콜옵션 거래량으로 나누면 그 몫은 1.00 근처나 그 이상이 됩니다. 반면 완만한 풋옵션 거래량을 많은 콜옵션 거래량으로 나누면 0.50 근처가 됩니다. 하나의 공식에 두 가지 정상 범위가 존재하는 셈입니다.

아래 패널은 8개 주요 종목과 4개 광범위 시장 ETF에 대해 지난 60거래일 동안의 계약 거래량을 집계한 후, 각 기초자산별로 풋옵션 거래량을 콜옵션 거래량으로 나눈 값입니다.

조회기초자산별 풋/콜 거래량 비율, 최근 60거래일 기준
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    underlying_symbol                                                    AS symbol,
    if(underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA'),
       'broad-market ETF',
       'single stock')                                                   AS bucket,
    round(sumIf(volume, startsWith(lower(option_type), 'p'))
          / sumIf(volume, startsWith(lower(option_type), 'c')), 2)       AS put_call_ratio,
    round(sumIf(volume, startsWith(lower(option_type), 'c')) / 1e6, 1)   AS call_volume_millions,
    round(sumIf(volume, startsWith(lower(option_type), 'p')) / 1e6, 1)   AS put_volume_millions
FROM global_markets.options_greeks
WHERE date >= (SELECT toDate(max(date))
               FROM global_markets.options_greeks
               WHERE volume > 0) - 60
  AND volume > 0
  AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'JPM', 'KO', 'JNJ',
                            'SPY', 'QQQ', 'IWM', 'DIA')
GROUP BY symbol
HAVING sumIf(volume, startsWith(lower(option_type), 'c')) > 0
ORDER BY put_call_ratio ASC
Run this yourself

표본 간의 스프레드(spread)는 넓습니다. 가장 낮은 수치는 MSFT0.43이며, 가장 높은 수치는 IWM2.86로, 해당 기간 동안 9.6백만 계약의 콜옵션이 거래되었습니다. bucket 열은 각 행이 개별 주식인지 광범위 시장 ETF인지를 나타냅니다. 이를 기준으로 비율 열을 확인하십시오.

진행하기 전에 한 가지 주의할 점이 있습니다. 공표되는 지수 비율은 지수 자체를 기초자산으로 하는 옵션을 사용하며, 이는 주식 인도 대신 만기에 현금으로 결제됩니다. 미니 지수 옵션(Mini index options)은 해당 계약의 명목 금액을 축소한 버전입니다. 본 패널에서는 동일한 헤지 흐름을 대변하는 기초자산별 대용물로 광범위 시장 ETF 옵션을 사용했으며, 바로 이 지점에서 데이터 제공업체 간의 의견이 갈립니다.

각 공시된 비율은 무엇을 집계하는가?

  • 주식 전용(Equity-only): 개별 기업 주식에 대한 옵션으로, 단일 종목 흐름을 나타내며 대부분의 세션에서 콜옵션 비중이 높다.
  • 지수 전용(Index-only): 지수 레벨에 대한 옵션으로, 현금 결제 방식이며 포트폴리오 헤지 거래량의 대부분을 차지한다.
  • 전체(Total): 위 두 범주에 속하는 모든 계약을 합산하며, 콜옵션 거래량 대비 풋옵션 거래량을 나타낸다.

이 세 가지 지표는 모두 거래량(volume)을 집계한다. 이는 세션 이후에도 유지되는 포지션이 아니라, 해당 세션 동안 손바뀜이 일어난 계약 수를 의미한다. 거래량과 미결제약정(open interest)은 이 두 개념을 구분한다.

전체 풋/콜 비율(put/call ratio)은 나머지 두 비율의 평균입니까?

아닙니다. 전체 비율은 가중치가 적용된 혼합값이며, 이때 가중치는 콜옵션 거래량(call volume)입니다. 두 버킷(bucket) 전체 콜옵션 거래량에서 지수 버킷이 차지하는 비중을 w라고 합시다. 전체 비율은 주식 비율에 두 비율 간 차이와 w를 곱한 값을 더한 것과 같습니다. 지수 버킷의 콜옵션 거래량 비중이 매우 작을 때는 전체 비율이 주식 비율과 거의 일치합니다. 반대로 지수 버킷이 거래량을 압도할 때는 전체 비율이 지수 비율 쪽으로 상승합니다.

다음 패널은 두 구성 요소의 값을 측정된 60거래일(sixty-session) 수준으로 고정하고 w를 0%에서 100%까지 변화시킵니다.

조회두 버킷의 콜 거래량 가중 평균 합계
모든 수치 뒤에 숨겨진 정확한 SQL
WITH components AS
(
    SELECT
        round(sumIf(volume, startsWith(lower(option_type), 'p') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA'))
              / sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')), 3) AS equity_ratio,
        round(sumIf(volume, startsWith(lower(option_type), 'p') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA'))
              / sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA')), 3) AS index_ratio
    FROM global_markets.options_greeks
    WHERE date >= (SELECT toDate(max(date))
                   FROM global_markets.options_greeks
                   WHERE volume > 0) - 60
      AND volume > 0
      AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'JPM', 'KO', 'JNJ',
                                'SPY', 'QQQ', 'IWM', 'DIA')
    HAVING sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA')) > 0
       AND sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')) > 0
)
SELECT
    concat(toString(step * 10), '%')                                    AS index_share_of_call_volume,
    equity_ratio,
    index_ratio,
    round(equity_ratio + (index_ratio - equity_ratio) * (step / 10), 3) AS blended_total_ratio
FROM
(
    SELECT
        equity_ratio,
        index_ratio,
        arrayJoin(range(11)) AS step
    FROM components
)
ORDER BY step
Run this yourself

구성 요소가 0.5621.396로 고정된 상태에서, 지수 버킷의 콜옵션 거래량 기여도가 0%일 때 혼합값은 0.562이 되며, 100%일 때는 1.396이 됩니다. 지수 버킷의 콜옵션 거래량 비중이 50%로 균등하게 나뉠 때, 전체 비율은 0.979으로 기록됩니다. 이 11개의 행 전체에서 구성 요소의 값은 변하지 않았습니다. 오직 혼합 비율만이 변했을 뿐입니다.

두 부문이 모두 하락할 때 전체 비율이 상승할 수 있는가?

가능하며, 이것이 단일 헤드라인 수치가 가진 함정입니다. 산술적 이해를 돕기 위해 둥근 숫자를 사용한 가상의 두 세션을 예로 들어보겠습니다.

첫째 날: 주식(equity) 부문에서 콜옵션 1,000,000계약과 풋옵션 600,000계약이 거래되어 비율은 0.60입니다. 지수(index) 부문에서는 콜옵션 200,000계약과 풋옵션 280,000계약이 거래되어 비율은 1.40입니다. 전체 합계는 풋옵션 880,000계약 대 콜옵션 1,200,000계약으로, 비율은 0.73이 됩니다.

둘째 날: 두 부문의 비율이 모두 하락합니다. 주식 부문은 콜옵션 600,000계약과 풋옵션 330,000계약으로 0.55를 기록합니다. 지수 부문은 콜옵션 800,000계약과 풋옵션 1,040,000계약으로 1.30을 기록합니다. 전체 합계는 1,370,000 대 1,400,000으로, 비율은 0.98이 됩니다.

두 구성 요소는 모두 하락했습니다. 그러나 전체 비율은 0.25포인트 상승했습니다. 여기서 유일하게 변한 것은 더 높은 비율을 가진 부문에 속한 콜옵션 거래량의 비중으로, 17퍼센트에서 57퍼센트로 증가했습니다. 전체 수치만 지켜보는 독자는 어느 부문에서도 나타나지 않은 풋옵션 활동의 급증을 기록하게 될 것입니다.

이 비중은 실시간 데이터에서 고정된 값이 아닙니다. 아래 패널은 두 부문의 비율과 ETF 부문의 콜옵션 거래량 비중을 세션별로 추적합니다.

조회개별 주식 버킷 대 ETF(상장지수펀드) 버킷, 일별 비교
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    toString(date)                 AS session_date,
    formatDateTime(date, '%b %e')  AS session_label,
    round(sumIf(volume, startsWith(lower(option_type), 'p') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA'))
          / sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')), 2) AS equity_ratio,
    round(sumIf(volume, startsWith(lower(option_type), 'p') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA'))
          / sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA')), 2) AS index_style_ratio,
    round(index_style_ratio - equity_ratio, 2)                                                                            AS ratio_gap,
    round(100 * sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA'))
          / sumIf(volume, startsWith(lower(option_type), 'c')), 1)                                                        AS etf_share_of_calls_pct
FROM global_markets.options_greeks
WHERE date >= (SELECT toDate(max(date))
               FROM global_markets.options_greeks
               WHERE volume > 0) - 45
  AND volume > 0
  AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'JPM', 'KO', 'JNJ',
                            'SPY', 'QQQ', 'IWM', 'DIA')
GROUP BY date
HAVING sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA')) > 0
   AND sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')) > 0
ORDER BY date
Run this yourself

조회 가능한 가장 이른 세션인 Jun 29에 단일 종목 부문은 0.5를 기록했고 ETF 부문은 1.55을 기록하여 1.05의 격차를 보였으며, ETF 부문의 콜옵션 거래량 비중은 45.2퍼센트였습니다. Aug 12에는 해당 항목들이 0.55, 1.34, 그리고 0.79의 격차를 나타냈으며, ETF 비중은 49.5퍼센트였습니다. 격차 열은 표시된 32 세션의 양 끝에서 모두 양수이며, 비중 열은 그 아래에서 움직입니다.

왜 두 출처에서 같은 날짜의 풋/콜 비율(put/call ratio)을 다르게 산출하는가?

분류 방식의 차이, 그리고 ETF 옵션이 모호한 사례이기 때문입니다. ETF는 상장 유가증권이므로 주식(equity) 범주에 포함하는 것이 타당합니다. 동시에 지수를 추종하므로 지수(index) 범주에 포함해야 한다는 주장도 가능합니다. 데이터 제공업체들은 이를 각기 다르게 처리합니다. 어떤 곳은 ETF 옵션을 주식 비율에 합산하고, 어떤 곳은 상장지수상품(ETP)을 별도 항목으로 보고하며, 또 다른 곳은 지수 상품과 함께 묶기도 합니다. 차트의 라벨은 어느 경우든 동일하게 표시됩니다.

이러한 분류 방식의 차이가 미치는 영향은 측정 가능합니다. 아래 패널은 동일한 기간에 대해 한 범주의 비율을 두 번 계산한 결과입니다. 한 번은 ETF 옵션을 제외했고, 다른 한 번은 포함했습니다.

조회ETF 옵션 포함 및 제외 시 동일 주식 비율 산출
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    toString(date)                 AS session_date,
    formatDateTime(date, '%b %e')  AS session_label,
    round(sumIf(volume, startsWith(lower(option_type), 'p') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA'))
          / sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')), 2) AS equity_ratio_etfs_excluded,
    round(sumIf(volume, startsWith(lower(option_type), 'p'))
          / sumIf(volume, startsWith(lower(option_type), 'c')), 2)                                                           AS equity_ratio_etfs_included
FROM global_markets.options_greeks
WHERE date >= (SELECT toDate(max(date))
               FROM global_markets.options_greeks
               WHERE volume > 0) - 30
  AND volume > 0
  AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'JPM', 'KO', 'JNJ',
                            'SPY', 'QQQ', 'IWM', 'DIA')
GROUP BY date
HAVING sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')) > 0
ORDER BY date
Run this yourself

패널의 마지막 거래일인 Aug 12의 경우, 개별 주식만 포함한 수치는 0.55이었으며, ETF 옵션을 합산한 버전은 0.94였습니다. 같은 날, 같은 거래 기록임에도 축에 적힌 명칭은 동일하지만 결과값은 다릅니다. 따라서 한 제공업체의 데이터 시리즈에서 학습한 임계값(threshold)을 다른 업체의 데이터에 그대로 적용할 수는 없습니다.

그렇다면 높은 풋/콜 비율(put/call ratio)은 어느 정도를 의미하는가?

실무적인 기준은 좁게 설정해야 합니다. 동일한 출처와 동일한 산출 방식으로 도출된 과거 데이터와 비교하는 것이 유일한 방법입니다. 백분위수(percentile)가 그 해답을 제시합니다. 즉, 오늘 측정된 수치가 해당 데이터 계열의 지난 1년간 기록 중 어디에 위치하는지를 확인하는 것입니다. 1.00이라는 고정된 수치는 기준이 될 수 없습니다. 주식 계열에서는 1.00이 극단적인 수치인 반면, 지수 계열에서는 일상적인 수치이기 때문입니다.

비교의 객관성을 유지하기 위해서는 두 가지 습관이 필요합니다. 첫째, 수치를 인용하기 전에 산출 방식에 관한 주석을 읽어야 합니다. 특히 ETF 처리 방식을 반드시 확인해야 합니다. 둘째, 전체 수치뿐만 아니라 구성 요소도 함께 살펴봐야 합니다. 전체 수치는 구성 종목의 변화만으로도 움직일 수 있기 때문입니다. 높은 풋/콜 비율이 강세 신호인지 여부는 이에 대한 해석을 심화하며, 풋/콜 비율 산출 방법은 산술적 과정을 단계별로 설명합니다.

데이터 주석 및 분류 정의

ETF 분류에는 SPY, QQQ, IWM, DIA가 포함됩니다. 개별 주식 분류에는 AAPL, MSFT, NVDA, AMZN, TSLA, JPM, KO, JNJ가 포함됩니다. 두 분류 모두 전체 시장이 아닌 해당 범주의 표본이므로, 여기에 제시된 수치는 특정 발행사의 대표 지표를 재현하는 것이 아니라 시장의 흐름을 예시하는 용도입니다.

각 패널은 해당 세션의 콜옵션과 풋옵션 거래량을 각각 합산한 뒤 나눗셈을 수행합니다. 달러 가치나 옵션 프리미엄(option premium)에 따른 가중치는 적용하지 않습니다.

각 기간은 달력상의 날짜가 아닌 거래량이 기록된 가장 최근 세션을 기준으로 합니다. 풋옵션과 콜옵션은 계약 유형의 첫 글자를 기준으로 분류하므로, 'put'과 'call' 대신 'P'와 'C'로 표기하는 데이터 피드도 정확하게 분류됩니다.

세션 내 거래량이 기록된 모든 계약은 외가격(deep out-of-the-money) 행사가격(strike price)을 포함하여 집계에 포함됩니다. 원거리 행사가격은 헤지용 풋옵션 거래량의 상당 부분을 차지하므로, 이를 제외할 경우 ETF 분류의 수치가 과소평가될 수 있습니다.

현금 결제 방식의 유럽형 옵션인 지수 옵션은 ETF 옵션과는 다른 상품입니다. 기초자산별 패널은 지수 헤지 흐름을 대변하는 수단으로 ETF 옵션을 사용하며, 이는 앞서 언급한 분류 문제와 관련이 있습니다.

데이터가 집계되는 과정에서 가장 최근의 한두 세션 데이터는 누락될 수 있습니다.

자주 묻는 질문(FAQ)

주식 옵션의 일반적인 풋/콜 비율(put/call ratio)은 어느 정도입니까?

개별 주식 옵션은 통상 1.00 미만에서 거래가 체결(print)되며, 대부분의 세션에서 콜옵션 거래량이 더 많습니다. 위에서 언급한 최근 60거래일 패널 내 12개 종목 중 가장 낮은 수치는 0.43였습니다. 특정 시리즈의 정상 범위는 공통된 기준치가 아닌, 해당 시리즈의 고유한 과거 데이터를 기준으로 설정됩니다.

지수 풋/콜 비율이 보통 1을 상회하는 이유는 무엇입니까?

지수 풋옵션은 표준적인 포트폴리오 헤지(hedge) 수단이며, 이미 주식을 보유한 운용역들이 정해진 일정에 따라 매수에 나섭니다. 이러한 헤지 거래량은 방향성 매매와 동일한 분수식의 풋옵션 측에 반영되므로, 해당 시리즈는 전체 기록에 걸쳐 더 높은 수준을 유지합니다.

투자 심리 차트에는 보통 어떤 풋/콜 비율이 표시됩니까?

대부분의 공개 차트는 전체 또는 주식 전용 시리즈를 보여주며, 축 라벨에 어떤 데이터인지 명시하는 경우는 드뭅니다. 다른 곳에서 인용된 기준치와 차트를 비교하기 전에 구성 방식을 확인하십시오. 시리즈마다 운영되는 수준이 다르기 때문입니다.

서로 다른 제공업체의 풋/콜 비율을 비교할 수 있습니까?

수준(level)은 서로 호환되지 않습니다. 제공업체마다 ETF 처리 방식과 집계하는 거래소의 범위가 다릅니다. 비교 가능한 부분은 동일한 제공업체 내에서의 방향성과 백분위 순위뿐입니다.


여기에 포함된 모든 패널은 해당 데이터를 생성한 SQL과 함께 제공되므로, 다른 유니버스나 기간을 설정하여 언제든 재구축할 수 있습니다. Strasmore 터미널에서 동일한 질문을 평이한 영어로 입력하십시오.