시스템 트레이딩/엑셀 코인 트레이더 1호
엑셀 + 파이썬 코인 트레이더 1.1편 (Console 로그)
제이브레인
2025. 6. 27. 21:25
📖 "말만 하지 말고 코인 트레이딩 해봅시다"
어느 날, 평범한 직장인 '엑셀'은 매일 시세만 들여다보며 이렇게 중얼거렸다.
“왜 내가 사면 떨어지고, 팔면 오르는 거지…?”
그날도 출근길에 코인 차트를 보던 엑셀은 문득 이런 생각을 하게 된다.
“내가 사는 가격, 파는 가격을 엑셀에 적어두면, 파이썬이 대신 사고팔아주면 안 되나?”
엑셀은 곧장 집으로 달려가 노트북을 켰다. 그리고 이렇게 외쳤다.
“그래, 자동 매매를 만드는 거야! 내가 주인공인 시스템 트레이딩의 시작이야!”
🧱 Step 1. 엑셀로 트레이딩 전략 정리
엑셀 파일 이름: coin_trading.xlsx
코인명매수가매도가
BTC | 70000000 | 73000000 |
ETH | 4000000 | 4200000 |
💡 엑셀에 사고 싶은 가격(매수가)와 팔고 싶은 가격(매도가)을 적기만 하면 된다!
🔌 Step 2. 업비트 API 연동
업비트는 모의투자를 공식적으로 제공하지 않지만, 실제 API 키로 소액으로 테스트하거나 백테스트로 전략을 시뮬레이션할 수 있습니다.
먼저 pyupbit 설치:
pip install pyupbit openpyxl
🤖 Step 3. 파이썬 자동 매매 코드
import pyupbit
import time
import pandas as pd
# 업비트 API 키 입력
access_key = "YOUR_ACCESS_KEY"
secret_key = "YOUR_SECRET_KEY"
upbit = pyupbit.Upbit(access_key, secret_key)
# 엑셀에서 매매 전략 불러오기
df = pd.read_excel("coin_trading.xlsx")
def get_current_price(ticker):
try:
return pyupbit.get_current_price(ticker)
except Exception as e:
print(f"가격 조회 실패: {e}")
return None
for index, row in df.iterrows():
coin_name = row['코인명']
buy_price = row['매수가']
sell_price = row['매도가']
ticker = f"KRW-{coin_name}"
current_price = get_current_price(ticker)
if current_price is None:
continue
print(f"[{coin_name}] 현재가: {current_price}, 목표 매수가: {buy_price}, 목표 매도가: {sell_price}")
# 매수 조건
if current_price <= buy_price:
print(f"📥 {coin_name} 매수 시도 중...")
try:
krw_balance = upbit.get_balance("KRW")
if krw_balance >= 5000:
order = upbit.buy_market_order(ticker, 5000) # 5000원 매수
print(f"✅ 매수 완료: {order}")
else:
print("❌ 잔고 부족")
except Exception as e:
print(f"매수 실패: {e}")
# 매도 조건
elif current_price >= sell_price:
print(f"📤 {coin_name} 매도 시도 중...")
try:
coin_balance = upbit.get_balance(ticker)
if coin_balance and coin_balance > 0:
order = upbit.sell_market_order(ticker, coin_balance)
print(f"✅ 매도 완료: {order}")
else:
print("❌ 보유 수량 없음")
except Exception as e:
print(f"매도 실패: {e}")
time.sleep(1) # 너무 자주 호출하면 제한 걸림
🛡️ 안전을 위한 팁
- ✅ 실 계정 전에 백테스트 필수!
- ✅ 금액 제한 (5000원, coin_balance) 등 실수 방지 코드 필수!
- ✅ 반복 실행 시 while True: 루프와 스케줄러로 자동화 가능
🎯 결론: 당신도 엑셀이 될 수 있다
이제 당신은 ‘차트를 바라보며 한숨 쉬던 엑셀’이 아닌,
**“엑셀에 가격만 적어도 자동으로 움직이는 트레이딩 시스템의 주인공”**입니다.
🤩 다음 단계 아이디어
- 실시간 감시 GUI (PyQt 연동)
- 전략 다양화 (틱 단위 분할 매수, 이동평균 돌파 등)
- 백테스트 시스템 결합
- 로그 기록 자동 저장