평균방향성 지수(ADX, Average Directional Index)
평균방향성지수(ADX, Average Directional Index)는 추세의 강도를 측정하고 시장에서 잠재적인 진입 및 청산 지점을 파악하기 위해 사용하는 인기 있는 기술 분석 도구입니다. ADX 지표는 방향성을 고려하지 않는 추세 강도 지표로, 0에서 100까지 범위를 가집니다. 이 지표는 추세의 방향에 관계없이 추세의 강도를 정량화하기 위해 설계되었습니다. ADX는 긍정적 방향 지표(+DI)와 부정적 방향 지표(-DI)라는 두 가지 관련 지표를 기반으로합니다. 이 두 지표는 가격의 방향성 움직임을 측정하는 반면, ADX 자체는 추세의 강도를 평가합니다.
핵심 개념:
- ADX는 0에서 100 사이의 값을 가지며, 높은 값은 강한 추세를, 낮은 값은 약한 추세 또는 횡보 시장을 나타냅니다.
- ADX 자체는 추세의 방향을 나타내지 않습니다. +DI가 -DI보다 높으면 상승 추세의 강도를, -DI가 +DI보다 높으면 하락 추세의 강도를 나타냅니다.
- ADX 값이 상승하면 추세 강도가 증가하고 있음을 의미하며, 하락하면 추세 강도가 약화되고 있음을 의미합니다.
계산 방법:
- True Range (TR) 계산: 현재 고가와 저가의 차이, 현재 고가와 이전 종가의 절대값 차이, 현재 저가와 이전 종가의 절대값 차이 중 가장 큰 값을 TR로 설정합니다.
- TR = max[(Hight-Lowt), |Hight - Closet|, |Lowt - Closet|]
- Directional Movement (+DM, -DM) 계산:
- +DM: 현재 고가 - 이전 고가
(+DM < 0) or (+DM < -DM) → 0 - -DM: 이전 저가 - 현재 저가
(-DM > 0) or (-DM < +DM) → 0
- +DM: 현재 고가 - 이전 고가
- Directional Index (+DI, -DI) 계산: 일정 기간 (일반적으로 14일) 동안의 +DM, -DM 및 TR의 이동평균을 사용하여 계산합니다.
- $\begin{align}\text{+DI} &= \frac{\text{sma(+DM, n)}}{\text{sma(TR, n)}}\cdot 100\\\text{-DI} &= \frac{\text{sma(-DM, n)}}{\text{sma(TR, n)}}\cdot 100 \end{align}$
- Directional Movement Index (DX) 계산:
- $\text{DX} = \frac{|\text{+DI - (-DI)}|}{\text{+DI + (-DI)}} \cdot 100$
- Average Directional Index (ADX) 계산: 일정 기간 (일반적으로 14일) 동안의 DX 값의 이동평균을 계산합니다.
Case | DM+ | 현고가-전고가 | 현고가>전고가 | DI+ | 설명 |
---|---|---|---|---|---|
1 | +, 증가 | 증가 | 강함 | 증가 | 매수세 강함 |
2 | +, 감소 | 감소 | 약함 | 감소 | 매수세 약함 |
Case | DM- | 전저가-현저가 | 전저가>현저가 | DI- | 설명 |
3 | +, 증가 | 증가 | 강함 | 증가 | 매도세 강함 |
4 | +, 감소 | 감소 | 약함 | 감소 | 매도세 약함 |
위 표에서 Case 1-4, 2-3인 경우 추세가 명확해지며 1-3인 경우 변동성 증가를 고려할 수 있습니다.
- +DI > -DI
- 상승추세 가능성
- ADX가 상승인 경우 강한 상승 추세 암시
- +DI < -DI
- 하강추세 가능성
- ADX가 상승인 경우 강한 하락추세
- +DI와 -DI 교차
- +DI가 -DI를 상향돌파(Golden cross) : 매수신호로 상승추세 시작 가능성 시사
- -DI가 +DI를 하향돌파(Death cross): 매도신호로 하락추세 시작 가능성 시사
- ADX
- 상승: 추세강도 강화
- 하락: 추세강도 하락
ADX | 내용 | 방향 | 내용 | |
---|---|---|---|---|
0-25 | 약한 추세 또는 추세 없음 (횡보 시장) | ADX 상승 | 현재 추세가 강화되고 있음을 나타냅니다. | |
25-50 | 강한 추세 | ADX 하락 | 현재 추세가 약화되고 있음을 나타냅니다. | |
50-75 | 매우 강한 추세 | +DI>-DI 위로 교차 | 상승 추세 상승 시작 신호로 해석될 수 있습니다 (ADX가 25 이상일 때 신뢰도 증가) | |
75-100 | 극도로 강한 추세 | +DI가 -DI 아래로 교차 | 하락 추세 하락의 시작 신호로 해석될 수 있습니다 (ADX가 25 이상일 때 신뢰도 증가) |
- 추세 강도 식별: 시장이 추세 추종 전략에 적합한지 또는 횡보 전략에 적합한지 판단하는 데 도움을 줍니다.
- 추세 시작 및 종료 가능성 예측: +DI와 -DI의 교차 및 ADX 값의 변화를 통해 추세의 시작 또는 약화를 예측할 수 있습니다.
- 돌파 매매 확인: ADX가 25 이상으로 상승하면서 가격이 중요한 지지선 또는 저항선을 돌파할 때 추세가 강하게 시작될 가능성을 시사합니다.
- 다른 지표와 함께 사용: ADX는 추세 방향을 알려주지 않으므로 이동평균선, MACD 등 추세 방향을 알려주는 다른 지표와 함께 사용하는 것이 좋습니다.
- DMI는 추세추종지표이므로 횡보장에서는 오신호 발생할 수 있음
- 후행성 지표로 가격변동에 다소 늦은 신호
- 이동평균선, MACD, RSI등 다른 지표와 함께 분석
- EOM을 단독으로 사용하기보다는 다른 지표(예: 이동평균선, MACD, RSI)와 함께 분석하여 신호의 신뢰도를 높이는 것이 중요합니다.
- 적정한 n 찾기
ADX를 계산하기 위한 UDF인 calulate_adx()를 사용할 수 있습니다. 또한 pandas-ta.adx(high, low, close, length=None, lensig=None, …)
을 사용합니다.
import numpy as np import pandas as pd import yfinance as yf import pandas_ta as ta import matplotlib.pyplot as plt import mplfinance as mpf st=pd.Timestamp(2024,1, 1) et=pd.Timestamp(2025, 4,30) trgnme="000660.KS" trg=yf.download(trgnme, st, et) trg.columns=[i[0] for i in trg.columns]
adx=ta.adx(trg.High, trg.Low, trg.Close) adx.tail(3)
ADX_14 | DMP_14 | DMN_14 | |
---|---|---|---|
Date | |||
2025-04-25 | 15.962275 | 28.523337 | 27.985950 |
2025-04-28 | 15.060779 | 27.187290 | 29.066929 |
2025-04-29 | 14.301816 | 26.121929 | 28.546638 |
위 결과를 주가, 지수이동평균과 함께 그래프를 작성합니다.
adp=[mpf.make_addplot(adx.iloc[:,0], panel=1, color="g", label="ADX"), mpf.make_addplot(adx.iloc[:,1], panel=1, color="orange", label="DM+"), mpf.make_addplot(adx.iloc[:,2], panel=1, color="navy", label="DM-"), mpf.make_addplot(ta.ema(trg.Close, 5), panel=0, color="brown", label="EMA5"), mpf.make_addplot(ta.ema(trg.Close, 20), panel=0, color="navy", label="EMA20")] fig, axes=mpf.plot(trg, type="candle", style="yahoo", title="candle chart", addplot=adp, volume=False, returnfig=True, figsize=(12, 6)) axes[0].legend(loc="upper left") plt.show()
+DI<-DI이고 그 두지표는 접하고 다시 그 형태를 유지합니다. 또한 ADX는 횡보임을 나타냅니다. 그러나 단기ema가 장기 ema와 접한 시점으로 상승돌파의 가능성이 있습니다. 그러므로 일정한 추세가 없는 상태이므로 약간 하강 방향으로 보합이 이루어질 것으로 예상됩니다.
매도세 우세이지만 그 강도가 약해진 것으로 볼 수 있으며 상승 추세로의 전환 가능성을 배제할 수 없습니다.
댓글
댓글 쓰기