본문 바로가기
프로그래밍/Python

[Python] Yahoo_fin 모듈

by Hwan,. 2022. 9. 11.
728x90
반응형

Yahoo_fin 모듈

  yahoo_fin은 시가총액, 배당수익률, 종목에 대한 최신 정보를 제공하는 Python 3 패키지이며, 아래 추가 기능들을 제공한다.

  • 손익 계산서/ 대차 대조표/ 현금 흐름표/ 재무 상태 표
  • 보유자 정보 및 분석가 데이터 스크래핑
  • 가상자산(암호화폐) 데이터
  • 현재 거래일 실시간 주가 및 거래 상위 종목
  • 옵션 가격 및 만료 날짜 검색 모듈
  • 수입 캘린더 기록
  • 금융 뉴스 RSS 피드 스크랩

yahoo_fin은 stock_info module, options module 두 가지 모듈로 구성된다.

자세한 옵션이 궁금하면 아래 링크들에서 찾아보자.

 

https://algotrading101.com/learn/yahoo-finance-api-guide/ 

 

Yahoo Finance API - A Complete Guide - AlgoTrading101 Blog

The Yahoo Finance API is a range of libraries/APIs/methods to obtain historical and real time data for a variety of financial markets and products.

algotrading101.com

https://officejs.files.wordpress.com/2020/05/how-to-download-fundamentals-data-with-python.pdf


 

 코드

pip install yahoo_fin

 

# requirements.txt : requests_html, yahoo_fin 추가

import sys
import subprocess

try:
    from yahoo_fin.stock_info import *

except:
    subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'pip'])
    subprocess.check_call([sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt'])
    
    from yahoo_fin.stock_info import *


if __name__ == '__main__':
    ticker = "JEPI"

    if ticker in tickers_dow():
        print("dow")
    if ticker in tickers_other():
        print("other")
    if ticker in tickers_sp500():
        print("sp500")
    if ticker in tickers_ftse250():
        print("ftse250") 
    if ticker in tickers_ftse100():
        print("ftse100")
    if ticker in tickers_ibovespa():
        print("ibovespa")
    if ticker in tickers_nasdaq():
        print("nasdaq")

    print(get_data(ticker))

 

 


 

후기

 yfinance, FinanceDataReader 등을 사용봤지만 전체 티커의 목록을 얻어오거나 실시간 데이터를 얻기엔 불편한 점이 있었다. yahoo_fin에선 여러 소스에서 스크랩과 api를 활용하여 데이터를 받아오기 때문에 실시간 데이터와 전체 목록을 얻어오는 기능이 필요하다면 유용하게 사용할 수 있다. 하지만 내부 코드를 보면 위키피디아 등에서도 데이터를 스크랩해오는데.. 누구나 수정할 수 있는 위키피디아의 특성 상 항상 신뢰하긴 어려울 수도 있을 것 같다.

 

728x90
반응형

댓글