1. 거래량에 실린 '진짜 힘'을 수치화하다: 포스 인덱스의 탄생
주식 투자를 하다 보면 "전고점을 드디어 돌파했다!"며 환호하고 매수했는데, 다음 날 거짓말처럼 폭락해 버리는 '가짜 돌파(속임수)'에 당해본 뼈아픈 경험이 한 번쯤 있으실 겁니다. 정신과 의사 출신의 전설적인 트레이더 알렉산더 엘더(Alexander Elder) 박사는 이러한 세력의 함정을 걸러내기 위해 시장의 세 가지 물리적 요소를 하나로 융합했습니다.
시장의 진짜 힘은 '방향(상승/하락)', '크기(등락폭)', 그리고 그 움직임을 강하게 밀어붙이는 연료인 '거래량(추동력)'에서 나옵니다. 포스 인덱스(Force Index)는 단순히 가격만 보거나 거래량만 따로 보던 기존의 단편적인 분석을 깨고, 이 세 가지 변수를 곱하여 시장을 장악하고 있는 매수세(Bulls)와 매도세(Bears)의 절대적인 힘(Force)을 오실레이터로 계산해 내는 혁신적인 지표입니다.
2. 수리적 원리와 계산 구조
포스 인덱스는 어제보다 오늘 가격이 얼마나 올랐는지(크기와 방향)에 오늘의 거래량(추동력)을 곱하여 거친 원시 데이터(Raw Data)를 만든 후, 이를 부드럽게 평활화(Smoothing)하여 완성됩니다.
Step 1. 일일 포스 인덱스(Raw FI) 산출
당일 종가($C_t$)에서 전일 종가($C_{t-1}$)를 뺀 변동폭에 당일의 전체 거래량($V_t$)을 곱합니다. 주가가 올랐다면 양수(+), 내렸다면 음수(-)가 되며, 거래량이 크게 터질수록 그 값은 기하급수적으로 커집니다.
Step 2. 지수 평활을 통한 추세선 도출
매일의 일일 포스 인덱스 값은 톱니바퀴처럼 너무 거칠게 요동치기 때문에, 앞서 우리가 다루었던 002번 지수 이동평균선(EMA)을 적용하여 불필요한 노이즈를 걸러냅니다. 알렉산더 엘더는 단기 스윙 타점을 잡을 땐 2일 EMA를, 중기적인 추세의 힘을 판단할 땐 13일 EMA를 사용할 것을 적극 권장했습니다.
3. 차트에서 나타나는 수리적 특성: KH바텍(A060720) 분석 사례
가격과 거래량이 만들어내는 폭발적인 물리력을 KH바텍의 차트를 통해 확인해 보겠습니다.

- 진짜 돌파(True Breakout)의 증명: 2025년 하반기 내내 지루한 횡보를 이어가던 주가가 2026년 1월, 엄청난 거래량을 동반하며 수직으로 상승합니다. 이때 하단 패널의 포스 인덱스를 보면, 0선 부근에 죽은 듯 머물던 지표가 붉은색 영역(Bulls Power)으로 거대하게 치솟으며 폭발적인 매수세가 시장을 완벽히 장악했음을 증명합니다. 이는 단순한 속임수가 아니라 강력한 대시세의 시작임을 확신할 수 있는 근거가 됩니다.
- 눌림목과 힘의 소진: 이후 주가가 고점에서 단기 조정을 받을 때 거래량이 급감하며 포스 인덱스 값 역시 수직 하락하여 0선으로 회귀하려는 모습을 보입니다. 만약 거시적인 상승 추세가 살아있다면, 이 포스 인덱스가 0선 근처(또는 음수 영역)까지 내려와 매도세가 힘을 잃었을 때가 최적의 눌림목 매수 타점이 됩니다.
4. 장점 및 한계
- 장점: 가격만 슬쩍 올려놓고 거래량은 텅텅 비어있는 '가짜 돌파(세력의 꼬시기)'를 걸러내는 데 전 세계에서 가장 탁월한 지표입니다. 진짜 대세 상승장에서는 가격 상승과 함께 막대한 거래량이 필연적으로 실리므로 포스 인덱스가 위로 강력하게 치솟습니다.
- 한계: 계산식에 거래량이 그대로 곱해지므로 '규모의 의존성'이 큽니다. 시가총액이 작고 평소 거래량이 없던 테마주가 갑자기 상한가를 치며 거래량이 수천 배 폭발할 경우, 지표의 산출 값이 수백만, 수천만 단위로 튀어버려(Outlier) EMA 선이 심각하게 왜곡되는 수리적 맹점이 존재합니다.
5. 파이썬 구현 (변동폭과 거래량의 융합 연산)
판다스의 diff() 메서드를 사용하여 전일 대비 종가의 증감을 아주 직관적으로 구하고, 여기에 volume을 곱한 뒤 ewm()으로 평활화하는 깔끔한 벡터 연산 코드입니다.
import pandas as pd
def calculate_force_index(df, period=13):
# 1. 일일 포스 인덱스 (전일 대비 종가 변동폭 * 당일 거래량)
# diff()는 현재 행의 값에서 바로 이전 행의 값을 뺀 차이를 반환합니다.
df['FI_Raw'] = df['close'].diff() * df['volume']
# 2. 13일 지수 이동평균(EMA)으로 평활화하여 톱니바퀴 같은 노이즈 제거
df['Force_Index_13'] = df['FI_Raw'].ewm(span=period, adjust=False).mean()
return df
6. 실전 Tip 및 요약
알렉산더 엘더가 제안한 가장 완벽한 타점은 바로 추세장 속의 눌림목입니다. 거시적인 추세 지표(예: 60일 이동평균선)가 뚜렷하게 우상향하고 있을 때, 주가가 단기적인 조정을 받으며 13일(혹은 2일) 포스 인덱스가 0선 아래(음수)로 파고드는 순간을 기다리십시오. 이는 대세 상승장 속에서 매도세(Bears)가 마지막 힘을 쥐어짜다 소진해 버리는 함정 구간입니다. 이 푸른색 음수 영역에서 다시 지표가 상승으로 고개를 들 때 매수하면, 손익비가 극대화되는 가장 안전하고 예리한 타점을 쟁취할 수 있습니다.
'기술지표' 카테고리의 다른 글
| ROC(Rate of Change) 지표를 활용한 주가 모멘텀(속도) 분석 [지표 백과 035] (0) | 2026.03.07 |
|---|---|
| DMI 지표(+DI, -DI) 교차 타점 및 ADX를 활용한 추세 강도 확인 [지표 백과 034] (0) | 2026.03.06 |
| 돈치안 채널(Donchian Channel) 파이썬 백테스트 및 터틀 트레이딩 [지표 백과 032] (0) | 2026.03.04 |
| 윌리엄스 %R 지표 단기 과매도/과매수 헌팅 실전 매매 기법 [지표 백과 031] (1) | 2026.03.03 |
| 아룬(Aroon) 지표 수식 및 새로운 추세의 시작점 파악하는 법 [지표 백과 030] (1) | 2026.03.02 |