본문 바로가기
파이썬엑셀

파이썬 엑셀로 주식 시세 API 활용: 초보자도 OK!

by mypick 2024. 11. 4.

파이썬과 엑셀을 활용하여 주식 시세 데이터를 가져오는 방법을 알아보고 싶으신가요? 요즘 주식 투자에 관심 있는 분들이 많아지면서, 직접 데이터를 분석하고 투자 전략을 세우려는 분들도 늘어나고 있어요. 하지만 주식 시장 데이터는 방대하고 복잡해서 어디서부터 어떻게 시작해야 할지 막막하게 느껴질 수도 있죠.

 

걱정 마세요! 이 글에서는 파이썬을 이용해서 주식 시세 데이터를 API로 쉽게 가져오는 방법과 엑셀과 연동하는 방법까지 자세히 알려드릴게요.  파이썬 라이브러리를 활용하는 방법부터 한국투자증권 API를 활용하는 방법, 그리고 엑셀에서 바로 파이썬 코드를 실행하는 방법까지 다양하게 소개해 드릴 테니, 여러분의 투자 전략 수립에 도움이 되길 바랍니다!

 

자, 그럼 지금부터 파이썬과 함께 주식 시세 데이터 분석의 세계로 떠나볼까요?

 


파이썬 라이브러리를 활용한 주식 시세 데이터 가져오기

파이썬으로 주식 시세 데이터를 가져오는 가장 쉬운 방법 중 하나는 바로 파이썬 라이브러리를 사용하는 거예요. 다행히도 주식 시세 데이터를 다루기 위한 다양한 라이브러리가 이미 개발되어 있어서, 따로 복잡한 코드를 작성하지 않아도 쉽게 데이터를 얻을 수 있다는 장점이 있답니다.

 


yfinance: Yahoo Finance API 활용

가장 널리 쓰이는 라이브러리 중 하나인 yfinance는 Yahoo Finance API를 통해 주식 데이터를 가져오는 데 탁월해요. 굳이 Yahoo Finance 웹사이트에 직접 접속하지 않아도, 파이썬 코드 몇 줄만으로 주가, 거래량, 시가, 고가, 저가 등 다양한 정보를 손쉽게 얻을 수 있죠. 예를 들어, 삼성전자의 주가 데이터를 가져오려면 다음과 같은 코드를 사용하면 돼요.

 

import yfinance as yf

# 삼성전자의 티커 심볼은 005930.KS입니다.
samsung = yf.Ticker("005930.KS")

# 2023년 1월 1일부터 2023년 12월 31일까지의 데이터를 가져옵니다.
data = samsung.history(start="2023-01-01", end="2023-12-31")

print(data)

 코드를 실행하면 삼성전자의 2023년 주식 데이터가 출력돼요. 간단하죠? yfinance는 다른 주식 데이터도 마찬가지 방법으로 가져올 수 있어서, 정말 편리한 라이브러리랍니다.

 


pykrx: 한국 거래소(KRX) 데이터 가져오기

pykrx는 한국 거래소(KRX)에서 제공하는 주식 시세 데이터를 가져오는 데 특화된 라이브러리에요. 한국 주식 시장에 집중하여 데이터를 얻고 싶을 때 유용하죠. pykrx를 이용하면 일별 시세, 분봉 데이터, 시장 정보 등 다양한 데이터를 가져올 수 있고, 특히 KRX에서 제공하는 데이터를 효율적으로 활용하고 싶을 때 유용해요.

 


pandas-datareader와 FinanceDataReader: 다양한 금융 데이터 소스 활용

pandas-datareader는 다양한 금융 데이터 소스를 지원하는 라이브러리로, Yahoo Finance, Google Finance, FRED 등 여러 곳에서 주식 시세 데이터를 가져올 수 있어요.

 

FinanceDataReader는 한국 및 글로벌 주식 데이터를 쉽게 조회할 수 있는 라이브러리로, pandas-datareader와 마찬가지로 여러 데이터 소스를 지원하며, 특히 한국 주식 시장 데이터를 다루는 데 편리해요.

 


한국투자증권 API 활용: 실시간 주식 시세 정보 얻기

만약 실시간으로 주식 시세를 확인하고 싶다면, 한국투자증권의 오픈 API를 활용하는 방법이 있어요. 한국투자증권은 개발자들이 쉽게 주식 시세 정보를 활용할 수 있도록 오픈 API를 제공하고 있는데요,  이 API를 이용하면 실시간 주가, 체결 정보, 호가 정보 등을 얻을 수 있답니다.

 


API 인증 및 사용 방법

하지만 API를 사용하려면 먼저 사용자 인증을 거쳐야 해요. 한국투자증권 계좌를 개설하고, KIS Developers 서비스에 신청하면 API를 사용할 수 있는 키를 발급받을 수 있어요.

 

API 인증은  함수를 사용하여 수행할 수 있고, 특정 종목의 현재가를 조회하는 함수를 정의하여 호출하면 실시간 주가 정보를 얻을 수 있습니다.

 


예제 코드: 삼성전자와 카카오 주가 정보 가져오기

아래 예제 코드는 삼성전자와 카카오의 주가 정보를 출력하는 코드예요.

 

import kis_api as kis

def getStock(stknum, company):
    res = kis.get_current_price(stknum)
    priceChange = res["prdy_ctrt"]
    symbol = "▲" if float(priceChange) > 0 else "▼" if float(priceChange) < 0 else "-"
    print(f"{company}: ", res["stck_prpr"], symbol, "(", priceChange, ")")

stocks = {"005930": "삼성전자", "035720": "카카오"}
kis.auth()

for stock in stocks.keys():
    getStock(stock, stocks[stock])

 코드를 실행하면 삼성전자와 카카오의 현재가와 전일 대비 변화율이 출력될 거예요. 한국투자증권 API를 이용하면 이렇게 쉽게 실시간 주식 시세 정보를 얻을 수 있습니다.

 


엑셀에서 파이썬 사용하기: 데이터 분석 및 시각화

엑셀은 데이터를 관리하고 분석하는 데 널리 사용되는 도구이지만, 엑셀만으로는 복잡한 데이터 분석이나 시각화 작업을 하기 어려울 때가 있어요. 하지만 엑셀에서 파이썬을 직접 사용할 수 있다면, 엑셀의 편리성과 파이썬의 강력한 데이터 처리 능력을 동시에 활용할 수 있다는 장점이 있답니다.

 


Excel의 Python 기능 활성화

엑셀에서 파이썬을 사용하려면 먼저 Python 기능을 활성화해야 해요.  엑셀 셀에서  함수를 사용하면 파이썬 코드를 입력할 수 있어요.  이 기능을 통해 엑셀의 데이터와 파이썬을 연동하여 실시간으로 데이터를 처리하고 분석할 수 있답니다.

 


Excel 데이터와 Python 연동

엑셀 셀에서  함수를 입력하고 파이썬 코드를 작성하면, 해당 셀에서 파이썬 코드가 실행돼요.  예를 들어, 엑셀 셀 A1에 있는 숫자와 A2에 있는 숫자를 더하여 결과를 C1에 출력하려면 다음과 같은 코드를 사용하면 돼요.

 

xl("A1") + xl("A2")

 엑셀 셀을 파이썬 코드에서 직접 참조할 수 있기 때문에, 엑셀 데이터를 활용하여 다양한 분석을 수행할 수 있다는 장점이 있답니다.

 


주식 시세 데이터 다운로드 및 활용

주식 시세 데이터를 엑셀이나 CSV 파일로 다운로드받아 분석하고 싶을 때도 있죠?  다행히도, 웹사이트를 통해 직접 다운로드하거나, 파이썬 라이브러리를 사용하여 자동으로 다운로드하는 방법이 있어요.

 


yfinance를 이용한 주식 데이터 다운로드


앞서 소개한 yfinance를 사용하면 특정 기간의 주가 데이터를 쉽게 가져와 엑셀이나 CSV 파일로 저장할 수 있어요. 아래 코드는 삼성전자의 2023년 주가 데이터를 엑셀 파일로 저장하는 예시예요.

 

import yfinance as yf
import pandas as pd

# 삼성전자의 티커 심볼은 005930.KS입니다.
samsung = yf.Ticker("005930.KS")

# 2023년 1월 1일부터 2023년 12월 31일까지의 데이터를 가져옵니다.
data = samsung.history(start="2023-01-01", end="2023-12-31")

# 엑셀 파일로 저장합니다.
data.to_excel("samsung_stock_data.xlsx")

 코드를 실행하면 "samsung_stock_data.xlsx"라는 이름의 엑셀 파일이 생성되고, 삼성전자의 2023년 주가 데이터가 저장된답니다.

 


웹사이트에서 직접 다운로드

일부 웹사이트에서는 주식 시세 데이터를 엑셀이나 CSV 파일 형태로 직접 다운로드할 수 있도록 제공하는 경우도 있어요.  한국거래소(KRX)나 금융투자협회 등의 웹사이트를 참고해 보세요.

 


주식 시세 데이터 활용

다운로드받은 주식 시세 데이터를 활용하여 다양한 분석을 수행할 수 있어요. 엑셀에서 제공하는 차트 기능을 이용하여 주가 추이를 시각화하거나, 파이썬 라이브러리를 사용하여 통계 분석, 머신러닝 모델 개발 등을 수행할 수 있답니다.

 


주요 파이썬 라이브러리 비교

yfinance Yahoo Finance API를 통해 주식 데이터 가져오기 간편한 사용법, 다양한 주식 데이터 지원 한국 주식 시장 데이터에 특화되지 않음
pykrx 한국 거래소(KRX) 데이터 가져오기 한국 주식 시장 데이터에 특화 Yahoo Finance 등 다른 데이터 소스 지원 X
pandas-datareader 다양한 금융 데이터 소스 지원 유연성, 여러 데이터 소스 지원 사용법이 다소 복잡할 수 있음
FinanceDataReader 한국 및 글로벌 주식 데이터 쉽게 조회 한국 주식 데이터에 최적화, 간편한 사용법 일부 데이터 소스 제한

라이브러리 주요 기능 장점 단점

 


QnA

Q1. 주식 시세 데이터를 가져오는 데 가장 좋은 파이썬 라이브러리는 무엇인가요?

A1.  데이터 소스와 목적에 따라 다르지만, Yahoo Finance API를 활용하는 yfinance는 간편하게 사용할 수 있다는 장점이 있어요. 한국 주식 시장 데이터에 특화된 정보를 원한다면 pykrx를, 다양한 금융 데이터를 다루고 싶다면 pandas-datareader나 FinanceDataReader를 활용해 보세요.

 

Q2. 한국투자증권 API를 사용하려면 어떤 준비가 필요한가요?

A2. 한국투자증권 계좌를 개설하고, KIS Developers 서비스에 신청하여 API 키를 발급받아야 합니다.

 

Q3. 엑셀에서 파이썬 코드를 어떻게 실행하나요?

A3. 엑셀 셀에서  함수를 입력하고 파이썬 코드를 작성하면 됩니다. 엑셀 셀을 파이썬 코드에서  함수를 이용해 참조할 수 있어요.

 

마무리

이 글에서는 파이썬을 활용하여 주식 시세 데이터를 API로 가져오고, 엑셀과 연동하는 방법을 알아보았어요.  파이썬 라이브러리와 한국투자증권 API, 그리고 엑셀의 Python 기능을 활용하면 여러분도 쉽게 주식 시세 데이터를 분석하고, 나만의 투자 전략을 개발할 수 있을 거예요.

 

주의: 주식 투자는 위험을 수반할 수 있으므로, 투자 결정을 내리기 전에 충분한 정보를 수집하고 신중하게 결정하는 것이 중요합니다. 이 글에서 제공하는 정보는 교육 목적으로만 사용되어야 하며, 투자 조언으로 간주되어서는 안 됩니다.

 

파이썬,주식,주식시세,API,엑셀,데이터분석,투자,금융,알고리즘트레이딩,quant,python,excel,finance,stockmarket,stockdata,programming,dataanalysis,automation,kis,한국투자증권,yfinance,pykrx,pandas_datareader,financedatareader,api활용,데이터과학,투자전략,자동화,주식매매,주식투자,주식공부,개발,코딩,코딩공부