이전 포스팅에서는 업비트 API를 통해 가져온 캔들 데이터를 pandas의 DataFrame으로 변환한 뒤, RSI 값을 생성해 알림 등에 활용하는 코드를 Python으로 작성해보았습니다.
이번에는 RSI 뿐만 아니라 MACD(Moving Average Convergence/Divergence), 스토캐스틱(Stochastic), ADX(Average Directional Movement Index) 등등 다양한 보조 지표를 쉽게 생성할 수 있도록 도와주는 TA-lib를 사용하는 코드를 파이썬으로 작성해보도록 하겠습니다.
먼저 Python TA-Lib를 설치해야 합니다. 참고로 Python TA-Lib는 TA-Lib의 Wrapper이므로 먼저 TA-Lib가 깔려 있어야 합니다 (Python TA-Lib의 문서에 나와 있는 것처럼 사용 중인 운영체제에 따라 TA-Lib 설치 방법은 다를 수 있습니다.)
pip install TA-Lib
설치가 완료되었다면, RSI를 계산하는 법은 간단합니다.
import talib as ta
ta.RSI(df['close'], timeperiod=14)
(df 변수는 이전 포스팅에서 작성한 업비트 캔들 데이터를 pandas.DataFrame으로 바꾼 데이터를 담고 있습니다.)
Python TA-Lib는 정말 다양한 보조 지표를 쉽게 계산할 수 있도록 다음과 같은 함수 목록을 제공하고 있습니다.
ADX Average Directional Movement Index
ADXR Average Directional Movement Index Rating
APO Absolute Price Oscillator
AROON Aroon
AROONOSC Aroon Oscillator
BOP Balance Of Power
CCI Commodity Channel Index
CMO Chande Momentum Oscillator
DX Directional Movement Index
MACD Moving Average Convergence/Divergence
MACDEXT MACD with controllable MA type
MACDFIX Moving Average Convergence/Divergence Fix 12/26
MFI Money Flow Index
MINUS_DI Minus Directional Indicator
MINUS_DM Minus Directional Movement
MOM Momentum
PLUS_DI Plus Directional Indicator
PLUS_DM Plus Directional Movement
PPO Percentage Price Oscillator
ROC Rate of change : ((price/prevPrice)-1)*100
ROCP Rate of change Percentage: (price-prevPrice)/prevPrice
ROCR Rate of change ratio: (price/prevPrice)
ROCR100 Rate of change ratio 100 scale: (price/prevPrice)*100
RSI Relative Strength Index
STOCH Stochastic
STOCHF Stochastic Fast
STOCHRSI Stochastic Relative Strength Index
TRIX 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
ULTOSC Ultimate Oscillator
WILLR Williams' %R
다음은 STOCH, MACD, ADX 등을 구하는 예시입니다.
# Stochastic
ta.STOCH(high=df['high'], low=df['low'], close=df['close'],
fastk_period=3, slowk_period=1, slowd_period=1)
# MACD
ta.MACD(real=df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
# ADX
ta.ADX(high=df['high'], low=df['low'], close=df['close'], timeperiod=14)
TA-Lib는 이러한 모멘텀 인디케이터 외에도 이동평균선, 볼린저 밴드, 파라볼릭 SAR 등등 다양한 지표들을 쉽게 계산할 수 있도록 도와줍니다. 이외에도 망치(Hammer), 도지(Doji) 등등 다양한 캔들 패턴 인식을 위한 방법도 제공하고 있는데, 이는 다음 포스팅에서 다루도록 하겠습니다.
'코인 > 코인 개발' 카테고리의 다른 글
바이낸스 (Binance) API 키 발급 받기 (0) | 2021.07.23 |
---|---|
업비트 API와 Python TA-Lib를 이용한 캔들 패턴 인식(Candle Pattern Recognition) (0) | 2021.07.16 |
업비트 API를 이용한 코인 RSI 알리미 프로그램 (0) | 2021.07.14 |
파이썬으로 캔들차트 그리기 (0) | 2021.07.10 |
업비트(Upbit) API를 이용해 프로그램 개발 시 주의 사항 (1) | 2021.07.09 |