파이썬을 활용한 주식 시장 기술지표 분석

소개

주식 시장에서는 다양한 기술지표를 활용하여 주가 동향을 분석하는데 도움이 되는 도구들이 존재합니다. 이러한 기술지표들을 파이썬을 통해 분석하고 시각화하는 방법에 대해 알아보겠습니다.

필요한 라이브러리 설치

먼저, 주식 데이터를 다루기 위해 pandasmatplotlib 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다:

pip install pandas matplotlib

데이터 불러오기

주식 데이터를 불러와서 분석하기 위해, 먼저 데이터를 다운로드하거나 API를 통해 데이터를 가져와야 합니다. 여기서는 예시로 pandas-datareader 라이브러리를 활용하여 야후 파이낸스 API로부터 데이터를 가져옵니다.

import pandas as pd
import pandas_datareader as pdr

start_date = '2021-01-01'
end_date = '2021-12-31'
ticker = 'AAPL'  # 애플 주식
df = pdr.get_data_yahoo(ticker, start=start_date, end=end_date)

기술지표 계산

주식 데이터를 가지고 기술지표를 계산하기 위해 다양한 방법이 존재합니다. 예를 들어, 이동평균선(Moving Average)과 상대강도지수(Relative Strength Index, RSI)를 계산해보겠습니다.

이동평균선 (Moving Average)

이동평균선은 주가의 추세를 확인하는데 사용되는 지표입니다. 일정 기간 동안의 주가를 평균하여 계산합니다. 아래의 예시 코드는 20일 이동평균선을 계산하는 방법입니다.

df['MA20'] = df['Close'].rolling(window=20).mean()

상대강도지수 (Relative Strength Index, RSI)

RSI는 주식의 과거 가격을 토대로 현재 주가의 상승과 하락의 강도를 측정하는 지표입니다. RSI 지표는 0에서 100 사이의 값을 갖습니다. 아래의 예시 코드는 14일 동안의 RSI를 계산하는 방법입니다.

def calculate_rsi(df, window):
    delta = df['Close'].diff()
    gain = delta.where(delta > 0, 0)
    loss = -delta.where(delta < 0, 0)

    avg_gain = gain.rolling(window).mean()
    avg_loss = loss.rolling(window).mean()

    rs = avg_gain / avg_loss
    rsi = 100 - (100 / (1 + rs))
    
    return rsi
    
df['RSI14'] = calculate_rsi(df, window=14)

시각화

기술지표를 시각화하여 주가의 동향을 더 쉽게 파악할 수 있습니다. matplotlib 라이브러리를 활용하여 주가와 기술지표를 동시에 시각화해보겠습니다.

import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))
plt.plot(df['Close'], label='Close')
plt.plot(df['MA20'], label='MA20')
plt.legend()
plt.xlabel('Date')
plt.ylabel('Price')
plt.title('Apple Stock Price with MA20')
plt.show()

마무리

이처럼 파이썬을 활용하여 주식 시장의 기술지표를 분석하고 시각화하는 방법에 대해 알아보았습니다. 기술지표는 주가 동향을 예측하는데 도움이 되는 유용한 도구 중 하나이며, 파이썬을 통해 간편하게 계산하고 시각화할 수 있습니다. 추가적으로 다양한 기술지표와 분석 방법을 공부하면 보다 정교한 주식 예측 모델을 개발할 수 있습니다.


#주식 #파이썬