본문 바로가기
카테고리 없음

파이썬 금융 라이브러리 활용과 코드 예제 (pandas, NumPy)

by 유후후우후 2025. 2. 13.

파이썬 금융 라이브러리 활용

 

1. 파이썬을 활용한 금융 데이터 분석 개요

파이썬은 금융 데이터 분석 및 퀀트 투자 전략 개발에 널리 사용되는 프로그래밍 언어입니다. 특히, pandas, NumPy, scikit-learn과 같은 라이브러리는 금융 데이터를 효과적으로 처리하고 분석하는 데 필수적입니다. 금융 데이터 분석에 유용한 주요 파이썬 라이브러리를 소개하고, 실제 코드 예제를 통해 활용법을 설명합니다.

2. 금융 데이터 분석에 사용되는 주요 파이썬 라이브러리

(1) pandas - 금융 데이터 처리

pandas는 금융 데이터 분석에서 가장 많이 사용되는 라이브러리로, 데이터프레임(DataFrame)을 이용해 시계열 데이터를 쉽게 다룰 수 있습니다.

(2) NumPy - 수학 및 배열 연산

NumPy는 금융 데이터에서 수치 계산 및 배열 연산을 빠르게 수행할 수 있도록 도와줍니다. 벡터화 연산을 통해 속도를 향상할 수 있습니다.

(3) scikit-learn - 머신러닝과 데이터 분석

scikit-learn은 머신러닝 알고리즘을 제공하여 주가 예측, 리스크 분석, 군집 분석 등에 활용됩니다.

(4) yfinance - 주가 데이터 다운로드

yfinance는 Yahoo Finance에서 실시간 및 과거 주가 데이터를 다운로드하는 데 사용됩니다.

3. pandas를 활용한 금융 데이터 분석

(1) pandas로 주가 데이터 다운로드 및 처리

import pandas as pd
import yfinance as yf

# 삼성전자(005930.KQ) 주가 데이터 다운로드
ticker = "005930.KQ"
data = yf.download(ticker, start="2020-01-01", end="2024-01-01")

# 데이터 확인
print(data.head())

# 날짜 인덱스 설정
data.index = pd.to_datetime(data.index)

# 특정 열 선택 (종가만 선택)
close_prices = data["Close"]
print(close_prices.head())

(2) pandas로 이동평균선 계산

이동평균(Moving Average)을 계산하여 트렌드를 분석할 수 있습니다.

# 50일 및 200일 이동평균 계산
data["SMA50"] = data["Close"].rolling(window=50).mean()
data["SMA200"] = data["Close"].rolling(window=200).mean()

# 데이터 확인
print(data[["Close", "SMA50", "SMA200"]].head())

4. NumPy를 활용한 금융 데이터 분석

(1) NumPy를 이용한 수익률 계산

import numpy as np

# 로그 수익률 계산
data["Log Returns"] = np.log(data["Close"] / data["Close"].shift(1))

# 데이터 확인
print(data[["Close", "Log Returns"]].head())

(2) NumPy를 이용한 변동성 계산

# 30일 변동성 계산
data["Volatility"] = data["Log Returns"].rolling(window=30).std() * np.sqrt(252)

# 데이터 확인
print(data[["Close", "Volatility"]].head())

5. scikit-learn을 활용한 주가 예측

(1) 데이터 준비

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

# 특징(feature) 생성 (과거 5일간의 가격)
data["Previous Close"] = data["Close"].shift(1)
data["5-Day Avg"] = data["Close"].rolling(window=5).mean()

# 결측값 제거
data.dropna(inplace=True)

# 입력(X)과 출력(y) 정의
X = data[["Previous Close", "5-Day Avg"]]
y = data["Close"]

# 훈련 데이터와 테스트 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

(2) 선형 회귀를 이용한 주가 예측

# 선형 회귀 모델 학습
model = LinearRegression()
model.fit(X_train, y_train)

# 예측 수행
predictions = model.predict(X_test)

# 결과 출력
print("실제 값:", y_test.values[:5])
print("예측 값:", predictions[:5])

6. 종합 예제: 이동평균선을 활용한 매매 전략

(1) 매매 신호 생성

# 매수 신호 (SMA50이 SMA200을 상향 돌파)
data["Buy Signal"] = (data["SMA50"] > data["SMA200"]) & (data["SMA50"].shift(1) <= data["SMA200"].shift(1))

# 매도 신호 (SMA50이 SMA200을 하향 돌파)
data["Sell Signal"] = (data["SMA50"] < data["SMA200"]) & (data["SMA50"].shift(1) >= data["SMA200"].shift(1))

# 신호 출력
print(data[["Close", "SMA50", "SMA200", "Buy Signal", "Sell Signal"]].tail())

(2) 백테스팅

# 전략 수익률 계산
data["Strategy Returns"] = np.where(data["Buy Signal"], data["Close"].pct_change(), 0)

# 누적 수익률 계산
data["Cumulative Returns"] = (1 + data["Strategy Returns"]).cumprod()

# 결과 출력
print(data[["Close", "Cumulative Returns"]].tail())

7. 결론: 파이썬 금융 라이브러리 활용 요약

파이썬의 금융 라이브러리는 강력한 데이터 분석 기능을 제공하여 퀀트 투자 전략을 개발하는 데 필수적입니다.

라이브러리 주요 기능 활용 예제
pandas 금융 데이터 처리 및 분석 주가 데이터 로드, 이동평균 계산
NumPy 수학 연산 및 통계 분석 수익률 계산, 변동성 측정
scikit-learn 머신러닝 모델 학습 주가 예측, 리스크 모델링
yfinance 실시간 및 과거 주가 데이터 다운로드 주식, ETF, 암호화폐 데이터 수집

이러한 도구를 활용하여 데이터 분석을 수행하고, 퀀트 투자 전략을 개발할 수 있습니다. 더 나아가, 머신러닝과 AI를 적용하여 보다 정교한 모델을 만들 수도 있습니다.