나만의 배당주 사이트 만들기) 2-2. 개발 단계 - 코드 정리(티커리스트, 마지막 배당금, 마지막 배당일, 배당률, 시총)

2025. 1. 15. 13:00프로젝트

이 전 글들이 궁금하다면 ?

 

0. 사이트를 만드려는 이유

https://hsjoo126.tistory.com/80

 

1-1. 프로젝트 가능성 보기

https://hsjoo126.tistory.com/81

 

pandas 와 jupyter 이용해서 테스트해보기 

https://hsjoo126.tistory.com/82

 

1-2. 기획 단계 - 디자인, 와이어 프레임, ERD 등

https://hsjoo126.tistory.com/83

 

2. 개발 단계 - 계획짜기, 구현해보기

https://hsjoo126.tistory.com/84

 

2-1. 개발 단계 - 배당지불일, 시장별 티커리스트 구하기

https://hsjoo126.tistory.com/85

 


 

우여곡절이 많았지만

(우여곡절... 보고싶으면 이전 글들을 봐주세용)

내가 구현하고자 하는 목록은 다 구한 거 같다!

근데, 코드나 결과값이 이전 글들 여기저기에 다 써있어서 ...! 

이번 글에선 코드와 결과값을 한 번에 정리해보도록 하겠다!

 

 

구현해야할 목록

  • 티커리스트 
  • 현재 주가 
  • 마지막 배당금
  • 마지막 배당일
  • 배당률
  • 시총

 

0. pip list 설치하기

pip install yfinance
pip install pandas
pip install notebook
pip install finance-datareader
pip install plotly

 

1. 티커리스트 구하기

#티커 리스트 뽑는 코드

import FinanceDataReader as fdr

# 나스닥(NASDAQ) 주식 정보 가져오기
nasdaq_stocks = fdr.StockListing('NASDAQ')

# Symbol 열만 추출
symbols = nasdaq_stocks['Symbol']

# 데이터 확인
print(symbols.head())  # 상위 5개 데이터 출력
print(f"총 {len(symbols)}개의 심볼이 있습니다.")
#결과값
0    AAPL
1    NVDA
2    MSFT
3    AMZN
4    META
Name: Symbol, dtype: object
총 3640개의 심볼이 있습니다.

 

참고 : 시장별로 조회 가능, 예시 코드에서는 나스닥을 조회했기 때문에 나스닥 관련된 것만 나옴

 

2.현재주가

import yfinance as yf

ticker = yf.Ticker("AAPL")

currentPrice = ticker.info['currentPrice']

print(f"현재가는: {currentPrice}")
현재가는: 242.7

 

3. 마지막 배당금 

import yfinance as yf

ticker = yf.Ticker("AAPL")

# 배당금 데이터 가져오기
dividends = ticker.dividends

# 마지막 배당금 정보 가져오기
if not dividends.empty:
    last_dividend_value = dividends.iloc[-1]  # 마지막 배당금 금액
    print(f"마지막 배당금 금액: {last_dividend_value}")
else:
    print("배당금 데이터가 없습니다.")
#결과값
마지막 배당금 금액: 0.25

 

4. 마지막 배당일

#배당지불일 구하는 코드
import yfinance as yf
import pandas as pd

# 특정 주식의 티커 정보 가져오기
ticker = yf.Ticker("AAPL")

# 캘린더 정보 가져오기
info = ticker.calendar

# DataFrame으로 변환
df = pd.DataFrame(info)

# 'Dividend Date' 열만 추출
dividend_date = df['Dividend Date']

# 'Dividend Date'의 첫 번째 값 가져오기
dividend_date_value = dividend_date.iloc[0]

# 결과 출력
print("Dividend Date:", dividend_date_value)
#결과값
Dividend Date: 2024-11-14

참고: 배당락일 아님, 배당지불일임

 

5. 배당률

# 배당률 구하기

ticker = yf.Ticker("AAPL")
Yield = ticker.info['dividendYield']

print(round(Yield*100,2))
#결과
0.41

 

 

참고: 야후 파이낸스에서 배당률을 구한 계산법

연간화된 미래 배당 수익률. 가장 최근의 배당 지급 금액에 지급 빈도를 곱하고, 이를 이전 종가로 나눈 값입니다.
Annualized forward dividend yield. Multiplies the most recent dividend payout amount by its frequency and divides by the previous close price.

 

 

 

GPT 가 들어준 예시 (접은 글 참조)

더보기

예시:

  • 가장 최근 배당금: 0.50 달러 (주당 배당금)
  • 배당 지급 빈도: 분기별(Quarterly) 지급 (1년에 4번 지급)
  • 이전 종가: 100.00 달러

결과:

연간화된 미래 배당 수익률은 **2%**입니다.

즉, 이 주식은 연간 2%의 배당 수익률을 제공할 것으로 예상된다는 의미입니다.

 

 

6.시총

import yfinance as yf

ticker = yf.Ticker("AAPL")

market_cap = ticker.info['marketCap']

formatted_market_cap = "{:,}".format(market_cap)

print(f"시가총액은: {formatted_market_cap}원")
시가총액은: 3,668,604,616,704원