본문 바로가기
Python

업비트 비트코인 GPT 자동매매 정리편 : 시스템 전체 구조 한눈에 보기

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

🧩 1. GPT 자동매매란?

GPT 자동매매 시스템은 인공지능이 스스로
“지금 비트코인을 사야 할까, 팔아야 할까?”를 판단하고
API를 통해 자동으로 거래를 실행하는 프로그램입니다.

핵심은 세 가지 요소입니다:

1️⃣ GPT (OpenAI) → 차트 데이터를 분석하고 매매 판단
2️⃣ Upbit API → 실제 거래를 실행 (매수·매도)
3️⃣ Python 코드 → 두 시스템을 연결하고 반복 수행

⚙️ 2. 전체 구조 개요

GPT 자동매매 시스템은 다음과 같은 단계로 구성됩니다:

1️⃣ 데이터 수집
→ pyupbit으로 30일 일봉(OHLCV) 데이터를 가져옴

2️⃣ 데이터 분석 (GPT 판단)
→ GPT에 JSON 형태로 전달
→ “BUY / SELL / HOLD” 중 하나의 결정을 받음

3️⃣ 거래 실행 (Upbit API)
→ GPT의 응답에 따라 시장가 매수/매도 수행

4️⃣ 리스크 관리
→ 손실률, 거래 한도, 쿨다운 타이머로 과매매 방지

5️⃣ 자동 반복 (Main Loop)
→ 1시간마다 위 과정을 자동으로 반복 실행

6️⃣ 로그 및 알림
→ 매매 내역, 오류, 판단 결과를 로그 파일 및 Discord 알림으로 기록

🧠 3. 시스템 흐름 요약 (텍스트 다이어그램)

[시작] 
   ↓
[업비트 시세 수집]
   ↓
[30일 일봉 데이터 → JSON 변환]
   ↓
[GPT 판단 요청]
   ↓
{ "decision": "buy" } 
{ "decision": "sell" }
{ "decision": "hold" }
   ↓
[리스크 필터]
   ├─ 손실 한도 초과 → STOP
   ├─ 중복 체결 쿨다운 → SKIP
   ├─ 일일 거래 횟수 초과 → WAIT
   ↓
[업비트 매매 실행]
   ├─ buy_market_order()
   ├─ sell_market_order()
   ↓
[로그 및 알림 기록]
   ↓
[대기 (1시간)]
   ↓
[다음 루프 반복]

🧩 4. 구성 파일 정리

프로젝트 폴더 구조 예시는 다음과 같습니다:

gpt-trading-bot/
 ├─ .env                      # API 키 보관
 ├─ requirements.txt          # 라이브러리 목록
 ├─ trading.py                # 메인 매매 로직
 ├─ bot_loop.py               # 자동 반복 루프
 ├─ utils.py                  # 리스크 관리 / 공통함수
 ├─ logs/
 │   ├─ bot.log
 │   └─ trade_history.log
 ├─ README.md

🧰 5. 주요 구성요소 요약

  • pyupbit : 업비트 시세 데이터 수집 및 주문 실행
  • openai : GPT 모델 호출 및 판단 결과 수신
  • dotenv : 환경 변수(.env) 파일 관리
  • logging : 모든 매매 로그 및 예외 기록
  • time / datetime : 루프 주기 제어
  • requests (선택) : Discord 알림 발송

🛠️ 6. 각 편별 핵심 요약

0편 — 개요
GPT 자동매매의 기본 구조와 개념 설명

1편 — 개발 환경 세팅
파이썬, VSCode 설치 및 가상환경 구성

2편 — API 키 발급
업비트 API + OpenAI API 발급 및 .env 설정

3편 — 시세 데이터 수집
pyupbit으로 30일 일봉(OHLCV) 데이터 가져오기

4편 — GPT 판단 요청
JSON 형태로 차트 데이터를 전달하고 응답 받기

5편 — 매매 실행 로직
GPT 응답을 기반으로 매수·매도 자동 실행

6편 — 자동 반복 루프 구성
1시간마다 자동으로 판단 및 거래 수행

7편 — 리스크 관리 시스템
손실 한도, 거래 제한, 중복 매매 방지 로직 추가

8편 — 실전 운영 및 성능 개선
서버 운영, 비용 절감, 알림, 백테스트 등 운영 최적화

🧩 7. 리스크 관리 구조 요약

GPT 판단이 항상 옳은 것은 아니기 때문에,
시스템은 “AI의 결정을 검증하는 필터”를 둡니다.

  • Stop-loss : 손실률이 일정 이상이면 거래 중단
  • Budget Control : 매수 시 최대 금액 제한
  • Cooldown Timer : 동일 신호 연속 체결 금지
  • Trade Cap : 하루 거래 횟수 제한
  • Error Handling : API 오류 자동 재시도

이 다섯 가지가 자동매매의 안정성 핵심 요소입니다.

🧠 8. GPT 프롬프트 구조 예시

You are a Bitcoin trading expert.
Analyze the last 30 days of OHLC data.
Respond only in JSON format:
{"decision": "buy"} or {"decision": "sell"} or {"decision": "hold"}.
 
  • 불필요한 문장 제거
  • 응답 형식을 JSON으로 제한 (파싱 안정성 확보)
  • 필요 시 “trend”, “volatility” 같은 지표 기반 조건 추가 가능

💸 9. 운영 팁 정리

1️⃣ 서버 운영 — VPS에서 24시간 실행 (tmux/screen 활용)
2️⃣ 로그 관리 — 하루 단위 로그 파일 분리 및 백업
3️⃣ 비용 절감 — gpt-4o-mini 모델 사용 + 호출 주기 1~2시간
4️⃣ 모니터링 — Discord 알림 또는 Telegram 봇 연결
5️⃣ 토큰 예산 — OpenAI Dashboard에서 월 예산 설정
6️⃣ 전략 고도화 — GPT 입력에 RSI, MA 등 보조지표 추가

📊 10. 전체 아키텍처 요약 다이어그램

┌──────────────────────────┐
│     Upbit Market Data     │
│ (OHLCV 30days via pyupbit)│
└─────────────┬────────────┘
              │
              ▼
┌──────────────────────────┐
│  GPT (OpenAI API)        │
│  - JSON 요청/응답        │
│  - BUY / SELL / HOLD 판단 │
└─────────────┬────────────┘
              │
              ▼
┌──────────────────────────┐
│  Risk Filter Layer        │
│  - 손실 한도 체크         │
│  - 거래 한도 제한         │
│  - 쿨다운 타이머          │
└─────────────┬────────────┘
              │
              ▼
┌──────────────────────────┐
│  Upbit Trading Engine     │
│  - buy_market_order()     │
│  - sell_market_order()    │
└─────────────┬────────────┘
              │
              ▼
┌──────────────────────────┐
│  Logging & Alerts         │
│  - bot.log 기록           │
│  - Discord 알림 발송      │
└─────────────┬────────────┘
              │
              ▼
┌──────────────────────────┐
│  Main Loop (1h interval) │
│  - sleep & repeat        │
└──────────────────────────┘

🪙 11. 마무리 — 이제는 ‘운영자’의 단계

이제 여러분은 GPT가 차트를 분석하고,
업비트 API로 실시간 자동매매를 수행하며,
리스크를 관리하고 성능까지 최적화하는 완전한 시스템을 갖추었습니다.

다음 단계에서는

  • GPT 프롬프트를 전략적으로 조정하거나
  • 보조지표 기반 판단을 추가하고
  • Streamlit 대시보드나 Discord 리포트로 시각화하면

AI 트레이딩 시스템 운영자”로서 한 단계 업그레이드할 수 있습니다 🚀

🔗 시리즈 전체 보기

반응형