본문 바로가기

좋아하는 것_매직IT/21.python

삼성전자 vs SK하이닉스? Python으로 주가 비교하고 시각화하기

반응형

블로그 목적

Python의 강력한 라이브러리인 yfinance 를 활용한 SK하이닉스와 삼성전자의 종가 비교 구현에 대해서 공부및 정리후 나만의 노하우와 지식을 공유한다.

블로그 요약

1. 주식및 야후파이낸스에 대해서 알아본다.

2. yfinance를 활용해 두 기업의 주가 데이터 비교를 시각화 하는 방법을 간단하게 구현해 본다.

블로그 상세내용

이번 블로그의 목표는 삼성전자 vs SK하이닉스 Python으로 주가 비교하고 시각화하기입니다. 
데이터 기반으로 주식 투자를 결정하는 것은 매우 중요한 일입니다. 
특히, 한국을 대표하는 반도체 기업 삼성전자와 SK하이닉스의 주가는 시장의 흐름을 이해하는 데 큰 도움을 줍니다. 
이번 글에서는 Python의 강력한 라이브러리인 yfinance를 활용해 두 기업의 주가 데이터를 가져오고, 이를 시각화하는 방법을 알아보겠습니다.

우선 야후 파이낸스와 간단한 준비내용에 대해서 정리해보도록 할께요~

야후 파이낸스란?


야후 파이낸스는 전 세계 주식, ETF, 암호화폐 등 다양한 금융 상품의 실시간 가격과 역사적 데이터를 제공하는 플랫폼입니다.
이 플랫폼은 다음과 같은 장점으로 투자자들에게 인기를 얻고 있습니다:
주요 특징을 보자면요.  아래와 같습니다. 
1. 무료 데이터 제공
실시간 시세, 과거 데이터, 재무 정보 등을 무료로 이용 가능하고요.

2. 사용자 친화적 인터페이스
시각화 도구와 검색 기능이 간편합니다. 

3.API 활용 가능
주로 프로그래머들이 데이터를 수집하여 다양한 분석에 활용하고 있습니다. 

삼성전자와 SK하이닉스의 비교 분석 준비하기
1.주요 데이터 수집
우선 삼성전자와 SK하이닉스의 주가 데이터를 야후 파이낸스를 통해 수집합니다.
주요 지표는 다음과 같습니다:

종가(close): 하루 거래 마감 후의 주가
거래량(volume): 하루 동안 거래된 주식 수
시가총액(market cap): 회사의 총 가치

2.주가 변동성 확인
주식 투자에서는 가격의 변동성이 중요합니다. 
삼성전자와 SK하이닉스의 최근 6개월간 변동 폭을 비교하여, 어떤 종목이 안정적인지 또는 투자 기회가 있는지를 분석할 수 있습니다.

3.재무 분석
PER (주가수익비율): 회사의 주가가 얼마나 고평가/저평가되었는지 확인가능하고요.
ROE (자기자본이익률): 투자 대비 수익성 확인가능합니다. 
배당률: 장기 투자자에게 유리한 주식인지 판단 가능하고요.

이번에는 위의 지표 가운데서 종가를 가지고 시각화하는 Python 프로그램을 작성해보려고 합니다. 

우선, 분석 준비를 해야하는데요 필요한 도구는 무엇일까요?
Python 환경에서 데이터를 분석하려면 몇 가지 라이브러리가 필요합니다. 
먼저 아래 명령어로 필수 라이브러리를 설치하시면 됩니다. 

pip install yfinance matplotlib

참고로 yfinance는 야후 파이낸스 데이터를 손쉽게 불러올 수 있는 Python 라이브러리입니다.
삼성전자와 SK하이닉스의 주가는 각각 005930.KS와 000660.KS라는 티커 심볼을 사용합니다.

아래 간단한 코드는 데이터를 불러오고, Matplotlib을 사용해 그래프를 그립니다.

import yfinance as yf
import matplotlib.pyplot as plt
from matplotlib import rc

# 한글 폰트 설정
plt.rcParams['font.family'] = 'Malgun Gothic'  # Windows의 경우

# 삼성전자와 SK하이닉스의 티커 심볼
tickers = {'삼성전자': '005930.KS', 'SK하이닉스': '000660.KS'}

# 데이터 다운로드
data = yf.download(list(tickers.values()), start="2020-01-01", end="2024-11-01")['Adj Close']

# 그래프 그리기
plt.figure(figsize=(12, 6))
for company, ticker in tickers.items():
    plt.plot(data[ticker], label=company)


# 그래프 설정
plt.title("삼성전자 vs SK하이닉스 주가 비교", fontsize=16)
plt.xlabel("날짜", fontsize=12)
plt.ylabel("조정 종가 (KRW)", fontsize=12)
plt.legend()
plt.grid(True)
plt.show()


처음에 한글폰트 설정을 하지 않아 한글이 깨지는 현상이 있었는데요...
Python에서 그래프를 그릴 때 한글이 깨지는 경우가 종종 발생합니다.
이 문제를 해결하려면 시스템에 설치된 한글 폰트를 지정해야 합니다.
위 코드에서는 Windows는 '맑은 고딕을 명시적으로 사용하도록 설정했습니다.

위의 프로그램을 실행하면 아래와같이 삼성전자와 SK하이닉스의 주가 비교가 가능하고요


다음과 같은 그래프를 얻을 수 있습니다.

주요 관찰점을 보자면 아래와 같이 판단이 됩니다. 
삼성전자는 안정적인 상승과 변동성을 보여주는 반면에 SK하이닉스는 시장 상황과 반도체 업황에 더 민감하게 반응한다는 것을 알 수 있었습니다. 

보통 저는 이 두 기업의 주가 흐름을 비교하면서 반도체 시장의 트렌드뿐만 아니라, 각각의 기업이 시장 변화에 어떻게 대응하는지 판단하고 있습니다. 

맺음말

Python과 yfinance를 활용하면 복잡한 주가 데이터도 손쉽게 분석하고 시각화할 수 있습니다. 
삼성전자와 SK하이닉스의 데이터를 분석하며 반도체 산업의 흐름을 이해하고, 이를 기반으로 더 나은 투자 결정을 내려보시는것도 추천드립니다. 

오늘의 블로그는 여기까지고요
항상 믿고 봐주셔서 감사합니다. 

300x250