파이썬 자동매매 입문 완전 가이드 — 환경 설치부터 첫 봇까지
"자동매매를 직접 만들고 싶은데 파이썬을 한 번도 안 써봤다" — 이 글은 정확히 그분들을 위한 글입니다. 자동매매에 필요한 파이썬은 거대한 언어의 일부일 뿐입니다. 웹 개발이나 AI에 쓰는 복잡한 기능은 거의 필요 없고, 변수·함수·조건문·반복문·딕셔너리·라이브러리 사용 — 이 정도만 알면 봇을 만들 수 있습니다.
이 글은 알고랩이 "코딩 모르는데 직접 배워보고 싶다"는 분들에게 가장 자주 안내하는 학습 순서를 그대로 정리했습니다. 1~4단계(환경·문법·데이터·API)를 이 글에서 다루고, 5단계 이후(전략·실거래)는 거래소별 30분 가이드로 자연스럽게 이어집니다.
이 글의 8부 구성
- Part 1 — 왜 파이썬인가 (자동매매에 필요한 만큼만)
- Part 2 — Python 설치 + 가상환경 (32bit vs 64bit)
- Part 3 — 자동매매에 꼭 필요한 문법 6가지
- Part 4 — pandas로 시세 데이터 다루기
- Part 5 — 필수 라이브러리 지도
- Part 6 — API로 첫 시세 받아오기
- Part 7 — 첫 봇 실행 (10줄 골격)
- Part 8 — 학습 로드맵 + 다음 단계
Part 1 — 왜 파이썬인가
자동매매 = 파이썬이 사실상 표준. 그 이유와 "필요한 만큼만" 배우는 법.
자동매매에 파이썬이 표준인 이유
- 거래소·증권사 라이브러리 — python-binance, pyupbit, ccxt 등 거의 모든 거래소가 파이썬 라이브러리를 제공
- 데이터 처리 — pandas로 시세·지표 계산이 몇 줄이면 끝
- 배우기 쉬움 — 문법이 영어 문장에 가까워 입문 장벽 낮음
- 자료 풍부 — 한국어 자동매매 자료의 90%가 파이썬 기반
자동매매에 필요한 파이썬은 "전체의 20%"
파이썬은 웹·AI·게임 등 거의 모든 분야에 쓰이는 거대한 언어지만, 자동매매에 필요한 것은 다음뿐입니다:
| 필요한 것 | 안 배워도 되는 것 |
|---|---|
| 변수, 자료형 | 클래스 상속·메타클래스 |
| 함수 | 데코레이터 (초기엔) |
| 조건문 (if), 반복문 (for/while) | 제너레이터·이터레이터 심화 |
| 리스트·딕셔너리 | 웹 프레임워크 (Django 등) |
| 라이브러리 import·사용 | 비동기 심화 (asyncio 초기엔) |
| pandas DataFrame 기본 | 머신러닝 (초기엔) |
💡 학습 함정 피하기: "파이썬 완전 정복" 같은 두꺼운 책을 1페이지부터 다 보려 하지 마세요. 자동매매에 필요한 위 6가지만 빠르게 익히고, 나머지는 봇을 만들면서 필요할 때 그때그때 찾아 배우는 것이 가장 빠릅니다.
Part 2 — Python 설치 + 가상환경
32bit vs 64bit 선택이 첫 갈림길. 잘못 고르면 처음부터 막힙니다.
32bit vs 64bit — 무엇을 설치할까
| 사용할 플랫폼 | 설치할 Python |
|---|---|
| 코인 (바이낸스·업비트·빗썸) | 64bit |
| 한국투자증권 KIS API | 64bit |
| 키움 OpenAPI+ | 32bit (필수) |
| LS·대신 (구 OCX) | 32bit |
대부분은 64bit면 됩니다. 키움 OpenAPI+만 32bit COM 컴포넌트라 32bit 파이썬이 필요합니다. 키움 관련 함정은 → 키움 OpenAPI+ 설치·오류 해결 가이드 참고.
설치 (Windows 기준)
- python.org에서 Python 3.10~3.12 다운로드
- 설치 시 "Add Python to PATH" 체크 필수 (안 하면 명령어 인식 안 됨)
- 설치 확인:
python --version
# Python 3.12.x 가 나오면 성공
python -c "import platform; print(platform.architecture())"
# ('64bit', ...) 또는 ('32bit', ...) 확인
가상환경 — 프로젝트마다 독립 공간
가상환경은 프로젝트별로 라이브러리를 격리합니다. 봇마다 다른 라이브러리 버전을 쓸 수 있어 충돌을 막습니다.
# 프로젝트 폴더에서
python -m venv venv
# 활성화
venv\Scripts\activate # Windows
source venv/bin/activate # Mac/Linux
# 활성화되면 프롬프트 앞에 (venv) 표시됨
✅ 에디터는 VS Code 추천: 무료 + 파이썬 확장 + 터미널 내장. code.visualstudio.com에서 설치 후 Python 확장만 깔면 입문에 충분합니다.
Part 3 — 자동매매에 꼭 필요한 문법 6가지
이 6가지만 알면 봇 코드를 읽고 수정할 수 있습니다.
1. 변수와 자료형
price = 60000 # 정수 (int)
ratio = 0.5 # 실수 (float)
symbol = "BTCUSDT" # 문자열 (str)
is_holding = True # 불린 (bool)
2. 리스트와 딕셔너리
# 리스트 — 순서 있는 묶음
symbols = ["BTCUSDT", "ETHUSDT", "XRPUSDT"]
print(symbols[0]) # BTCUSDT
# 딕셔너리 — 키:값 쌍 (API 응답이 대부분 이 형태)
order = {"symbol": "BTCUSDT", "price": 60000, "qty": 0.01}
print(order["price"]) # 60000
3. 조건문 (if)
rsi = 28
if rsi < 30:
print("과매도 — 매수 신호")
elif rsi > 70:
print("과매수 — 매도 신호")
else:
print("관망")
4. 반복문 (for / while)
# for — 정해진 횟수
for symbol in symbols:
print(f"{symbol} 시세 확인 중")
# while — 조건이 참인 동안 (봇의 메인 루프)
import time
while True:
check_signal()
time.sleep(60) # 60초마다 반복
5. 함수
def calculate_profit(entry, current, qty):
"""수익 계산 함수"""
return (current - entry) * qty
profit = calculate_profit(60000, 61000, 0.01)
print(f"수익: {profit} USDT") # 수익: 10.0 USDT
6. 라이브러리 import·사용
import pandas as pd # 데이터 처리
import requests # API 호출
from binance.client import Client # 바이낸스
# 설치는 터미널에서
# pip install pandas requests python-binance
💡 f-string: f"수익: {profit} USDT"처럼 문자열 안에 변수를 넣는 문법. 로그·알림 메시지 만들 때 가장 많이 씁니다. 꼭 익혀두세요.
Part 4 — pandas로 시세 데이터 다루기
자동매매의 80%는 pandas로 시세를 다루는 일. 핵심 5가지만.
DataFrame — 표 형태 데이터
거래소에서 받은 캔들(OHLCV) 데이터는 보통 DataFrame(엑셀 표 같은 구조)으로 다룹니다.
import pandas as pd
# 예시 캔들 데이터
df = pd.DataFrame({
"close": [60000, 60500, 61000, 60800, 61200],
"volume": [100, 120, 90, 110, 130]
})
print(df.tail(3)) # 마지막 3개 행
이동평균 — 한 줄로
# 3봉 이동평균
df["ma3"] = df["close"].rolling(3).mean()
print(df)
# close volume ma3
# 0 60000 100 NaN
# 1 60500 120 NaN
# 2 61000 90 60500.0
# 3 60800 110 60766.7
# 4 61200 130 61000.0
핵심 pandas 동작 5가지
| 동작 | 코드 | 용도 |
|---|---|---|
| 이동평균 | df["close"].rolling(20).mean() | 이동평균 전략 |
| 변화율 | df["close"].pct_change() | 수익률 계산 |
| 최근 값 | df.iloc[-1] | 현재 봉 |
| 지수이동평균 | df["close"].ewm(span=9).mean() | EMA 전략 |
| 표준편차 | df["close"].rolling(20).std() | 볼린저 밴드 |
이 5가지로 거의 모든 기술적 지표를 만들 수 있습니다. 30개 전략의 지표 계산도 모두 이 패턴입니다: → 자동매매 전략 30가지 완전 정리
Part 5 — 필수 라이브러리 지도
무엇을 언제 설치하는지 한눈에.
| 라이브러리 | 용도 | 설치 |
|---|---|---|
| pandas | 데이터·지표 처리 (필수) | pip install pandas |
| requests | API 직접 호출 | pip install requests |
| python-dotenv | API 키 안전 관리 | pip install python-dotenv |
| python-binance | 바이낸스 | pip install python-binance |
| pyupbit | 업비트 | pip install pyupbit |
| python-bithumb | 빗썸 | pip install python-bithumb |
| ccxt | 100+ 거래소 통합 | pip install ccxt |
| pykrx | 한국 주식 데이터 | pip install pykrx |
| backtrader / vectorbt | 백테스트 | pip install backtrader |
⚠️ API 키는 절대 코드에 직접 쓰지 마세요. .env 파일에 저장하고 python-dotenv로 불러옵니다. 코드에 키를 적으면 깃허브에 올릴 때 유출되어 자산이 위험합니다. 보안은 → 바이낸스 API 발급 완벽 가이드 참고.
Part 6 — API로 첫 시세 받아오기
첫 성취 경험. 코드 5줄로 비트코인 현재가 출력하기.
업비트 — 가장 간단
# pip install pyupbit
import pyupbit
price = pyupbit.get_current_price("KRW-BTC")
print(f"비트코인 현재가: {price:,}원")
# 비트코인 현재가: 85,230,000원
바이낸스 — 키 없이 시세만
# pip install python-binance
from binance.client import Client
client = Client() # 시세 조회는 키 없이도 가능
ticker = client.get_symbol_ticker(symbol="BTCUSDT")
print(f"BTC: {ticker['price']} USDT")
한국 주식 — pykrx
# pip install pykrx
from pykrx import stock
df = stock.get_market_ohlcv("20260101", "20260611", "005930")
print(df.tail()) # 삼성전자 일봉
✅ 여기까지 됐다면 절반은 온 겁니다: 시세를 받아오는 것이 자동매매의 시작입니다. 이제 이 시세에 지표를 계산하고(Part 4), 조건을 걸면(Part 3) 매매 신호가 됩니다.
Part 7 — 첫 봇 실행 (10줄 골격)
시세 받기 + 신호 판단 + 반복. 봇의 본질은 이게 전부입니다.
import pyupbit
import time
def get_signal():
"""5일 이동평균 위면 매수 신호"""
df = pyupbit.get_ohlcv("KRW-BTC", interval="day", count=10)
ma5 = df["close"].rolling(5).mean().iloc[-1]
current = pyupbit.get_current_price("KRW-BTC")
return "BUY" if current > ma5 else "WAIT"
# 봇 메인 루프
while True:
signal = get_signal()
print(f"{time.strftime('%H:%M:%S')} 신호: {signal}")
time.sleep(60) # 1분마다 확인
이 10줄이 "자동매매 봇"의 뼈대 전부입니다. (1) 시세를 받아 (2) 지표를 계산하고 (3) 조건으로 신호를 만들고 (4) 반복합니다. 여기에 실제 매수·매도 주문과 안전장치를 더하면 완성된 봇이 됩니다.
💡 다음은 실거래: 위 코드는 신호만 출력합니다. 실제 매수·매도 주문, 손절·익절, 페이퍼 트레이딩까지 포함한 완성형 봇은 거래소별 30분 가이드에 풀코드로 있습니다. 본인이 쓸 거래소 가이드로 바로 이어가세요.
Part 8 — 학습 로드맵 + 다음 단계
0에서 운영 가능한 봇까지, 현실적인 1~2개월 로드맵.
거래소별 다음 가이드 (Part 5 이후)
- → 바이낸스 자동매매 봇 30분 만들기 (EMA + RSI)
- → 업비트 자동매매 봇 30분 만들기 (변동성 돌파)
- → 빗썸 자동매매 봇 30분 만들기 (볼린저 + RSI)
- → KIS API 발급부터 첫 주문까지 30분
그 다음 깊이 있는 학습
자주 묻는 질문
Q. 코딩을 전혀 몰라도 가능한가요?
가능합니다. 자동매매에 필요한 파이썬은 전체의 일부(변수·함수·조건·반복·딕셔너리·라이브러리)뿐. 매일 1~2시간 1~2개월이면 첫 봇 수준.
Q. 무엇부터 시작하나요?
Python 설치 → 가상환경 → 문법 6가지 → pandas → API 시세 받기 → 신호 만들기 → 페이퍼 → 실거래 순서.
Q. 32bit vs 64bit?
대부분 64bit. 키움 OpenAPI+만 32bit 필수.
Q. 어떤 라이브러리가 필요한가요?
기본 pandas·requests·python-dotenv. 거래소별 python-binance/pyupbit/python-bithumb/ccxt. 백테스트 backtrader/vectorbt. 한국주식 pykrx.
Q. 학습 기간은?
복붙 작동 1주, 이해·수정 1~2개월, 본인 전략 설계 3~6개월. 코딩보다 전략·리스크 학습에 시간 더 듦.
Q. 직접 vs 외주?
학습 목적·시간 여유 → 직접. 본업 바쁘고 전략 명확 → 외주. 알고랩은 명세서 기반으로 코딩 없이도 제작 가능.
마무리
파이썬 자동매매는 "거대한 언어를 다 배우는 것"이 아니라 "필요한 20%를 빠르게 익히고 봇을 만들며 배우는 것"입니다. 이 글의 문법 6가지 + pandas 5가지 + 첫 봇 10줄이면 시작에 충분합니다. 나머지는 봇을 만들면서 필요할 때 배우면 됩니다.
다만 한 가지 — "코딩"과 "수익 나는 전략"은 별개입니다. 봇을 만드는 것은 1~2개월이면 되지만, 시장에서 통하는 전략을 찾는 것은 그보다 훨씬 오래 걸립니다. 그래서 백테스트·리스크 관리·심리까지 함께 배우는 것이 진짜 자동매매 입문입니다.
배울 시간이 없다면
파이썬 학습 2~6개월이 부담스럽고 전략은 이미 명확하다면, 알고랩이 명세서 기반으로 본인 전략을 봇으로 만들어드립니다. 코딩 지식 없이 시작 가능, 코드 전체 전달 + 30일 무료 AS.
24시간 빠른 답변 가능합니다.