평균 방향성 지수(ADX)는 기술 분석가와 트레이더가 추세의 강도를 결정하기 위해 사용하는 특정 지표입니다. 추세는 상승 또는 하락할 수 있으며, 이는 일반적으로 +DI로 알려진 양의 방향성 지표와 -DI라고도 하는 음의 방향성 지표라는 두 가지 지표로 표시됩니다. 이러한 이유로 평균 방향성 지수는 각 지표를 상징하는 세 개의 개별 선으로 표시됩니다. 각 선은 거래를 평가하고 매수 또는 매도할지 여부를 판단하는 데 사용됩니다. 트레이딩뷰의 ADX 인디케이터는 +DI 및 -DI 라인을 단독으로 표시하지 않지만 방향성 이동 지수(DMI) 인디케이터를 사용하면 세 라인을 동시에 볼 수 있습니다.
출처: 트레이딩뷰
ADX 구현
pip install pandas ccxt pinetopy
import pandas as pd
import ccxt
import pinetopy as pp
# 예시) 바이낸스 선물 BTCUSDT, 1시간 봉
bnb = ccxt.binance({'options': { 'defaultType': 'future' }})
ohlcv = bnb.fetch_ohlcv(symbol="BTC/USDT", timeframe="1h", limit=500)
df = pd.DataFrame(ohlcv, columns=['time', 'open', 'high', 'low', 'close', 'volume'])
df['time'] = pp.kst(df['time'])
def adx(df, dilen=14, adxlen=14):
plus, minus = pp.dirmov(df, dilen)
sum_dm = plus + minus
dx = abs(plus - minus) / (sum_dm.replace(0, 1))
adx = pp.rma(dx, adxlen)
adx = 100 * adx
df['ADX'] = adx.round(2)
return df
print(adx(df, dilen=14, adxlen=14)) # 트레이딩뷰 디폴트 값
Check
트레이딩뷰 차트와 비교

