본문 바로가기
파이썬엑셀

파이썬 엑셀로 업비트 자동매매 봇 만들기: 쉽게 배우는 코인 투자 전략

by mypick 2024. 11. 6.

업비트 API를 파이썬으로 연동하고, 엑셀과 함께 활용하여 나만의 코인 자동매매 봇을 만들어 보는 건 어떨까요? 이 글에서는 업비트 Open API를 사용하여 잔고 조회, 가격 정보 가져오기, 그리고 엑셀과 연동하는 방법을 상세히 알려드립니다. 암호화폐 시장에서 자동화된 전략으로 효율적인 투자를 실현해보세요!

 


업비트 API 연동: 파이썬으로 코인 시장 데이터 잡기

음… 솔직히 말해서, 코인 시장 쉽지 않죠. 밤낮없이 가격 변동 확인하고, 매매 타이밍 놓치면 멘탈 흔들리고… 풉. 하지만 이제 걱정 붙들어 매세요! 파이썬과 업비트 Open API를 이용하면, 이 모든 걸 자동화할 수 있거든요. 업비트는 암호화폐 거래소 중에서도 API를 굉장히 잘 제공하는 편이라, 파이썬으로 쉽게 연결해서 다양한 정보를 가져올 수 있어요.

 

예를 들어, 내 잔고가 얼마나 있는지, 어떤 코인을 얼마나 가지고 있는지, 그리고 특정 코인의 현재 가격은 얼마인지 등을 파이썬 코드로 뚝딱 확인 가능하답니다. 이뿐만 아니라, 거래 내역을 확인하거나, 과거 가격 데이터를 가져와서 분석하는 것도 가능해요.

 

이렇게 얻은 데이터를 바탕으로, 나만의 자동 매매 시스템을 구축할 수도 있고, 코인 시장 분석을 위한 다양한 프로젝트를 진행할 수도 있죠. 흥미롭지 않나요?

 


파이썬 환경 구축: Anaconda와 PyUpbit 설치

자, 이제 본격적으로 파이썬 환경을 구축해 봐야죠. 파이썬 개발 환경으로는 최신 버전의 Anaconda를 추천해요. 윈도우든 맥이든, 리눅스든, 뭐든 상관없이 Anaconda 설치하면 파이썬과 필요한 라이브러리들을 깔끔하게 설치할 수 있거든요. Python 3 버전으로 설치하는 거 잊지 마시고요!

 

conda create -n upbit_env python=3.9 
conda activate upbit_env

Anaconda 설치 후, 업비트 API를 파이썬에서 사용할 수 있도록 도와주는 PyUpbit 라이브러리를 설치해야 해요. PyUpbit는 Upbit Open API를 좀 더 쉽게 사용할 수 있도록 만들어진 파이썬 래퍼(Wrapper) 같은 거라고 생각하면 돼요.

 

pip install pyupbit

PyUpbit 라이브러리 설치 시 pyjwt 모듈이 필요한데, 이것도 같이 설치해 주면 좋아요. (pyjwt >= 2.0)

 

pip install pyjwt

업비트 API 키 발급받기: 나만의 API 키 만들기

파이썬에서 업비트 API를 사용하려면, 먼저 업비트 계정에 로그인해서 API 키를 발급받아야 해요. 마치 업비트에 로그인하듯이, 파이썬에서도 나만의 API 키로 인증을 해야 업비트 API를 사용할 수 있거든요.

 

  • 업비트에 로그인 후, 고객센터에서 Open API 안내로 이동합니다.
  • API 키 발급을 위해 필요한 권한(주문하기, 출금하기 등)을 선택합니다. 봇으로 거래를 할 거라면 "주문하기", "출금하기" 권한은 필수에요.
  • IP 주소를 입력해야 합니다. 네이버에서 '내 IP 주소'를 검색해서 입력하면 돼요. MAC 사용자라면  명령어로 IP를 확인할 수 있지만, 네이버 검색이 더 정확해요.
  • 모드를 체크하고 발급받기를 클릭하면 Access Key와 Secret Key를 발급받습니다.

이제 발급받은 Access Key와 Secret Key를 안전하게 보관해야 합니다. 이 키가 업비트 계정과 파이썬 코드를 연결해 주는 중요한 역할을 하거든요.

 


잔고 조회: 내 계좌 현황 파악하기

자, 이제 PyUpbit을 이용해서 내 계좌 잔고를 조회해 볼까요? 아래 코드를 보면, 먼저  라이브러리를 import하고, Access Key와 Secret Key를 입력하는 부분이 있어요. 여기에 아까 발급받은 키를 넣어주면 됩니다.

 

import pyupbit

# API 키 입력
access = "YOUR_ACCESS_KEY"  # 본인 값으로 변경
secret = "YOUR_SECRET_KEY"  # 본인 값으로 변경

# Upbit 객체 생성
upbit = pyupbit.Upbit(access, secret)

# 잔고 조회
balance = upbit.get_balances()
print(balance)

 코드를 실행하면, 현재 내 계좌에 있는 돈과 각 코인의 잔고를 확인할 수 있을 거예요. 예를 들어, 비트코인 잔고를 확인하고 싶다면, 아래와 같이  변수에서 찾으면 됩니다.

 

for b in balance:
    if b['currency'] == 'BTC':
        print(f"비트코인 잔고: {b['balance']}")
        break

, 쉽죠? 이제 밤새도록 잔고 확인할 필요 없이, 파이썬 코드 하나로 내 계좌 현황을 간편하게 파악할 수 있게 되었네요!

 


코인 가격 정보 가져오기: 실시간 시세 확인

코인 가격은 언제나 변하기 때문에, 실시간으로 가격 정보를 확인하는 게 중요하죠. PyUpbit 라이브러리의  함수를 이용하면, 원하는 코인의 현재 가격을 쉽게 가져올 수 있습니다.

 

# 특정 코인 가격 조회 (예: 비트코인)
ticker = "KRW-BTC"
price = pyupbit.get_current_price(ticker)
print(f"{ticker}의 현재 가격: {price}")

 코드를 실행하면, 비트코인의 현재 가격이 출력될 거예요. 다른 코인의 가격을 확인하고 싶다면,  변수에 원하는 코인의 티커를 입력하면 됩니다. 티커는 KRW-BTC, KRW-ETH, KRW-XRP와 같이 코인마다 다르니 업비트 사이트에서 확인하시면 돼요.

 

만약 여러 코인의 가격을 한꺼번에 확인하고 싶다면,  변수에 코인 티커 목록을 리스트 형태로 넣어주면 됩니다.

 

tickers = ["KRW-BTC", "KRW-ETH", "KRW-XRP"]
prices = pyupbit.get_current_price(tickers)
print(prices)

 하면, 딕셔너리 형태로 여러 코인의 현재 가격을 한 번에 확인할 수 있답니다.

 


엑셀과 연동: 데이터 분석 및 시각화

코인 시장 분석이나 자동 매매 봇을 만들 때, 엑셀을 활용하면 정말 편리하죠. 엑셀에 데이터를 저장하고, 차트를 그려서 시각화하고, 필요한 계산을 수행할 수 있으니까요.

 

PyUpbit 라이브러리와 Pandas 라이브러리를 함께 사용하면, 엑셀 파일을 읽고 쓰는 작업을 쉽게 할 수 있습니다. 먼저 Pandas 라이브러리를 설치해야 해요.

 

pip install pandas
pip install openpyxl

Pandas로 엑셀 데이터 읽고 쓰기

Pandas 라이브러리의  함수를 사용하여 엑셀 파일을 읽어들이고,  함수를 사용하여 엑셀 파일에 데이터를 저장할 수 있습니다.

 

import pandas as pd

# 엑셀 파일 읽기
df = pd.read_excel("data.xlsx")

# 엑셀 파일에 데이터 저장
df.to_excel("output.xlsx", index=False)

업비트 데이터 엑셀에 저장하기

업비트 API로 가져온 코인 가격 정보를 엑셀 파일에 저장하고 싶다면, 아래와 같은 코드를 사용하면 됩니다.

 

import pyupbit
import pandas as pd

# API 키 입력
access = "YOUR_ACCESS_KEY"  
secret = "YOUR_SECRET_KEY"  

# Upbit 객체 생성
upbit = pyupbit.Upbit(access, secret)

# 코인 티커
ticker = "KRW-BTC"

# 캔들 데이터 가져오기 (1분 봉)
df = pyupbit.get_ohlcv(ticker, interval="minute1", count=100)

# 엑셀 파일에 저장
df.to_excel("btc_data.xlsx", index=True)

 코드는 비트코인의 1분 봉 데이터 100개를 가져와서 라는 엑셀 파일에 저장합니다.

 


엑셀 활용: 데이터 분석 및 시각화

엑셀에서 데이터를 분석하고 시각화하는 방법은 다양합니다. 예를 들어, 차트를 그려서 코인 가격의 추이를 확인하거나, 함수를 사용하여 가격 변동률을 계산할 수 있습니다.

 


자동 매매 봇 만들기: 파이썬으로 코인 거래 자동화

자, 이제 드디어 자동 매매 봇을 만들어 볼 차례에요. 파이썬과 PyUpbit 라이브러리를 사용하여 특정 조건에 따라 자동으로 코인을 매수/매도하는 봇을 만들 수 있답니다.

 


자동 매매 로직 구현

자동 매매 로직은 코인의 가격, 거래량, 이동평균선 등 다양한 요소를 기반으로 구현할 수 있습니다. 예를 들어, 비트코인 가격이 5% 하락하면 자동으로 매수하고, 10% 상승하면 자동으로 매도하는 로직을 구현할 수 있죠.

 

import pyupbit
import time

# API 키 입력
access = "YOUR_ACCESS_KEY"  
secret = "YOUR_SECRET_KEY"  

# Upbit 객체 생성
upbit = pyupbit.Upbit(access, secret)

# 코인 티커
ticker = "KRW-BTC"

# 매수/매도 조건 설정
buy_price = 0
sell_price = 0
target_profit = 0.1

while True:
    # 현재 가격 가져오기
    current_price = pyupbit.get_current_price(ticker)

    # 매수 조건 확인
    if buy_price == 0 and current_price < 50000000:
        buy_price = current_price
        # 코인 매수
        upbit.buy_market_order(ticker, 50000)
        print("비트코인 매수 완료")

    # 매도 조건 확인
    elif buy_price > 0 and current_price > buy_price * (1 + target_profit):
        sell_price = current_price
        # 코인 매도
        upbit.sell_market_order(ticker, upbit.get_balance(ticker))
        print("비트코인 매도 완료")
        buy_price = 0 

    time.sleep(1)

, 이건 아주 간단한 예시일 뿐이고, 더 복잡하고 정교한 로직을 구현할 수도 있습니다.

 


자동 매매 봇 실행 및 관리


자동 매매 봇을 실행하려면, 위 코드를 파이썬 인터프리터에서 실행하면 됩니다. 봇이 실행되면, 설정한 조건에 따라 자동으로 코인을 매수/매도할 거예요.

 

하지만, 자동 매매 봇은 항상 위험을 수반하기 때문에, 신중하게 사용해야 합니다. 봇의 설정을 잘못하면 큰 손실을 볼 수도 있으니, 충분히 테스트하고, 위험 관리를 철저히 하는 게 중요해요.

 


추가 기능 및 활용


Websocket API 활용: 실시간 데이터 수신

업비트에서는 WebSocket API를 제공하여 실시간으로 시세, 체결, 호가 정보를 받아볼 수 있습니다. 이 기능을 활용하면, 자동 매매 봇의 반응 속도를 높이고, 더욱 정교한 로직을 구현할 수 있습니다.

 


데이터 분석 및 시각화 도구 활용

Matplotlib, Seaborn과 같은 데이터 시각화 라이브러리를 활용하면, 업비트 API로 가져온 데이터를 다양한 차트와 그래프로 시각화하여 분석할 수 있습니다.

 


백테스팅 및 최적화

자동 매매 봇을 실제로 실행하기 전에, 과거 데이터를 사용하여 백테스팅을 수행하는 게 좋습니다. 백테스팅을 통해 봇의 성능을 검증하고, 매매 로직을 최적화할 수 있죠.

 


결론 및 요약

업비트 API를 파이썬과 엑셀과 함께 활용하면, 다양한 코인 관련 작업을 자동화하고, 효율적인 투자 전략을 수립할 수 있습니다.

 

잔고 조회 파이썬 코드로 현재 잔고와 코인 보유량 확인
코인 가격 정보 get_current_price() 함수로 실시간 코인 가격 가져오기
엑셀 연동 Pandas 라이브러리로 엑셀 파일 읽고 쓰기, 데이터 분석
자동 매매 봇 특정 조건에 따라 코인 자동 매수/매도
WebSocket API 실시간 시세, 체결, 호가 정보 수신

기능 설명

 

QnA

Q1. 업비트 API 키는 어떻게 발급받나요?

 

A1. 업비트 계정에 로그인 후, 고객센터 > Open API 안내에서 API 키를 발급받을 수 있습니다. 필요한 권한을 선택하고 IP 주소를 입력해야 합니다.

 

Q2. PyUpbit 라이브러리는 어디서 설치하나요?

 

A2. 파이썬 환경 (예: Anaconda)에서  명령어를 사용하여 설치할 수 있습니다.

 

Q3. 자동 매매 봇을 만들 때 주의해야 할 점은 무엇인가요?

 

A3. 자동 매매 봇은 위험을 수반하기 때문에, 신중하게 사용해야 합니다. 봇의 설정을 잘못하면 큰 손실을 볼 수도 있으므로, 충분한 테스트와 위험 관리가 필수입니다.

 

마무리

 

업비트 API를 파이썬과 엑셀을 활용하면, 여러분도 좀 더 효율적으로 암호화폐 투자를 할 수 있을 거예요. 하지만, 자동 매매는 위험이 따르기 때문에, 항상 신중하게 접근하고, 충분한 테스트를 거친 후에 사용하는 것이 중요합니다.

 

키워드

파이썬,업비트,API,코인,암호화폐,자동매매,봇,엑셀,Pandas,PyUpbit,데이터분석,시각화,백테스팅,투자,알고리즘트레이딩,퀀트,주식,거래소,가격정보,잔고조회,WebSocket,코딩,개발,금융,테크,재테크,투자전략,UpbitOpenAPI,코인봇,코인자동매매