본문 바로가기
파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기/chapter4 백테스팅 알고리즘 트레이딩 정복하기 전략

chapter4 알고리즘 트레이딩 정복하기 매매시그널과 백테스킹으로 실습예제

by ohsungjun 2026. 1. 27.

1️⃣ 매매 시그널이란?

매매 시그널
👉 알고리즘이 계산해서 만들어낸 매수·매도 타이밍의 명확한 규칙이야.

즉,

  • 언제 살지 (매수 시점)
  • 언제 팔지 (매도 시점)
  • 몇 주(주식 수)를 살지
  • 거래정지·거래가능 여부는 어떤지

이런 걸 사람이 아니라 코드가 판단해서 “지금 사라 / 지금 팔아라”라고 알려주는 신호야.

📌 보통 시각화하면

  • 🔴 빨간 화살표 = 매수
  • 🔵 파란 화살표 = 매도

2️⃣ 백테스팅과의 관계

백테스팅 = 매매 시그널을 과거 데이터에 그대로 적용해본 시뮬레이션

즉,

  1. 매매 시그널 생성
  2. 시그널대로 실제로 매수·매도했다고 가정
  3. 각 시점별 수익률을 계산
  4. 누적 수익률 그래프를 그림

👉 그래서

시그널이 없으면 백테스팅도 존재할 수 없음


3️⃣ 매매 시그널 생성 기초 실습 (전략 설명)

사용 데이터

  • 삼성전자 (일봉 데이터, 일본 거래소든 어디든 구조만 같으면 OK)

전략 규칙 (아주 단순한 예제)

매수 조건

  • 오늘 종가가
  • 최근 5일 종가 중 가장 낮으면
  • 👉 오늘 종가에 매수

매도 조건

  • 매수한 날로부터 5거래일 후
  • 👉 종가에 전량 매도

4️⃣ 매수 / 매도 날짜, 가격 계산 흐름

핵심 아이디어

  1. 종가 기준으로 5일 최저가 여부 판단
  2. 조건 만족 시 → 매수 시그널 = 1
  3. 매수 날짜 + 5일 → 매도 날짜 자동 생성
  4. 각 날짜의 종가를 매수·매도가로 기록

 

매수 시그널

# 종가가 5일 최저가이고, 20일 이동평균보다 낮은 시점만 뽑기buy = d[(d['close'] == d['5d_min']) & (d['close'] < d['20d_mean'])]# 주가 그래프에 매수 타점 표시
지난300번
# 최근 300일만 뽑아 매수 타점 표시# 종가가 5일 최저가이고, 20일 이동평균보다 낮은 시점만 뽑기