TA-lib

허준·2022년 8월 5일

참고:
https://github.com/stefan-jansen/machine-learning-for-trading/blob/main/07_linear_models/03_preparing_the_model_data.ipynb

파이썬 인터페이스를 가진, C++기반 오픈소스 라이브러리. 200개 이상의 기술적 분석 지표들의 표준화된 구현이 포함되어 있는데, 가격과 거래량 정보만이 사용된다.
판다스와 넘파이를 동시에 사용할 수 있으며, 대표적으로 볼린저 밴드, RSI를 계산할 수 있다.

설치법은 이 사이트를 참고하면 된다.
https://minjejeon.github.io/learningstock/2018/04/07/installing-and-using-talib.html

지원 지표 종류는 아래 홈페이지에서 보면 된다.
https://ta-lib.org/function.html

from talib import ~~

사용방법도 매우 간단하다. 기간, open high low close volume 정보를 가지고,
up, mid, low = BBANDS(data.close, timeperiod=21, nbdevup=2, nbdevdn=2, matype=0)
이러면 볼린저 밴드가,
rsi = RSI(data.close, timeperiod=14)
이러면 RSI가 계산된다.

손쉽게 데이터에 대한 지표값들이 계산되며, 이로 플롯도 쉽게 가능.

RSI : df.close.apply(RSI)

Bollinger Band :
def compute_bb(close):
high, mid, low =BBANDS(close, timeperiod=20)
return pd.DataFrame({'bb_high':high, 'bb_low':low},index=close.index)
df.join(df.groupby(level='ticker').close.apply(compute_bb))

ATR(Average True Range)
def compute_atr(stock_data):
df = ATR(stock_data.high, stock_data.low,
stock_data.close, timeperiod=14)
return df.sub(df.mean()).div(df.std())
prices['atr'] = (prices.groupby('ticker', group_keys=False)
.apply(compute_atr))

MACD(moving average convergence divergence)
def compute_macd(close):
macd = MACD(close)[0]
return (macd - np.mean(macd))/np.std(macd)
prices['macd'] = (prices
.groupby('ticker', group_keys=False)
.close
.apply(compute_macd))

profile
퀀트 지망(Quant candidate)

0개의 댓글