자동화· 10분 읽기

파이썬으로 암호화폐 자동매매 봇 만들기 — 완전 초보 가이드

코딩 제로에서 출발해 24시간 혼자 매매하는 봇 완성까지. RSI 전략 구현, 빗썸 API 연동, 손절 안전장치 코드를 실제 운영 중인 소스와 함께 단계별로 전부 공개합니다.

광고

자동매매 봇이 뭔가요?

자동매매 봇(Trading Bot)은 미리 설정한 조건에 따라 사람 없이 자동으로 매수·매도를 실행하는 프로그램입니다. 예를 들어 "비트코인이 5% 이상 급락하면 100만원어치 매수" 같은 규칙을 코드로 짜두면, 잠자는 동안에도 봇이 알아서 거래를 진행합니다.

유명 헤지펀드의 80% 이상이 알고리즘 트레이딩을 사용합니다. 하지만 개인도 파이썬 기초 지식만 있으면 충분히 자신만의 봇을 만들 수 있습니다.

시작 전 준비물

  • 파이썬 3.10 이상 설치 (python.org에서 무료 다운로드)
  • 빗썸 또는 업비트 계정 + API 키 발급
  • VSCode 또는 PyCharm (코드 에디터)
  • 초기 투자금: 테스트용 10만원 이상 권장

핵심 개념: 트레이딩 전략의 3가지 유형

봇을 만들기 전에 어떤 전략을 쓸지 결정해야 합니다.

  1. RSI 역추세 전략: RSI(상대강도지수)가 과매도 구간(30 이하)에서 매수, 과매수 구간(70 이상)에서 매도. 변동성이 높은 코인에 효과적.
  2. 이동평균선 돌파 전략: 단기 MA가 장기 MA를 상향 돌파할 때 매수(골든크로스), 하향 돌파 시 매도(데드크로스). 추세 추종형 전략.
  3. 변동성 돌파 전략: 전일 변동폭의 K배 이상 상승 시 매수, 당일 장 마감에 매도. 김프가 높을 때 한국 시장에 유리.

초보자에게는 RSI + 이동평균선 복합 전략을 추천합니다. 신호가 명확해 검증하기 쉽습니다.

파이썬 환경 세팅 (5분)

터미널(명령 프롬프트)을 열고 아래 명령어를 실행하세요:

pip install ccxt pandas python-dotenv requests
  • ccxt: 100개 이상의 거래소 API를 통합 지원하는 라이브러리
  • pandas: 캔들 데이터 처리 및 기술적 지표 계산
  • python-dotenv: API 키를 안전하게 관리

API 키 발급 및 연결

빗썸 기준 API 키 발급 방법:

  1. 빗썸 로그인 → 마이페이지 → Open API 관리
  2. "API KEY 발급" 클릭 → OTP 인증
  3. 발급된 API KEYSECRET KEY 복사 (절대 공개하지 마세요)

발급된 키를 .env 파일에 저장합니다:

BITHUMB_API_KEY=여기에_API_KEY
BITHUMB_SECRET_KEY=여기에_SECRET_KEY

RSI 계산 함수 작성

RSI는 가장 많이 쓰이는 모멘텀 지표입니다. 파이썬으로 간단히 구현할 수 있습니다:

import pandas as pd

def calculate_rsi(prices: list, period: int = 14) -> float:
    df = pd.Series(prices)
    delta = df.diff()
    gain = delta.where(delta > 0, 0).rolling(period).mean()
    loss = -delta.where(delta < 0, 0).rolling(period).mean()
    rs = gain / loss
    rsi = 100 - (100 / (1 + rs))
    return rsi.iloc[-1]

이 함수에 최근 종가 리스트를 넣으면 현재 RSI 값을 반환합니다. RSI가 30 미만이면 과매도, 70 초과면 과매수 신호입니다.

메인 트레이딩 루프 구조

봇의 핵심 구조는 단순합니다: 데이터 수집 → 신호 판단 → 주문 실행 → 반복.

import time

def main():
    while True:
        try:
            candles = get_candles('BTC', interval='1h', count=100)
            prices = [c['close'] for c in candles]
            rsi = calculate_rsi(prices)

            if rsi < 30:
                print(f"RSI {rsi:.1f} — 과매도 구간, 매수 신호")
                buy_market_order('BTC', amount_krw=100_000)
            elif rsi > 70:
                print(f"RSI {rsi:.1f} — 과매수 구간, 매도 신호")
                sell_all('BTC')

            time.sleep(3600)  # 1시간 대기

        except Exception as e:
            print(f"에러 발생: {e}")
            time.sleep(60)

if __name__ == '__main__':
    main()

리스크 관리: 반드시 넣어야 하는 안전장치

자동매매에서 가장 중요한 것은 수익이 아니라 리스크 관리입니다. 다음 안전장치 없이는 절대 실거래에 사용하지 마세요.

  • 최대 손실률 설정: 진입가 대비 -5% 이하 시 자동 손절
  • 1회 최대 투자금 제한: 총 자산의 10~20% 이내
  • 일일 최대 거래 횟수: 과거래 방지 (예: 하루 3회 이내)
  • 에러 알림: 텔레그램으로 에러 즉시 알림 설정
  • 테스트 먼저: 실거래 전 최소 1개월 백테스트 및 모의투자 필수

서버에 올려서 24시간 운영하기

로컬 컴퓨터를 항상 켜둘 수 없으므로, 클라우드 서버에 봇을 올려야 합니다. 월 5,000~10,000원 수준의 저렴한 VPS(가상서버)로 충분합니다.

  1. Contabo, Vultr, DigitalOcean 등에서 VPS 구입
  2. SSH로 서버 접속 후 파이썬 및 패키지 설치
  3. 백그라운드 실행: nohup python3 bot.py &

주의사항 및 면책

암호화폐 자동매매는 높은 수익 가능성과 함께 높은 리스크가 따릅니다. 이 글의 코드와 전략은 교육 목적이며, 투자 손실에 대한 책임은 본인에게 있습니다. 반드시 여유 자금으로만 시작하고, 전액 손실도 감수할 수 있는 금액으로 테스트하세요.

광고

스폰서 링크

수수료 20% 영구 할인받고 가입하기

세계 1위 거래소 바이낸스 — 레퍼럴 링크로 가입 시 평생 수수료 20% 리베이트

지금 가입

본 링크는 바이낸스 레퍼럴 제휴 링크로, 가입 시 수수료를 제공받을 수 있습니다.

🔧 이 글과 관련된 무료 도구

이 글과 관련된 상품 (파이썬)[광고/제휴]

이 포스팅은 쿠팡 파트너스, 아마존 어소시에이트, 알리익스프레스 제휴 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다. 이는 상품 가격에 영향을 주지 않습니다.
As an Amazon Associate, Coupang Partner, and AliExpress affiliate, I earn from qualifying purchases at no extra cost to you.

관련 글

광고