초보자도 하는 주식 기술적 분석 파이썬 라이브러리

반응형
반응형

주식 기술적 분석 계산에 유용한 파이썬 라이브러리 소개

주식 시장에서 기술적 분석은 투자 의사 결정을 내리는 데 중요한 도구로 사용됩니다. 하지만 방대한 데이터를 수동으로 분석하기에는 시간이 많이 소요되며, 계산 실수도 발생할 가능성이 높습니다. 이럴 때 파이썬 라이브러리를 활용하면 기술적 분석을 훨씬 효율적이고 정확하게 수행할 수 있습니다. 이번 글에서는 주식 기술적 분석에 자주 사용되는 몇 가지 파이썬 라이브러리를 소개하겠습니다.


1. TA-Lib (Technical Analysis Library)

TA-Lib은 기술적 분석의 고전적인 지표를 계산하는 데 가장 널리 사용되는 라이브러리 중 하나입니다. 이동평균(MA), RSI, MACD, 볼린저 밴드 등 150개 이상의 지표를 제공합니다. 주요 지표에는 다음이 포함됩니다.

  • 이동평균 (Moving Average): SMA, EMA, WMA 등 다양한 방식의 이동평균 계산
  • 오실레이터 (Oscillators): RSI, 스토캐스틱(Stochastic), CCI
  • 추세 지표 (Trend Indicators): MACD, ADX
  • 볼륨 기반 지표 (Volume Indicators): OBV(On-Balance Volume), MFI(Money Flow Index)
  • 변동성 지표 (Volatility Indicators): 볼린저 밴드(Bollinger Bands), ATR(Average True Range)
  • 설치 방법
    Ta-lib는 github에서 설치파일을 받아야 하는데요. 아래 포스팅을 확인하시면 감사하겠습니다.

 

 

[Python]TA-lib .whl 파일 설치

주식에서 보조지표나 이평선같은 기술적분석에 쓰이는 것을 계산해주는 모듈인 TA-lib를 설치할 때 파이썬 버전과 64비트인지 32비트인지를 알고 있는게 중요합니다.무작정 pip install ta_lib 를 하

seong6496.tistory.com

 

  • 사용 예제
import talib 
import numpy as np 
# 종가 데이터 예시 
close = np.array([45.15, 46.23, 47.19, 48.00, 47.75]) 
# 이동평균 계산 (5일) 
moving_avg = talib.SMA(close, timeperiod=5)

 

2. Pandas TA (Technical Analysis)

Pandas TA는 Pandas와 완벽하게 통합되는 기술적 분석 라이브러리입니다. TA-Lib보다 설치가 간단하며, DataFrame을 활용해 데이터를 다룰 수 있어 매우 직관적입니다.

  • Pandas TA vs TA-Lib 주요 차이점:
    • 설치 및 사용 용이성: pip으로 바로 설치할 수 있습니다.
    • 데이터 처리: Pandas TA는 Pandas DataFrame과 통합되므로 대규모 데이터 분석과 결합이 용이합니다.
    • 지표 지원: TA-Lib은 150개 이상의 지표를 제공하는 반면, Pandas TA는 비교적 적은 수의 지표를 포함하지만 자주 사용되는 주요 지표를 대부분 다룹니다.
    • 성능: TA-Lib가 C 기반으로 작성되어 대량의 데이터를 처리할 때 더 빠른건 어쩔 수 없지만 pandas-ta도 쓸만합니다.
  • 설치 방법
pip install pandas-ta

.

  • 사용 예제
import pandas as pd 
import pandas_ta as ta
# 샘플 데이터 생성 
data = { 'close': [45.15, 46.23, 47.19, 48.00, 47.75] } 
df = pd.DataFrame(data) 
# RSI 계산
df['RSI'] = ta.rsi(df['close'], length=14)

 

3. Backtrader

Backtrader는 기술적 지표 계산뿐만 아니라 백테스팅 기능까지 제공하는 강력한 라이브러리입니다. 이 라이브러리는 전략 개발, 시뮬레이션, 그리고 성과 분석에 적합하며, 다음과 같은 특징이 있습니다.

  • 기술적 지표 지원: Backtrader는 단순 이동평균(SMA), 지수 이동평균(EMA), MACD, RSI 등 여러 기본적인 기술적 지표를 제공합니다. 또한 사용자가 커스텀 지표를 정의할 수도 있습니다.
  • 백테스팅 기능: 과거 데이터를 사용하여 전략을 검증할 수 있는 백테스팅 환경을 제공합니다. 백테스팅 시 수수료, 주문 체결 방식, 레버리지 등 다양한 변수를 설정할 수 있습니다.
  • 다른 라이브러리와의 차이점
    • 전략 중심 설계: Backtrader는 단순히 지표 계산에 그치지 않고, 전략을 중심으로 설계되어 전체적인 트레이딩 워크플로우(데이터 입력, 전략 실행, 결과 분석)를 관리할 수 있습니다.
    • 시각화 지원: 내장된 플로팅 기능을 통해 전략의 성과를 시각적으로 분석할 수 있습니다.
    • 유연성: 고급 사용자 정의가 가능하며, 다양한 데이터 소스와 호환됩니다.
  • 설치 방법
pip install backtrader
  • 사용 예제
  import backtrader as bt
    
    # 커스텀 전략 클래스 정의
    class MyStrategy(bt.Strategy):
        def __init__(self):
            self.sma = bt.indicators.SimpleMovingAverage(self.data.close, period=15)
    
        def next(self):
            if self.data.close[0] > self.sma[0]:
                print("매수 신호")
            else:
                print("매도 신호")
    
    # 데이터 로드 및 실행
    cerebro = bt.Cerebro()
    data = bt.feeds.GenericCSVData(dataname='stock_data.csv')
    cerebro.adddata(data)
    cerebro.addstrategy(MyStrategy)
    cerebro.run()

 

Backtrader로 백테스팅을 하려면 사용방법을 배워야 합니다. 정형화된 로직을 작성해서 백테스팅 기능에 껴맞춰야 하는 번거로운 부분이 있지만 할 줄만 안다면 백테스팅을 빠르게 하실 수 있을겁니다.

4. Finta (Financial Technical Analysis)

Finta는 간단하면서도 다양한 기술적 분석 지표를 제공하는 가벼운 라이브러리입니다. 초보자도 쉽게 사용할 수 있도록 설계되었으며, 설치 및 실행이 매우 간편합니다.

  • 제공 지표:
    • 이동평균(SMA, EMA)
    • MACD (Moving Average Convergence Divergence)
    • RSI (Relative Strength Index)
    • 볼린저 밴드(Bollinger Bands)
    • 스토캐스틱 오실레이터(Stochastic Oscillator)
    • 기타 다양한 주요 지표
  • Finta의 장점
    • 초보자: 복잡한 환경 설정이나 대규모 데이터 분석이 필요하지 않은 경우.
    • 경량 분석: 가벼운 데이터셋을 활용한 빠른 지표 계산이 필요한 상황에서 유용.
    • 교육 목적: 기본적인 기술적 분석 개념을 학습하거나 테스트할 때.
  • 설치 방법
pip install finta
  • 사용 예제
from finta import TA
import pandas as pd
    
# 데이터 준비
data = pd.DataFrame({
    'close': [45.15, 46.23, 47.19, 48.00, 47.75]
})

# MACD 계산
macd = TA.MACD(data)

 

5. pyTI (Python Technical Indicators)

pyTI는 간단한 지표 계산에 적합한 라이브러리입니다. 설치와 사용법이 쉬우며, 주요 기술적 지표를 포함하고 있습니다.

  • 제공 지표:
    • 단순 이동평균(SMA)
    • 지수 이동평균(EMA)
    • RSI (Relative Strength Index)
    • MACD (Moving Average Convergence Divergence)
    • 볼린저 밴드(Bollinger Bands)
    • 스토캐스틱 오실레이터(Stochastic Oscillator)
  • 장점
    • 간단한 분석이나 학습 목적으로 기술적 지표를 계산해야 할 때 유용.
    • 복잡한 설정 없이 빠르게 결과를 확인하고 싶은 경우.
  • 설치 방법
pip install pyti
  • 사용 예제
from pyti.simple_moving_average import simple_moving_average as sma
    
# 종가 데이터 예시
close_prices = [45.15, 46.23, 47.19, 48.00, 47.75]

# 3일 단순 이동평균 계산
sma_values = sma(close_prices, period=3)

마무리

위에서 소개한 파이썬 라이브러리를 활용하면 시간과 노력을 크게 줄이면서도 분석 결과의 신뢰성을 높일 수 있습니다. 각 라이브러리마다 장단점이 있으니, 자신의 목적과 사용 환경에 맞는 도구를 선택하여 활용해 보세요.

여러분의 투자 여정에 도움이 되길 바랍니다!

 

함께보면 좋은글

 

 

[Python]TA-lib .whl 파일 설치

주식에서 보조지표나 이평선같은 기술적분석에 쓰이는 것을 계산해주는 모듈인 TA-lib를 설치할 때 파이썬 버전과 64비트인지 32비트인지를 알고 있는게 중요합니다.무작정 pip install ta_lib 를 하

seong6496.tistory.com

 

 

[업무자동화] 윈도우 작업스케줄러 사용해 파이썬 실행하기

원도우 작업 스케줄러를 사용하면 정해진 시간에 파이썬 파일을 실행시킬 수 있습니다. 작업 스케줄러 실행하기 먼저 작업스케줄러를 실행시켜 봅시다. 밑의 그림과 같이 왼쪽 아래에 검색 창

seong6496.tistory.com

 

 

 

[자동매매] 업비트 API 키 발급받기

업비트 API 키 발급받기 가상화폐 자동매매를 만들기 위해 고군분투중에 업비트에서 API 키 받는 법을 공유할까 합니다. 개인적으로 업비트 API가 가장 신뢰성 있는 데이터이면서 매매에 필요한

seong6496.tistory.com

 

 

Designed by JB FACTORY