728x90
반응형
미국 연방준비제도(Fed)에서 직접 주가 데이터를 제공하지는 않지만, 일반적으로 주식 데이터는 외부 금융 데이터 API (예: Yahoo Finance, Alpha Vantage, IEX Cloud) 등을 통해 가져올 수 있습니다.
아래는 Yahoo Finance API를 활용해 실시간 주가 현황을 모니터링하는 Python 코드입니다. 이 코드는 주식 데이터를 가져와 모니터링하고 일정 간격으로 갱신해 보여줍니다.
필수 라이브러리 설치
먼저, yfinance와 pandas 라이브러리를 설치해야 합니다:
bash
복사편집
pip install yfinance pandas
실시간 주가 모니터링 코드
python
복사편집
import yfinance as yf
import time
import pandas as pd
# 모니터링할 주식 리스트 (예: S&P 500 ETF, Apple, Microsoft)
stock_symbols = ['^GSPC', 'AAPL', 'MSFT', 'GOOGL', 'AMZN']
# 실시간 주가 데이터를 가져오는 함수
def fetch_stock_prices(symbols):
stock_data = {}
for symbol in symbols:
ticker = yf.Ticker(symbol)
data = ticker.history(period='1d', interval='1m')
if not data.empty:
latest_price = data['Close'].iloc[-1]
stock_data[symbol] = latest_price
return stock_data
# 주식 데이터를 지속적으로 모니터링
def monitor_stocks(symbols, interval=60): # interval 단위: 초
while True:
prices = fetch_stock_prices(symbols)
df = pd.DataFrame(list(prices.items()), columns=['Stock', 'Price'])
print(df)
print('-' * 50)
time.sleep(interval)
# 모니터링 시작
monitor_stocks(stock_symbols, interval=60)
import time
import pandas as pd
# 모니터링할 주식 리스트 (예: S&P 500 ETF, Apple, Microsoft)
stock_symbols = ['^GSPC', 'AAPL', 'MSFT', 'GOOGL', 'AMZN']
# 실시간 주가 데이터를 가져오는 함수
def fetch_stock_prices(symbols):
stock_data = {}
for symbol in symbols:
ticker = yf.Ticker(symbol)
data = ticker.history(period='1d', interval='1m')
if not data.empty:
latest_price = data['Close'].iloc[-1]
stock_data[symbol] = latest_price
return stock_data
# 주식 데이터를 지속적으로 모니터링
def monitor_stocks(symbols, interval=60): # interval 단위: 초
while True:
prices = fetch_stock_prices(symbols)
df = pd.DataFrame(list(prices.items()), columns=['Stock', 'Price'])
print(df)
print('-' * 50)
time.sleep(interval)
# 모니터링 시작
monitor_stocks(stock_symbols, interval=60)
코드 설명
- 모니터링할 주식 리스트: stock_symbols 리스트에 원하는 주식 심볼을 입력합니다.
- ^GSPC: S&P 500 지수
- AAPL: 애플
- MSFT: 마이크로소프트
- fetch_stock_prices():
- 지정된 주식의 최신 가격을 가져옵니다.
- monitor_stocks():
- 일정 주기로(기본 60초) 실시간 주가를 갱신하며 출력합니다.
실행 결과 (예시)
yaml
복사편집
Stock Price
0 ^GSPC 4560.23
1 AAPL 152.34
2 MSFT 298.45
3 GOOGL 2735.67
4 AMZN 3450.21
--------------------------------------------------
0 ^GSPC 4560.23
1 AAPL 152.34
2 MSFT 298.45
3 GOOGL 2735.67
4 AMZN 3450.21
--------------------------------------------------
이 코드를 실행하면 설정한 주식의 실시간 가격 정보를 계속해서 모니터링할 수 있습니다. 필요에 따라 주식 심볼과 업데이트 주기를 자유롭게 조정할 수 있습니다.
===================
야후 파이낸스 대신 다른 주식 데이터 API를 활용하는 방법으로는 Alpha Vantage, IEX Cloud, Finnhub 등을 사용할 수 있습니다. 여기서는 Finnhub API를 사용하여 주가 현황을 모니터링하는 코드를 제공하겠습니다.
1. Finnhub API 사용 준비
- 먼저, Finnhub에 가입하고 API 키를 발급받아야 합니다.
- 무료 요금제로도 주식 시세를 실시간으로 조회할 수 있습니다.
2. 필수 라이브러리 설치
터미널에서 다음 명령어를 실행해 필요한 라이브러리를 설치하세요:
bash
복사편집
pip install finnhub-python pandas
3. 실시간 주가 모니터링 코드
python
복사편집
import finnhub
import time
import pandas as pd
# Finnhub API 클라이언트 설정 (발급받은 API 키 입력)
API_KEY = 'YOUR_API_KEY' # 여기 YOUR_API_KEY 부분에 발급받은 키 입력
finnhub_client = finnhub.Client(api_key=API_KEY)
# 모니터링할 주식 심볼 리스트 (예: AAPL, MSFT, TSLA)
stock_symbols = ['AAPL', 'MSFT', 'GOOGL', 'AMZN', 'TSLA']
# 주식 가격 데이터를 가져오는 함수
def fetch_stock_prices(symbols):
stock_data = {}
for symbol in symbols:
try:
quote = finnhub_client.quote(symbol)
latest_price = quote['c'] # 현재 가격
stock_data[symbol] = latest_price
except Exception as e:
print(f"Error fetching data for {symbol}: {e}")
return stock_data
# 주가 데이터를 주기적으로 모니터링
def monitor_stocks(symbols, interval=60): # interval 단위: 초
while True:
prices = fetch_stock_prices(symbols)
df = pd.DataFrame(list(prices.items()), columns=['Stock', 'Price'])
print(df)
print('-' * 50)
time.sleep(interval)
# 실시간 모니터링 실행
monitor_stocks(stock_symbols, interval=60)
import time
import pandas as pd
# Finnhub API 클라이언트 설정 (발급받은 API 키 입력)
API_KEY = 'YOUR_API_KEY' # 여기 YOUR_API_KEY 부분에 발급받은 키 입력
finnhub_client = finnhub.Client(api_key=API_KEY)
# 모니터링할 주식 심볼 리스트 (예: AAPL, MSFT, TSLA)
stock_symbols = ['AAPL', 'MSFT', 'GOOGL', 'AMZN', 'TSLA']
# 주식 가격 데이터를 가져오는 함수
def fetch_stock_prices(symbols):
stock_data = {}
for symbol in symbols:
try:
quote = finnhub_client.quote(symbol)
latest_price = quote['c'] # 현재 가격
stock_data[symbol] = latest_price
except Exception as e:
print(f"Error fetching data for {symbol}: {e}")
return stock_data
# 주가 데이터를 주기적으로 모니터링
def monitor_stocks(symbols, interval=60): # interval 단위: 초
while True:
prices = fetch_stock_prices(symbols)
df = pd.DataFrame(list(prices.items()), columns=['Stock', 'Price'])
print(df)
print('-' * 50)
time.sleep(interval)
# 실시간 모니터링 실행
monitor_stocks(stock_symbols, interval=60)
4. 코드 설명
- API 키 설정: API_KEY 변수에 Finnhub에서 발급받은 API 키를 입력해야 합니다.
- 모니터링할 주식: stock_symbols 리스트에 원하는 주식의 티커 심볼을 입력합니다.
- fetch_stock_prices():
- finnhub_client.quote()를 사용해 각 주식의 현재 가격을 가져옵니다.
- monitor_stocks():
- 설정한 간격(기본 60초)으로 주가 데이터를 가져와 출력합니다.
5. 출력 예시
markdown
복사편집
Stock Price
0 AAPL 150.25
1 MSFT 310.45
2 GOOGL 2800.78
3 AMZN 3450.21
4 TSLA 695.12
--------------------------------------------------
0 AAPL 150.25
1 MSFT 310.45
2 GOOGL 2800.78
3 AMZN 3450.21
4 TSLA 695.12
--------------------------------------------------
6. 장점 (Finnhub API 기준)
- 실시간 주가 정보 제공 (무료로 제한된 호출 가능)
- 다양한 금융 데이터 (주식, 외환, 암호화폐 등) 지원
- REST API 및 WebSocket 지원 (고급 사용자용)
이 코드를 활용하면, 별도의 웹 크롤링 없이 안정적인 실시간 주가 데이터를 얻을 수 있습니다.
728x90
반응형
'투자정보' 카테고리의 다른 글
선물 옵션가격을 예측하는 각종지표를 활용하여 변수로 사용하는 함수 (1) | 2025.03.16 |
---|---|
전 세계 상속세 제도 (0) | 2025.03.16 |
아들,딸에게 경제와 투자를 제대로 이해하고 실전에서 활용,단계별로 공부 (1) | 2025.03.16 |
엔초비 알고리즘(Anchovy Algorithm, AA)을 사용해 S&P 500 지수를 매수 및 매도하는 간단한 퀀트 트레이딩 알고리즘 (0) | 2025.03.16 |
JavaScript에서 DLL (Dynamic Link Library) 파일을 직접 사용하는 것 (0) | 2025.03.16 |