[파이썬] Yahooquery로 과거 주식 데이터와 재무 데이터 얻는 방법

금융 분석, 위험 관리, 그리고 포트폴리오 최적화를 위해서는 과거 가격과 금융 데이터에 접근하는 것이 중요하다. Python의 Yahooquery를 사용하면 이러한 정보를 쉽게 검색하고 관리할 수 있다. 이 포스트 에서는 Yahooquery를 활용하여 이러한 데이터를 얻는 방법에 대한 예제를 제공한다.

Yahooquery 설치

Yahooquery는 Python 패키지 인스톨러인 pip를 사용하여 쉽게 설치할 수 있다. Yahooquery 설치를 위해 아래 단계를 따른다.

1. 명령 프롬프트 또는 터미널을 연다. 2. 다음 명령을 입력한다.

bash
pip install yahooquery

3. Enter 키를 누르면 패키지가 Python 환경에 설치된다.

특정 환경을 사용하거나 보다 고급 설정이 필요한 경우 Yahooquery 공식 문서를 참조하자.

설치가 완료되면 다음 코드를 사용하여 Python 스크립트에 Yahooquery를 가져올 수 있다:

python
from yahooquery import Ticker

이제 Yahooquery 패키지를 사용하여 과거 가격, 대차대조표, 현금흐름표, 손익계산서, 그리고 평가 척도와 같은 금융 데이터를 검색하기 위한 준비가 완료되었다.

Python에서 Yahooquery를 사용하여 특정 과거 가격 데이터 검색

금융 분석에 있어 특정 과거 가격 데이터에 접근하는 것은 필수적이다. Python의 Yahooquery는 이 정보의 맞춤 검색을 허용한다. 다양한 매개변수에 따라 데이터를 가져오는 방법은 다음과 같다:

매개변수

  • period: 데이터를 검색할 시간 길이. 옵션에는 1d, 5d, 7d, 60d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max가 포함된다.
  • interval: 데이터 포인트 간의 시간. 옵션에는 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo가 포함된다.
  • start: 데이터를 가져올 특정 시작 날짜로, 문자열(형식 YYYY-MM-DD) 또는 datetime.datetime로 사용할 수 있다.
  • end: 시작 매개변수와 유사한 특정 종료 날짜.
  • adj_timezone: 특정 심볼의 시간대로 날짜/시간을 조정한다. True 또는 False.
  • adj_ohlc: 분할 및 배당 정보에 따라 조정된 시가, 고가, 저가, 종가를 계산한다. True 또는 False.

예시 코드

아래는 2022년에 일일 간격으로 삼성전자의 주식 데이터를 가져오는 예시 코드입니다:

python
from yahooquery import Ticker

# Google의 티커 심볼 정의
symbol = '005930.KS'
samsung = Ticker(symbol)

# 지정된 매개변수로 삼성전자의 과거 가격 데이터를 검색
historical_prices = samsung.history(period='1y', interval='1d', start='2022-01-01', end='2022-12-31', adj_timezone=True, adj_ohlc=False)

# 2022년에 일일 간격으로 삼성전자의 과거 가격을 출력한다.
print(historical_prices)
                         open     high      low  ...    volume      adjclose  dividends
symbol    date                                   ...                                   
005930.KS 2022-01-04  78800.0  79200.0  78300.0  ...  12427416  75986.750000        
...                       ...      ...      ...  ...       ...           ...        ...
          2022-12-29  56000.0  56200.0  55300.0  ...  11295935  54708.589844        0.0

이 코드는 지정된 기간, 간격, 기타 조정 사항으로 삼성전자의 과거 가격 데이터를 검색한다. 매개변수를 수정함으로써 다양한 분석과 보고 요구 사항에 맞게 검색을 맞춤화할 수 있다.

Yahooquery를 이용한 재무 데이터 추출

회사 분석에 있어 재무를 이해하는 것은 중요하다. Yahooquery를 통해 대차대조표, 현금흐름표, 손익계산서 및 평가 지표를 검색할 수 있다. 각 세부사항을 추출하는 방법을 살펴보자.

대차대조표, 현금흐름표 및 손익계산서

다음 매개변수를 사용하여 대차대조표, 현금흐름표 및 손익계산서 데이터를 검색할 수 있다:

  • frequency: 분기별 또는 연간 데이터를 표시한다. 옵션은 a (연간) 및 q (분기별)이다.
  • trailing: 지난 12개월(TTM) 데이터 포함 여부를 선택한다. 옵션은 True 또는 False이다.

다음은 삼성전자에 대한 이 세 가지 재무제표를 추출하는 예제 코드이다:

python
from yahooquery import Ticker

symbol = '005930.KS'
samsung = Ticker(symbol)

# 지난 12개월 데이터를 제외한 연간 대차대조표 데이터를 가져옵니다
balance_sheet = samsung.balance_sheet(frequency='a', trailing=False)

# 지난 12개월 데이터를 포함한 분기별 현금흐름표 데이터를 가져옵니다
cash_flow = samsung.cash_flow(frequency='q', trailing=True)

# 지난 12개월 데이터를 제외한 연간 손익계산서 데이터를 가져옵니다
income_statement = samsung.income_statement(frequency='a', trailing=False)

# 삼성전자의 검색된 재무제표를 출력합니다
print(balance_sheet)
print(cash_flow)
print(income_statement)
            asOfDate periodType  ... WorkInProcess  WorkingCapital
symbol                           ...                              
005930.KS 2019-12-31        12M  ...  9.886634e+12    1.176025e+14
      ...        ...        ...  ...           ...             ...
005930.KS 2022-12-31        12M  ...  2.161296e+13    1.401257e+14

[4 rows x 88 columns]
            asOfDate periodType  ... ShortTermDebtPayments  TaxesRefundPaid
symbol                           ...                                       
005930.KS 2022-06-30         3M  ...                   NaN    -6.367616e+12
      ...        ...        ...  ...                   ...              ...
005930.KS 2023-03-31        TTM  ...                   NaN    -1.218513e+13

[6 rows x 59 columns]
            asOfDate periodType  ... TotalUnusualItems  TotalUnusualItemsExcludingGoodwill
symbol                           ...                                                      
005930.KS 2019-12-31        12M  ...      2.043910e+11                        2.043910e+11
      ...        ...        ...  ...               ...                                 ...
005930.KS 2022-12-31        12M  ...     -9.238400e+10                       -9.238400e+10

[4 rows x 52 columns]

이 코드는 지정된 매개변수를 기반으로 삼성전자의 대차대조표, 현금흐름표 및 손익계산서의 연간 및 분기별 데이터를 검색한다.

평가 지표

평가 지표는 회사의 가치와 재무 성과를 평가하는 데 사용되는 핵심 재무 지표다. 이러한 지표는 투자 분석에서 중요하며, 투자자와 분석가가 회사의 주식의 매력을 평가하고 업계 내 다른 주식과 비교하는 데 도움이 된다.

Yahooquery를 사용하여 평가 지표를 검색하면 다음 열을 포함한 데이터를 받게 된다:

  • symbol: 회사의 티커 심볼
  • asOfDate: 데이터 참조일
  • periodType: 재무 기간 유형(예: 분기, 연도)
  • AccountsPayable, AccountsReceivable, AccumulatedDepreciation, AllowanceForDoubtfulAccountsReceivable 등: 회사의 자산, 부채, 자본 및 기타 재무 측면을 나타내는 다양한 재무 지표.

다음은 삼성전자의 평가 지표를 검색하는 예제 코드이다:

python
from yahooquery import Ticker

symbol = '005930.KS'
samsung = Ticker(symbol)

# 최근 네 분기 및 최근 날짜에 대한 평가 지표를 검색합니다
valuation_measures = samsung.valuation_measures

# 삼성전자의 평가 지표를 출력합니다
print(valuation_measures)
            asOfDate periodType  EnterpriseValue  ...    PeRatio  PegRatio   PsRatio
symbol                                            ...                               
005930.KS 2022-06-30         3M     2.753055e+14  ...   8.645533       NaN  1.036843
      ...        ...        ...              ...  ...        ...       ...       ...
005930.KS 2023-08-12        TTM              NaN  ...        NaN       NaN       NaN

[6 rows x 11 columns]

이 평가 지표에는 현금, 부채, 자본, 자산, 부채 및 기타 관련 지표와 같은 중요한 재무 데이터가 포함된다. 이러한 종합적인 정보는 다음에 사용될 수 있다:

  • 투자 분석: 회사의 재무 건강과 성장 잠재력 평가.
  • 비교 분석: 같은 업계의 경쟁 기업과 회사의 가치 비교.
  • 전략 계획: 기업 의사결정 및 전략 구성 지원.

이러한 평가 지표를 이해하고 활용함으로써 투자자, 분석가 및 기업 임원들은 투자, 분석 또는 미래 계획을 하는 데 있어 더욱 신중하고 자신 있는 결정을 내릴 수 있다.

자주 묻는 질문

  1. Yahooquery는 무료로 사용할 수 있나요? Yahooquery는 오픈소스 라이브러리로서 야후 파이낸스로부터 재무 데이터를 검색하는 데 자유롭게 활용할 수 있다.
  2. Yahooquery를 사용하여 실시간 데이터를 가져올 수 있나요? 네, Yahooquery는 적절한 함수와 매개변수를 사용하여 실시간 데이터를 검색하는 것을 지원한다.
  3. 한 번에 여러 심볼에 대한 데이터를 추출할 수 있나요? 네, 여러 티커 심볼의 목록을 Ticker 클래스에 전달하여 동시에 여러 심볼에 대한 데이터를 얻을 수 있다.
  4. Yahooquery의 재무 데이터를 위한 대체 라이브러리는 무엇인가? 대체 라이브러리로는 yfinance, pandas_datareader 및 alpha_vantage가 있다.
  5. Yahooquery를 사용하여 배당금 및 분할 이력을 추출할 수 있나요? 네, Yahooquery는 지정된 티커 심볼에 대한 배당금 및 분할 이력을 검색하는 기능을 제공한다.
© Copyright 2023 CLONE CODING