반응형
✅ 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 | 백테스트 + 시그널 추출 |
반응형