주식 자동매매 봇의 기본 구조

🌐 English

주식 자동매매 봇은 화려한 알고리즘보다 탄탄한 파이프라인이 먼저입니다. 대부분의 봇은 아래 4단계로 나뉩니다.

1. 데이터 수집 (Data)

시세, 호가, 체결 데이터를 실시간 또는 주기적으로 가져옵니다.

import requests

def fetch_price(symbol: str) -> float:

    resp = requests.get(f"https://api.example.com/price/{symbol}", timeout=3)

    resp.raise_for_status()

    return resp.json()["last"]

2. 신호 생성 (Signal)

수집한 데이터로 매수/매도 신호를 계산합니다. 간단한 이동평균 교차 예시입니다.

def ma_cross_signal(prices: list[float], short: int, long: int) -> str:

    ma_short = sum(prices[-short:]) / short

    ma_long = sum(prices[-long:]) / long

    if ma_short > ma_long:

        return "BUY"

    if ma_short < ma_long:

        return "SELL"

    return "HOLD"

3. 주문 실행 (Execution)

신호에 따라 실제 주문을 냅니다. 여기서 멱등성(idempotency)재시도 처리가 중요합니다.

4. 리스크 관리 (Risk)

가장 중요한 단계입니다. 손절 라인, 포지션 크기, 일일 최대 손실 한도를 강제합니다.

백테스트에서 좋아 보여도, 리스크 관리 없는 봇은 계좌를 비우는 가장 빠른 방법입니다.

다음 글에서는 백테스팅 프레임워크 설계를 다루겠습니다.

댓글

이 블로그의 인기 게시물

한국투자증권 KIS API로 실시간 시세 받기 (WebSocket 실전)

파이썬으로 업비트 API 연동하기 — 시세 조회부터 주문까지 기초

Go로 자동매매 신호봇 프레임워크 설계하기