본문 바로가기
기술지표

촙피니스 인덱스(CHOP) 지표: 횡보장 가짜 신호(휩쏘) 피하는 법 [지표 백과 036]

by 흔한트리이더 2026. 3. 8.
반응형

1. 시장의 '카오스(무질서)'를 측정하다: 촙피니스 인덱스의 탄생

추세 추종 트레이더들을 가장 고통스럽게, 그리고 계좌를 가장 빠르게 녹여버리는 주범은 바로 뚜렷한 방향 없이 위아래로 거칠게 요동치는 횡보장, 즉 '촙피(Choppy)한 시장'입니다. 호주 출신의 트레이더 빌 드레거(Bill Dreiss)는 프랙탈 기하학과 혼돈 이론(Chaos Theory)을 바탕으로 이 고통을 피할 수 있는 지표를 고안해 냈습니다.

우리가 앞서 배운 001번 이동평균선(SMA)이나 034번 방향성 지수(DMI)가 "주가가 위로 가는가, 아래로 가는가?"라는 '방향'을 맞추려 노력했다면, 촙피니스 인덱스(Choppiness Index, CHOP)는 방향에는 전혀 관심이 없습니다. 오직 "현재 시장이 질서 정연하게 뻗어나가는 추세장인가, 아니면 무질서하게 엉켜있는 횡보장인가?"라는 시장의 '상태'만을 0부터 100 사이의 수치로 냉정하게 판독해 냅니다.

2. 수리적 원리와 계산 구조

CHOP 지표는 일정 기간(보통 14일) 동안 시장이 움직인 '실제 누적 거리'와, 그 기간 동안 도달했던 '최고점과 최저점 사이의 직선거리'를 로그(Log) 함수로 비교합니다. 주가가 일직선으로 뻗어나갔다면 두 거리가 비슷해지고(추세장), 위아래로 톱니바퀴처럼 움직였다면 누적 거리가 훨씬 길어집니다(횡보장).

Step 1. 진정한 변동폭(TR) 누적합 계산

024번 ATR 지표에서 사용된 진정한 변동폭(True Range)을 14일 동안 모두 더하여, 주가가 위아래로 실제로 쉼 없이 움직인 총 이동 거리를 구합니다.

Step 2. 로그 스케일 비교를 통한 지수화

이 누적 거리를 14일 동안의 '최고가 - 최저가' 직선거리로 나눈 뒤, 상용로그함수를 취하여 0~100 사이의 백분율로 환산합니다.

촙피니스수식

결과값이 100에 가까울수록 심각한 무질서(횡보장)를 뜻하며, 0에 가까울수록 강력한 질서(추세장)를 의미하는 독특한 역방향 구조를 가집니다.

3. 실전 매매 활용법 (시장의 상태 판독 테이블)

CHOP 지표는 015번 피보나치 되돌림에서 자주 보았던 자연의 핵심 비율, 61.838.2를 절대적인 기준선으로 삼아 시장의 국면을 4가지로 나눕니다.

지표 수치 (CHOP) 시장의 상태 (Market Regime) 실전 매매 대응 전략 (Action)
61.8 이상 극단적 횡보장 (무질서)
주가가 박스권에 갇혀 에너지를 응축 중입니다.
추세 매매 금지. 휩쏘(가짜 신호)가 난무하므로 돌파 매매나 추세 추종을 멈추고 관망합니다.
61.8 하향 돌파 추세의 시작 (응축 폭발)
무질서가 끝나고 한 방향으로 터지기 시작합니다.
진입 타점 탐색. 이때 가격이 박스권을 뚫어내는 방향(상방 또는 하방)으로 과감하게 편승해야 합니다.
38.2 이하 강력한 추세장 (질서)
상승이든 하락이든 강력한 가속도가 붙은 상태입니다.
추세 홀딩. 추세 추종 시스템의 수익이 극대화되는 황금 구간입니다. 포지션을 길게 끌고 갑니다.
38.2 상향 돌파 추세의 피로 (조정 임박)
직진하던 에너지가 소진되어 다시 엉키기 시작합니다.
분할 익절 및 청산 준비. 추세가 멈추고 다시 지루한 박스권으로 들어갈 확률이 높으므로 수익을 확정 짓습니다.

4. 차트에서 나타나는 수리적 특성: SG(A255220) 분석 사례

시장의 무질서와 질서가 교차하는 순간을 SG의 차트를 통해 눈으로 확인해 보겠습니다.

  • 무질서의 늪 (에너지 응축): 2025년 9월 중순을 보십시오. 하단 패널의 CHOP 지표가 붉은색 점선인 61.8 위로 솟구치며 붉은 영역을 만듭니다. 이 시기 상단의 캔들은 방향을 잃고 좁은 박스권에 갇혀 톱니바퀴처럼 움직이는 전형적인 '촙피(Choppy)' 상태임을 훌륭하게 진단해 냅니다. 이때는 섣불리 방향을 예측하고 들어가면 잦은 손절만 발생합니다.
  • 질서의 탄생 (대시세 폭발): 반면 2026년 1월 하순, CHOP 지표가 푸른색 점선인 38.2 아래로 깊숙이 파고들기 시작합니다. 오랫동안 응축되었던 에너지가 마침내 폭발하며, 주가가 막대한 거래량과 함께 수직으로 뻗어나가는 '강력한 추세장(질서)'으로 진입했음을 수리적으로 증명하는 경이로운 순간입니다.

5. 장점 및 한계

  • 장점: 이동평균선과 같은 추세 지표들의 치명적 약점인 '횡보장 휩쏘(가짜 신호)' 구간을 걸러내는 완벽한 필터(Filter) 역할을 합니다. 시스템 트레이딩에서 "지금은 매매를 쉴 때인가, 적극적으로 포지션을 잡을 때인가?"를 기계적으로 알려주는 희귀한 변동성 지표입니다.
  • 한계: 명심하십시오. CHOP 지표는 주가가 오를지 내릴지(방향성)를 절대 알려주지 않습니다. 지표가 38.2 아래로 내려가며 '강한 추세'를 알리더라도, 그것이 강력한 상승장일 수도 있고, 반대로 끝없는 폭락장일 수도 있습니다. 따라서 반드시 방향성을 잡아주는 지표와 융합해야만 반쪽짜리 지표를 벗어날 수 있습니다.

6. 파이썬 구현 (로그 함수와 롤링 연산)

판다스의 롤링(rolling) 함수를 통해 $N$일간의 TR 합계와 고가/저가 변동폭을 추출하고, 넘파이(Numpy)의 상용로그(log10) 함수로 엮어내는 깔끔한 수리적 구현 알고리즘입니다.

import pandas as pd
import numpy as np

def calculate_choppiness_index(df, period=14):
    # 1. TR (True Range) 계산
    tr1 = df['high'] - df['low']
    tr2 = (df['high'] - df['close'].shift(1)).abs()
    tr3 = (df['low'] - df['close'].shift(1)).abs()
    df['TR'] = pd.concat([tr1, tr2, tr3], axis=1).max(axis=1)
    
    # 2. 14일간 TR의 누적 합계 계산 (실제 주가의 쉼 없는 총 이동 거리)
    sum_tr = df['TR'].rolling(window=period).sum()
    
    # 3. 14일간의 최고가와 최저가 추출 (전체 박스권의 수직 높이)
    highest_high = df['high'].rolling(window=period).max()
    lowest_low = df['low'].rolling(window=period).min()
    
    # 4. CHOP 지표 산출 (로그 스케일 적용, 0~100 환산)
    df['CHOP'] = 100 * (np.log10(sum_tr / (highest_high - lowest_low)) / np.log10(period))
    
    return df

7. 실전 Tip 및 요약

시스템 트레이더들에게 가장 완벽한 매수 시나리오는 다음과 같습니다. 주가가 오랜 기간 횡보하며 CHOP 지표가 61.8 이상(붉은색 영역)으로 치솟아 에너지가 팽팽하게 응축된 상태를 기다립니다. 그리고 어느 날, CHOP 지표가 61.8 선을 뚫고 아래로 급격히 떨어지기 시작할 때, 주가가 이동평균선 정배열이나 박스권 상단을 위로 돌파(Breakout)한다면 주저하지 말고 편승하십시오. 오랫동안 짓눌렸던 무질서가 거대한 상승의 질서로 폭발하는 순간을 잡아내는 것이 퀀트 투자의 정수입니다.


*본 포스팅은 기술적 지표의 수리적 이해를 돕기 위한 참고 자료이며, 투자 결과에 대한 책임은 투자자 본인에게 있습니다.*
반응형