🌍 영웅문4 OpenAPI + Python 완전 정복 - 8단계: 업비트 & 나스닥 자동매매 확장

반응형

OpenAPI + Python 완전 정복 - 8단계: 업비트 & 나스닥 자동매매 확장

✅ 8단계 개요: 한국 시장을 넘어 글로벌 자동매매로

기존 키움 OpenAPI는 한국 주식만 지원
✅ 업비트: 24시간 거래 가능한 암호화폐 자동매매
✅ 나스닥: 해외 주식 전략 연동 및 확장 가능 (Yahoo Finance, Alpaca API 등)


🪙 STEP 1. 업비트 API 자동매매 구조

🔹 라이브러리 설치 (다운로드)

bash

pip install pyupbit

🔹 실시간 시세 조회 + 주문 예제

python

import pyupbit

price = pyupbit.get_current_price("KRW-BTC")
print("현재 BTC 가격:", price)

balance = pyupbit.get_balances()
print("보유 자산:", balance)

📦 업비트 자동매매 함수 예시

python

import pyupbit

access = "UPBIT_ACCESS_KEY"
secret = "UPBIT_SECRET_KEY"
upbit = pyupbit.Upbit(access, secret)

def buy_crypto(ticker, amount_krw=10000):
    upbit.buy_market_order(ticker, amount_krw)
    print(f"🟢 {ticker} 매수 실행")

def sell_crypto(ticker):
    volume = upbit.get_balance(ticker.split("-")[1])
    upbit.sell_market_order(ticker, volume)
    print(f"🔴 {ticker} 전량 매도")

📈 STEP 2. 나스닥 자동매매 (Alpaca or Yahoo Finance 기반)

🔹 전략 분석용 차트 데이터 수집 (yfinance)

bash

pip install yfinance
python

import yfinance as yf

df = yf.download("AAPL", start="2023-01-01", end="2024-01-01")
print(df.tail())

🔹 전략 백테스트 동일 구조 적용 가능 (MA, RSI 등)

python

df['ma20'] = df['Close'].rolling(20).mean()
df['signal'] = (df['Close'] > df['ma20']).astype(int)

📷 나스닥 차트 시각화 예시

python

import matplotlib.pyplot as plt
plt.plot(df['Close'], label='Close')
plt.plot(df['ma20'], label='MA20')
plt.legend()
plt.grid()
plt.show()

🔁 STEP 3. 전략 공통화 (업비트 + 키움 + 나스닥 통합 구조)

python

def run_strategy(asset_type, code, strategy_name, start_date):
    if asset_type == "kr_stock":
        return run_kiwoom_strategy(code, strategy_name, start_date)
    elif asset_type == "crypto":
        return run_upbit_strategy(code, strategy_name, start_date)
    elif asset_type == "us_stock":
        return run_us_strategy(code, strategy_name, start_date)

📌 UI에서 전략 선택할 때 asset_type까지 함께 선택 가능하도록 구성


🌐 STEP 4. 글로벌 전략 자동 스케줄링

🔹 하루 3회 실행 예시 (암호화폐는 새벽/오전/밤)

python

# schedule_upbit.py
import schedule
import time
from run_manual import run_strategy

schedule.every().day.at("01:00").do(run_strategy, "crypto", "KRW-BTC", "MA5", "2024-01-01")
schedule.every().day.at("09:00").do(run_strategy, "crypto", "KRW-ETH", "RSI30", "2024-01-01")
schedule.every().day.at("21:00").do(run_strategy, "crypto", "KRW-XRP", "BB", "2024-01-01")

while True:
    schedule.run_pending()
    time.sleep(1)

📦 STEP 5. 전략 결과 Discord 알림 그대로 연동 가능

python

send_discord_alert(f"✅ [UPBIT] BTC 전략 실행 완료 | 수익률: {cum_return}%")

✅ 전체 구조 요약 (멀티 자산 자동매매)

📷 글로벌 자동매매 확장 구조

자산유형 API전략 적용방식
한국 주식 키움 OpenAPI 실시간 조건검색 + 주문
암호화폐 Upbit API 시세조회 + 시장가 주문
미국 주식 yfinance or Alpaca 백테스트 + 시그널 추출
반응형