파이썬으로 미국 주식 티커 가져오기
- 퀀트투자
- 2025. 1. 25.
미국주식 티커 가져오기
미국주식은 우리나라와 달리 티커라는 개념이 있습니다. 우리나라에서는 숫자로 주식종목을 식별할 수 있는 고유코드를 부여하지만. 미국은 약자로서 고유코드를 부여합니다.아래와 같이 영문 1~5자로 티커가 구성되어 있습니다
- AAPL: Apple Inc.
- MSFT: Microsoft Corporation
- AMZN: Amazon.com Inc.
- TSLA: Tesla Inc.
FinanceDataReader로 미국 주식 티커 가져오기
주식 투자나 데이터 분석을 할 때 미국 주식 티커(ticker)를 얻는 것은 매우 중요한 과정입니다. 티커는 주식 종목을 식별하는 고유한 코드로, 데이터를 수집하거나 특정 종목을 분석할 때 필수적으로 사용됩니다.
FinanceDataReader 설치
FinanceDataReader는 파이썬 패키지 관리 도구인 pip
를 통해 설치할 수 있습니다.
pip install finance-datareader
FinanceDataReader에 대한 자세한 내용은 아래 포스팅을 참고하시기 바랍니다.
미국 주식 티커 가져오기
이제 NASDAQ과 S&P 500에 상장된 주식 티커를 가져오는 방법을 살펴보겠습니다.
1. NASDAQ 주식 티커 가져오기
아래 코드는 NASDAQ 시장에 상장된 모든 주식의 티커를 가져오는 예제입니다.
import FinanceDataReader as fdr
# NASDAQ 주식 리스트 가져오기
nasdaq_stocks = fdr.StockListing('NASDAQ')
# 데이터 확인
print(nasdaq_stocks.head())
출력 결과는 아래와 같이 NASDAQ에 상장된 종목 리스트를 보여줍니다.
Symbol Name Industry
0 AAPL Apple Inc. Consumer Electronics
1 MSFT Microsoft Corp. Software—Infrastructure
2 GOOG Alphabet Inc. Internet Content & Information
3 AMZN Amazon.com Inc. Internet Retail
4 TSLA Tesla Inc. Auto Manufacturers
2. S&P 500 주식 티커 가져오기
다음으로, S&P 500에 포함된 주식 티커를 가져오는 방법입니다.
# S&P 500 주식 리스트 가져오기
sp500_stocks = fdr.StockListing('S&P500')
# 데이터 확인
print(sp500_stocks.head())
출력 결과는 S&P 500에 포함된 종목 리스트를 보여줍니다.
Symbol Name Industry
0 AAPL Apple Inc. Technology Hardware
1 MSFT Microsoft Corp. Software—Infrastructure
2 AMZN Amazon.com Inc. Consumer Discretionary
3 NVDA NVIDIA Corporation Semiconductors
4 GOOG Alphabet Inc. Communication Services
FinanceDataReader의 장점
- 다양한 시장 지원: 국내(KRX), 미국(NASDAQ, NYSE, AMEX), 유럽, 아시아 등 다수의 시장 데이터를 제공합니다.
- 손쉬운 사용법: 복잡한 설정 없이 몇 줄의 코드로 데이터를 가져올 수 있습니다.
- 무료 사용 가능: 유료 API 없이도 활용할 수 있어 초보자에게 적합합니다.
다른 방법들
개인적으로는 FinanceDataReader를 이용하는 방법이 가장 간단했는데요. 이 방법 말고 다른 방법도 있습니다. 간단하게 소개만 하겠습니다. 대표적으로 yfinance, pandas-datareader, Yahoo Finance API 또는 Alpha Vantage API 등을 활용하는 방식이 있습니다.
1. yfinance를 활용하는 방법
yfinance
는 Yahoo Finance에서 데이터를 가져오는 라이브러리입니다. 미국 주식 티커 목록을 포함한 다양한 데이터를 손쉽게 얻을 수 있습니다.
설치
pip install yfinance
사용 예제
yfinance를 활용해 S&P 500 티커를 가져올 수 있는 방법은 아래와 같습니다.
import yfinance as yf
# S&P 500 종목 가져오기
sp500 = yf.Ticker("^GSPC") # S&P 500 지수의 티커
sp500_stocks = sp500.history(period="1d") # 관련 데이터를 가져옴
print(sp500_stocks)
그러나 S&P 500 구성 종목 전체를 바로 가져오는 기능은 기본적으로 없기 때문에, S&P 500 티커 리스트를 별도로 저장해두거나 아래와 같은 추가적인 데이터를 활용해야 합니다.
2. Pandas 데이터로 직접 S&P 500 구성 종목 가져오기
S&P 500의 구성 종목 데이터는 웹에 공개된 소스가 많습니다. 위키백과(Wikipedia)에 있는 S&P 500 리스트를 가져올 수 있습니다.
사용 예제
import pandas as pd
# S&P 500 리스트가 포함된 Wikipedia 페이지 읽기
url = "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies"
sp500_table = pd.read_html(url)[0] # 첫 번째 테이블 가져오기
# 결과 확인
print(sp500_table.head())
출력 결과
Symbol Security GICS Sector GICS Sub-Industry
0 AAPL Apple Inc. Information Technology Technology Hardware
1 MSFT Microsoft Corporation Information Technology Software
2 AMZN Amazon.com Inc. Consumer Discretionary Internet & Direct Marketing Retail
3 TSLA Tesla Inc. Consumer Discretionary Automobiles
4 GOOG Alphabet Inc. C Communication Services Interactive Media & Services
3. Alpha Vantage API 활용
Alpha Vantage는 무료로 금융 데이터를 제공하는 API입니다. 무료 플랜으로도 충분히 데이터를 가져올 수 있지만, API 키가 필요합니다.
설치
pip install alpha_vantage
API 키 발급
Alpha Vantage 홈페이지에서 무료로 API 키를 발급받으세요.
사용 예제
from alpha_vantage.timeseries import TimeSeries
# Alpha Vantage API 키
api_key = "YOUR_API_KEY"
# Alpha Vantage를 사용해 데이터 가져오기
ts = TimeSeries(key=api_key, output_format="pandas")
data, meta_data = ts.get_symbol_search("Apple") # 특정 기업 검색
print(data)
단점
Alpha Vantage는 특정 종목 검색이나 데이터를 가져오는 데 적합하지만, 전체 티커 리스트를 제공하지는 않습니다. NASDAQ 또는 S&P 500 리스트를 별도로 가져와야 합니다.
4. Quandl API 활용
Quandl은 다양한 금융 데이터를 제공하는 또 다른 플랫폼입니다. S&P 500 데이터는 유료 데이터셋으로 제공되지만, 다른 티커 데이터를 무료로 사용할 수 있습니다.
설치
pip install quandl
사용 예제
import quandl
# Quandl API 키 설정
quandl.ApiConfig.api_key = "YOUR_API_KEY"
# 데이터 가져오기
data = quandl.get("WIKI/AAPL") # Apple 주식 데이터
print(data.head())
5. Yahoo Finance 웹 크롤링
Yahoo Finance 웹사이트에서 미국 주식 데이터를 직접 크롤링하는 방법도 있습니다. 이를 위해 BeautifulSoup
같은 라이브러리를 사용할 수 있습니다.
설치
pip install requests beautifulsoup4
사용 예제
import requests
from bs4 import BeautifulSoup
# Yahoo Finance에서 데이터 가져오기
url = "https://finance.yahoo.com/screener/predefined/ms_technology"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
# 주식 티커 추출
tickers = [item.text for item in soup.select(".simpTblRow td:first-child")]
print(tickers)
마치며 어떤 방법이 적합할까?
- 단순히 티커만 필요하다면: Wikipedia 크롤링이나
FinanceDataReader
가 가장 쉽습니다. - 티커와 함께 추가 데이터를 분석하려면: yfinance 또는 Alpha Vantage를 추천합니다.
- 상세한 실시간 데이터를 원한다면: Alpha Vantage, Quandl 등 API 기반 솔루션을 사용하세요.
함께보면 좋은글
'퀀트투자' 카테고리의 다른 글
초보자도 하는 주식 기술적 분석 파이썬 라이브러리 (3) | 2025.01.18 |
---|