반응형
자동매매를 만들기 위해 꼭 API 키가 필요한 것은 아니다.
실제로 바이낸스는 공개 데이터를 누구나 API로 받아볼 수 있도록 하고 있다.
이번 글에서는 API 키 없이도 바이낸스에서 실시간 가격과 캔들 데이터를 가져오는 방법을 알아본다.
1. ccxt 라이브러리 소개
바이낸스뿐만 아니라 여러 거래소의 API를 하나의 인터페이스로 통합해주는 파이썬 라이브러리다.
fetch_ticker, fetch_ohlcv, fetch_order_book 같은 다양한 기능을 제공한다.
이전 글에서 설치한 ccxt를 그대로 사용하면 된다. 설치가 안 된 경우 아래 명령어로 설치 가능하다.
pip install ccxt
2. 바이낸스 객체 만들기
API 키 없이도 사용할 수 있도록 아래와 같이 객체를 생성한다.
import ccxt
binance = ccxt.binance({
'enableRateLimit': True # 과도한 요청을 피하기 위한 설정
})
3. 실시간 가격 가져오기
fetch_ticker() 함수로 특정 코인의 현재 시세를 가져올 수 있다.
symbol = 'BTC/USDT' # 비트코인/테더 마켓
ticker = binance.fetch_ticker(symbol)
print(f"{symbol} 현재 가격: {ticker['last']}")
출력 예시는 다음과 같다:
BTC/USDT 현재 가격: 103698.03
ticker에는 다음과 같은 정보들이 포함되어 있다:
- 'last': 마지막 체결 가격
- 'bid': 현재 매수호가
- 'ask': 현재 매도호가
- 'high', 'low': 24시간 최고/최저가
- 'baseVolume': 거래량
4. 캔들 데이터 가져오기 (OHLCV)
차트를 그리거나 기술적 분석을 하기 위해선 캔들 데이터가 필요하다.
fetch_ohlcv() 함수로 일정 간격의 가격 흐름을 가져올 수 있다.
import pandas as pd
symbol = 'BTC/USDT'
timeframe = '5m' # 5분봉
limit = 50 # 최근 50개 캔들
ohlcv = binance.fetch_ohlcv(symbol, timeframe=timeframe, limit=limit)
# pandas 데이터프레임으로 변환
df = pd.DataFrame(ohlcv, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume'])
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
print(df.tail())
출력 결과는 다음과 같이 구성된다:
timestamp open high low close volume
2025-05-14 10:40:00 | 103788.26 | 103856.63 | 103788.25 | 103809.52 | 24.00770 |
5. 예외 처리 (선택)
네트워크 문제나 바이낸스 서버 상태에 따라 오류가 발생할 수 있다.
이럴 때를 대비해 예외 처리를 추가해두면 좋다.
try:
ticker = binance.fetch_ticker('BTC/USDT')
print(f"현재 가격: {ticker['last']}")
except ccxt.BaseError as e:
print(f"데이터 요청 중 오류 발생: {e}")
마무리하며
이번 글에서는 API 키 없이도 바이낸스에서 실시간 시세와 캔들 데이터를 가져오는 방법을 다뤘다.
지금까지의 내용만으로도 기본적인 데이터 분석이나 시각화는 충분히 가능하다.
반응형
'코인' 카테고리의 다른 글
[자동매매봇 만들기][5편] 텔레그램 봇 연동 – 매매 시그널 알림 보내기 (0) | 2025.05.17 |
---|---|
[자동매매봇 만들기][4편] 기술적 지표와 단순 매매 조건 구현하기 (0) | 2025.05.16 |
[자동매매봇만들기][2편] 환경 세팅 - 파이썬 & ccxt 설치하기 (PyCharm 기준) (0) | 2025.05.12 |
[자동매매봇만들기][1편] 바이낸스 자동매매봇, 왜 만들까? (8) | 2025.05.11 |
바이낸스 체결 알림 봇 만들기 (1) | 2025.04.26 |