반응형
요즘 주식, 암호화폐, 외환 데이터를 자동으로 분석하거나 시각화하는 작업을 많이 하죠. 그럴 때 필요한 것이 바로 신뢰할 수 있는 금융 데이터 API입니다. 오늘은 그중에서 **가볍고 사용이 간편한 API인 Twelve Data**를 소개하고, 실전 코드까지 함께 살펴보겠습니다.
🔎 Twelve Data란?
Twelve Data는 전 세계 금융시장 실시간 데이터 및 과거 시세를 손쉽게 가져올 수 있는 REST API 기반의 서비스입니다.
초보 개발자부터 프로 개발자, 퀀트 투자자까지 다양하게 활용할 수 있도록 문서도 잘 정리돼 있으며, 무료 요금제로도 꽤 많은 기능을 사용할 수 있습니다.
🎯 제공하는 데이터 종류
- 주식 (Stocks)
- ETF
- 암호화폐 (Crypto)
- 외환 (Forex)
- 지수 (Indices)
- 펀더멘털 (기업 재무제표 등)
- Technical Indicators (MACD, RSI 등)
📦 가입 및 API 키 발급
- https://twelvedata.com 에 접속
- 이메일로 간단히 회원가입
- 로그인 후
API Key
복사
💡 무료 플랜 기준으로 1분 단위 실시간 데이터, 일간 데이터, 기술 지표 등을 하루 최대 800회까지 사용할 수 있습니다.
🧪 샘플 코드 – 주식(ETF) 데이터 가져오기
S&P 500 지수를 직접 가져오는 기능은 유료 요금제 이상에서만 지원되지만, 동일한 흐름을 추적할 수 있는 **ETF인 SPY
**를 통해 간접적으로 지수를 분석할 수 있습니다.
🐍 Python 설치
pip install twelvedata
✅ 기본 데이터 가져오기 (Pandas 연동)
from twelvedata import TDClient
# 1. API 키 설정
td = TDClient(apikey="YOUR_API_KEY")
# 2. SPY (S&P500 추종 ETF) 데이터 가져오기
ts = td.time_series(
symbol="SPY", # 티커
interval="1day", # 데이터 간격: 1분, 5분, 1일 등
outputsize=30, # 가져올 데이터 수
timezone="America/New_York"
)
# 3. Pandas로 변환
df = ts.as_pandas()
print(df.head())
🛠️ requests
라이브러리로 직접 요청
import requests
url = "https://api.twelvedata.com/time_series"
params = {
"symbol": "SPY",
"interval": "1day",
"outputsize": 30,
"apikey": "YOUR_API_KEY"
}
response = requests.get(url, params=params)
data = response.json()
for entry in data['values']:
print(entry)
📈 기술지표 (예: MACD, RSI) 계산하기
indicator = td.technical_indicator(
symbol="SPY",
interval="1day",
indicator="RSI",
time_period=14
)
df_rsi = indicator.as_pandas()
print(df_rsi.tail())
📌 주의사항
- 무료 플랜에서는 일부 지수(예: S&P500
SPX
,^GSPC
)는 직접 조회 불가. - 무료 요금제는 하루 800회 요청 제한.
- 정확한 심볼은 Symbol Reference 문서 참고.
🧭 마무리 – Twelve Data를 언제 써야 할까?
사용 목적 | 추천 여부 |
---|---|
초단타 실시간 트레이딩 | ❌ (지연 있음) |
일봉 기반 분석 | ✅ |
기술 지표 백테스트 | ✅ |
해외주식 시세 수집 | ✅ |
암호화폐 자동화 시스템 | ✅ |
📌 TradingView API, Yahoo Finance와 비교해도 가볍고, 쓰기 쉽고, 확장 가능성이 높습니다.
📚 참고 자료
반응형
'Programming' 카테고리의 다른 글
📈 yfinance 429 오류 해결법: Too Many Requests 문제 완전 정복 (0) | 2025.05.10 |
---|---|
🛠️ 야후 파이낸스 API 429 오류(Too Many Requests) 대응법 총정리 (1) | 2025.05.08 |
🧠 진짜 쉽게 배우는 Python 함수형 프로그래밍: lambda, map, filter, reduce (0) | 2025.03.31 |
📡 Python으로 MSSQL 저장 프로시저 실행하기 (파라미터 전달까지 완벽 정리!) (0) | 2025.03.28 |
📬 Python으로 텔레그램에 알림 보내는 방법 (봇 API 활용) (1) | 2025.03.27 |