본문 바로가기
Python

업비트 비트코인 GPT 자동매매 3편 : 비트코인 시세 데이터 가져오기

by 코드렌즈 2025. 10. 6.
반응형

이제 GPT가 판단할 수 있는 데이터를 만들어야 합니다.
이번 글에서는 업비트 API를 활용해 비트코인 시세(OHLCV) 데이터를 가져오는 방법을 배워봅니다.

이 데이터는 이후 GPT가 “BUY / SELL / HOLD” 결정을 내릴 때 가장 핵심적인 입력값으로 활용됩니다.

🔹 1. pyupbit이란?

pyupbit은 업비트 거래소의 API를 쉽게 사용할 수 있도록 만든 파이썬 라이브러리입니다.
복잡한 요청 코드를 직접 짜지 않아도, 몇 줄로 시세를 불러오거나 주문을 넣을 수 있습니다.

이미 1편에서 requirements.txt를 통해 설치한 상태지만,
혹시 설치가 안 되어 있다면 아래 명령어로 설치해주세요.

pip install pyupbit

🔹 2. 기본 구조 이해하기

업비트 API에서 시세 데이터를 요청할 때는 OHLCV 형태로 받게 됩니다.

  • O (Open) : 시가
  • H (High) : 고가
  • L (Low) : 저가
  • C (Close) : 종가
  • V (Volume) : 거래량

이 데이터를 기반으로 이동평균, RSI 등 다양한 기술적 지표를 계산할 수 있습니다.

🔹 3. 비트코인 시세 불러오기

  • 새 파일 생성
    VSCode에서 get_price.py 파일을 만듭니다.
  • 코드 작성
import pyupbit

# 비트코인 5일치 시세 데이터 가져오기
df = pyupbit.get_ohlcv("KRW-BTC", count=5)
print(df)
  • 실행
python get_price.py
  • 결과 예시
                   open     high      low    close      volume
2025-10-01  90100000  91200000  89500000  90500000   245.1936
2025-10-02  90500000  91800000  90000000  91500000   210.5412
...

 

 

👉 이처럼 DataFrame 형태로 일봉 시세가 깔끔하게 정리되어 출력됩니다.

🔹 4. 최근 30일 일봉 데이터 가져오기

GPT에게 전달하기에는 더 많은 데이터가 필요합니다.
30일 간의 데이터를 불러오도록 수정해봅시다.

import pyupbit

# 최근 30일 일봉 데이터 가져오기
df = pyupbit.get_ohlcv("KRW-BTC", interval="day", count=30)

print("데이터 개수:", len(df))
print(df.tail())
  • interval="day" : 일봉 기준
  • count=30 : 최근 30개의 데이터만 불러옴
  • df.tail() : 마지막 5일만 출력 (확인용)

🔹 5. 데이터 컬럼 확인

불러온 데이터에는 아래와 같은 컬럼이 자동 포함됩니다.

  • open : 시가
  • high : 고가
  • low : 저가
  • close : 종가
  • volume : 거래량
  • value : 거래 금액(quote volume)

이 중 GPT에게 보낼 때는 주로 close(종가)를 기준으로 분석합니다.

🔹 6. 데이터 JSON 형태로 변환하기

GPT는 Pandas DataFrame을 직접 이해하지 못하기 때문에,
데이터를 JSON 형식으로 변환해줘야 합니다.

import pyupbit
import json

# 비트코인 최근 30일 시세 데이터
df = pyupbit.get_ohlcv("KRW-BTC", count=30, interval="day")

# JSON 변환
data_json = df.to_json()
print(data_json)

 

출력 예시:

{"open":{"2025-09-01":90200000.0,...},"high":{...},"close":{...},...}

👉 이 데이터를 그대로 GPT API에 입력하면,
AI가 차트를 분석하고 투자 판단을 내릴 수 있습니다.

🔹 7. 필요에 따라 파일로 저장하기

데이터를 파일로 저장해두면, 이후 GPT 입력 테스트나 백테스트 시 유용합니다.

df.to_csv("btc_price_30days.csv", encoding="utf-8-sig")
print("CSV 파일 저장 완료!")

🔹 8. 데이터 활용 포인트

  • GPT 입력 데이터는 너무 많으면 토큰 비용이 증가합니다.
    (보통 30일~50일 정도면 충분)
  • 분석 전 데이터 전처리(이동평균, 수익률 등)를 추가해주면 GPT 판단 정확도가 높아집니다.
  • 실전 자동매매에서는 이 데이터 수집 과정을 주기적으로 자동화합니다.

🔹 9. 다음 단계 예고

이제 시세 데이터를 성공적으로 가져왔습니다.
다음 단계에서는 이 데이터를 GPT에게 전달해
“BUY / SELL / HOLD” 판단을 받는 과정을 만들어보겠습니다.

 

👉 다음 글 예고

  • 4편 — GPT에게 차트 데이터를 보내고 판단 받기
  • 5편 — GPT 판단 결과로 자동매매 실행하기
 

업비트 비트코인 GPT 자동매매 1편 : 개발환경 세팅 및 프로젝트 구성

안녕하세요 👋 이번 글은 GPT 자동매매 시리즈의 첫 번째 단계,“프로젝트 환경 구성과 기본 세팅”을 다룹니다.파이썬 설치, VSCode 설치, 가상환경(venv) 구성 등은 이미 다른 포스팅에서 다뤘기

codelenz.tistory.com

 

 

업비트 비트코인 GPT 자동매매 2편 : API 키 연동 및 환경 변수 관리

안녕하세요 👋 이번 글에서는 업비트와 OpenAI API 키를 코드에 연결하는 방법을 살펴보겠습니다.앞선 포스팅에서 API 키 발급은 이미 완료하셨을 텐데요 👇[업비트 API 키 발급 가이드↗][OpenAI API

codelenz.tistory.com

 

반응형