Code Beat
Gemini로 자동화 매매하기 - Binance 연결하기 본문
*본 글은 gemini로 개발하며 대화한 내용을 요약하여 자동 생성하였습니다.
[Project] LLM Multi-Agent 시스템을 활용한 투자 자동화 구축 - (2) 바이낸스 API 연동 및 데이터 Perception 구현
1. 개요
지난 포스팅에서는 시스템의 전반적인 아키텍처 설계와 Gemini API 환경 설정을 다루었다. 에이전트가 지능적인 판단을 내리기 위해서는 외부 세계, 즉 거래소의 실시간 시장 데이터에 접근할 수 있는 '눈'이 필요하다. 본 포스팅에서는 세계 최대 암호화폐 거래소인 **바이낸스(Binance)**의 API를 연동하고, 에이전트가 분석할 수 있는 형태로 데이터를 가공하는 과정을 다룬다.
2. 거래소 API 설정 및 보안 가이드
에이전트가 직접 매매를 수행하기 위해서는 API 권한 설정이 필수적이다. 금융 자산을 다루는 만큼 보안 설정에 유의해야 한다.
| 설정 항목 | 권한 및 조치 사항 | 비고 |
| 권한 범위 | Enable Reading, Enable Spot & Margin Trading | Withdrawals(출금) 권한은 반드시 제외 |
| IP 제한 | Restrict access to trusted IPs only | 유동 IP 환경일 경우 고정 IP(VPS 등) 확보 권한 활성화 필수 |
| 보안 인증 | 2FA(Google OTP 등) 활성화 | API 수정 및 생성 시 필수 단계 |
특히, 최근 바이낸스 정책상 **IP 제한(White-list)**을 설정하지 않으면 거래 권한(Spot Trading) 활성화가 제한되므로, 개발 단계에서는 현재 접속 중인 공인 IP를 등록하여 권한을 확보한다.
3. 환경 구축 및 라이브러리 연동
거래소 통신을 위해 python-binance 라이브러리를 사용하며, 수집된 수치 데이터를 기술적 지표로 변환하기 위해 pandas_ta를 활용한다.
3.1. 라이브러리 설치
pip install python-binance pandas_ta
3.2. 환경 변수 업데이트
기존 .env 파일에 바이낸스 접근 정보를 추가하여 에이전트가 참조할 수 있도록 한다.
# .env 파일 업데이트
BINANCE_API_KEY=YOUR_BINANCE_PUBLIC_KEY
BINANCE_SECRET_KEY=YOUR_BINANCE_SECRET_KEY
4. 데이터 Perception 로직 구현
에이전트 중 Chart-Agent가 읽을 수 있도록 캔들스틱(OHLCV) 데이터를 수집하고 이를 분석 가능한 구조로 변환하는 모듈을 구성한다.
from binance.client import Client
import pandas as pd
import pandas_ta as ta
def get_market_data(symbol="BTCUSDT", interval="1h"):
client = Client(api_key, api_secret)
# 최근 100개의 캔들 데이터 로드
klines = client.get_klines(symbol=symbol, interval=interval, limit=100)
df = pd.DataFrame(klines, columns=['time', 'open', 'high', 'low', 'close', 'vol', ...])
df['close'] = df['close'].astype(float)
# Chart-Agent를 위한 보조지표 계산 (RSI 등)
df['RSI'] = ta.rsi(df['close'], length=14)
return df.iloc[-1] # 최신 데이터 반환
5. 시행착오 및 해결 (Troubleshooting)
- API 권한 활성화 불가: 'Enable Spot & Margin Trading' 체크박스가 비활성화된 경우, 하단의 IP Restriction 섹션에서 신뢰할 수 있는 IP를 먼저 등록해야 수정이 가능해진다.
- 데이터 타입 에러: 바이낸스 API에서 반환되는 가격 데이터는 문자열(String) 형태이므로, 보조지표 계산 전 반드시 부동소수점(Float)으로 형변환을 거쳐야 계산 오류를 방지할 수 있다.
6. 결론 및 향후 계획
이제 에이전트 시스템은 바이낸스라는 외부 환경과 연결되어 실시간 데이터를 받아올 준비를 마쳤다. 이는 에이전트가 시장의 변화를 인식(Perception)할 수 있는 단계에 도달했음을 의미한다.
다음 단계에서는 Chart-Agent의 세부 로직을 구현할 예정이다. 구체적으로는 멀티모달 기능을 활용한 캔들 패턴 인식, 이동평균선 밀집도 분석, 그리고 Gemini를 이용한 기술적 지표의 정성적 해석 프롬프트를 구성하여 마스터 에이전트에게 전달하는 과정을 다룰 계획이다.
'Code > AI' 카테고리의 다른 글
| Gemini로 자동화 매매하기 (환경 구성) (0) | 2025.12.22 |
|---|---|
| ChatGPT를 VSCode 확장으로 연동하기 (3) — WebView와 OpenAI API 연결 (0) | 2025.12.07 |
| ChatGPT를 VSCode 확장으로 연동하기 (2) — WebView 기반 인터페이스 구현 (0) | 2025.12.07 |
| ChatGPT를 VSCode 확장으로 연동하기 (1) — 환경 구축과 목표 설정 (0) | 2025.12.04 |