Skip to main content

투자 전략 파이프라인 설계하기

Views 21약 7분생성형 AI 활용
Summary

전략은 코드 한 조각이 아니라 흐름이다

지금까지 우리는 여러 조각을 만들었다. 주가 데이터를 가져왔고, 수익률과 변동성을 계산했다. 이동평균선 전략, 모멘텀 전략, 가치 전략을 백테스트했다. 머신러닝 모델도 만들어보았고, AI로 투자 아이디어와 리서치 메모를 생성하는 방법도 다루었다.

하지만 실제 투자 연구에서 더 중요한 것은 이 조각들을 하나의 흐름으로 연결하는 일이다.

많은 초보자가 처음에는 노트북 파일을 여러 개 만든다. test.ipynb, momentum_final.ipynb, backtest_new2.ipynb 같은 파일이 쌓인다. 어느 파일이 최신인지 알기 어렵고, 어떤 데이터를 썼는지도 불분명해진다. 며칠 뒤 다시 실행하면 결과가 달라지기도 한다.

퀀트 투자는 멋진 모델 하나로 끝나지 않는다. 반복 가능한 절차가 있어야 한다. 같은 데이터와 같은 규칙을 넣으면 같은 결과가 나와야 한다. 전략을 수정했을 때 무엇이 바뀌었는지도 추적할 수 있어야 한다.

이 장의 목표는 흩어진 코드와 노트북을 하나의 투자 전략 파이프라인으로 묶는 것이다. 파이프라인이란 입력이 들어오면 정해진 단계를 거쳐 출력이 나오는 구조다. 투자 시스템에서는 보통 다음 흐름을 따른다.

데이터 수집
→ 데이터 정제
→ 지표 계산
→ 종목 선정
→ 포트폴리오 구성
→ 백테스트
→ 리포트 생성
→ 모니터링

이 흐름을 만들면 투자 아이디어를 더 빠르고 안전하게 실험할 수 있다.

투자 전략 파이프라인 설계하기AI 생성 이미지

전체 구조 먼저 그리기

투자 전략 파이프라인을 만들 때 처음부터 코드를 쓰면 길을 잃기 쉽다. 먼저 각 단계의 역할을 문장으로 정의해야 한다.

예를 들어 모멘텀 전략을 만든다고 해보자.

  • 데이터 수집: 관심 종목의 일별 가격 데이터를 가져온다.

  • 데이터 정제: 결측치, 중복 날짜, 수정주가 여부를 확인한다.

  • 지표 계산: 최근 6개월 수익률, 변동성, 거래대금 등을 계산한다.

  • 종목 선정: 모멘텀 상위 10개 종목을 고른다.

  • 포트폴리오 구성: 동일비중으로 투자한다.

  • 백테스트: 매월 말 리밸런싱한다고 가정하고 성과를 계산한다.

  • 리포트 생성: 수익률, MDD, 샤프 비율, 보유 종목 변화를 정리한다.

  • 모니터링: 전략이 과거와 다르게 작동하는지 점검한다.

이렇게 쓰면 전략이 단순해 보인다. 하지만 이 단순함이 중요하다. 설명할 수 없는 전략은 검증하기도 어렵다. 파이프라인은 투자 아이디어를 코드 이전의 설계도로 바꾸는 과정이다.

프로젝트 폴더를 정리하는 법

재현 가능한 투자 연구를 하려면 폴더 구조가 필요하다. 모든 파일을 한 폴더에 넣으면 금방 복잡해진다. 다음과 같은 구조로 시작해보자.

ai_quant_lab/
    data/
        raw/
        processed/
    notebooks/
    src/
        data.py
        features.py
        strategy.py
        portfolio.py
        backtest.py
        report.py
    reports/
    prompts/
    config/
        universe.yaml
        strategy.yaml
    logs/

각 폴더의 역할은 분명해야 한다.

data/raw에는 외부에서 가져온 원본 데이터를 저장한다. 가능하면 손으로 수정하지 않는다. 원본은 나중에 문제가 생겼을 때 확인할 기준점이다.

data/processed에는 정제된 데이터를 저장한다. 날짜 형식을 맞추고, 결측치를 처리하고, 필요한 열만 남긴 데이터다.

notebooks에는 실험용 노트북을 둔다. 아이디어를 빠르게 확인하는 공간이다. 하지만 최종 전략 로직은 노트북 안에만 두지 않는 편이 좋다.

src에는 반복해서 사용할 코드를 넣는다. 데이터 수집 함수, 지표 계산 함수, 백테스트 함수처럼 재사용 가능한 코드를 모듈로 분리한다.

reports에는 백테스트 결과와 투자 메모를 저장한다.

prompts에는 AI에게 보낼 프롬프트 템플릿을 저장한다. 같은 질문을 반복할 수 있어야 답변 품질을 비교할 수 있다.

config에는 전략 설정을 둔다. 예를 들어 종목 목록, 리밸런싱 주기, 거래비용, 사용 지표 같은 값이다. 이런 값을 코드 안에 직접 박아두면 전략을 바꿀 때 실수하기 쉽다.

단계마다 입력과 출력을 정한다

파이프라인을 안정적으로 만들려면 각 단계의 입력과 출력을 정해야 한다.

데이터 수집 단계의 입력은 종목 코드와 기간이다. 출력은 원본 가격 데이터다.

입력: ticker list, start_date, end_date
출력: data/raw/prices_2026-05-20.csv

데이터 정제 단계의 입력은 원본 가격 데이터다. 출력은 분석에 바로 쓸 수 있는 가격 테이블이다.

입력: data/raw/prices.csv
출력: data/processed/prices_clean.csv

지표 계산 단계의 입력은 정제된 가격 데이터와 재무 데이터다. 출력은 종목별 점수 테이블이다.

입력: prices_clean.csv, fundamentals.csv
출력: features/factor_scores.csv

종목 선정 단계의 입력은 지표 테이블이다. 출력은 리밸런싱 날짜별 매수 후보 목록이다.

입력: factor_scores.csv
출력: signals/selected_stocks.csv

포트폴리오 구성 단계의 입력은 매수 후보 목록이다. 출력은 날짜별 종목 비중이다.

입력: selected_stocks.csv
출력: portfolio/weights.csv

백테스트 단계의 입력은 종목 비중과 가격 데이터다. 출력은 포트폴리오 수익률과 성과 지표다.

입력: weights.csv, prices_clean.csv
출력: reports/backtest_result.csv

리포트 생성 단계의 입력은 백테스트 결과와 최근 보유 종목이다. 출력은 사람이 읽을 수 있는 보고서다.

입력: backtest_result.csv, current_holdings.csv
출력: reports/monthly_report.md

이렇게 입력과 출력을 정하면 좋은 점이 있다. 어느 단계에서 오류가 났는지 찾기 쉽다. 전략을 바꿔도 전체 흐름을 다시 만들 필요가 없다. 특정 단계만 교체하면 된다.

노트북에서 함수로 이동하기

초기 실험은 노트북이 편하다. 차트를 바로 보고, 데이터프레임을 확인하고, 코드를 조금씩 고칠 수 있다. 하지만 전략이 반복 실행되어야 한다면 함수로 옮겨야 한다.

예를 들어 노트북에 이런 코드가 있다고 하자.

df["return_6m"] = df["close"].pct_change(126)
df["volatility"] = df["daily_return"].rolling(126).std()
df["score"] = df["return_6m"].rank(ascending=False)

처음에는 괜찮다. 하지만 다른 전략에서도 6개월 수익률을 계산한다면 같은 코드를 계속 복사하게 된다. 이때 함수로 바꾼다.

def add_momentum_features(df, window=126):
    df = df.copy()
    df["return_6m"] = df["close"].pct_change(window)
    df["volatility"] = df["daily_return"].rolling(window).std()
    return df

함수로 만들면 장점이 생긴다. 같은 계산을 여러 곳에서 재사용할 수 있다. 계산 방식이 바뀌면 한 곳만 수정하면 된다. AI에게 코드 검토를 요청할 때도 훨씬 명확하게 설명할 수 있다.

좋은 파이프라인은 노트북을 버리지 않는다. 노트북은 실험실이고, 함수와 모듈은 생산 라인이다. 아이디어는 노트북에서 빠르게 확인하고, 반복할 가치가 있는 코드는 src 폴더로 옮긴다.

자동화할 수 있는 일과 사람이 해야 할 일

AI 퀀트 투자 시스템을 만들 때 모든 것을 자동화하려는 유혹이 생긴다. 하지만 투자에서 자동화는 편리함과 위험을 동시에 가져온다.

자동화하기 좋은 작업은 규칙이 분명한 일이다.

  • 매일 가격 데이터 가져오기

  • 결측치와 중복값 확인하기

  • 수익률, 변동성, MDD 계산하기

  • 정해진 기준으로 종목 랭킹 만들기

  • 백테스트 결과표 생성하기

  • 뉴스 제목을 모아 요약하기

  • 월간 리포트 초안 만들기

이런 작업은 사람이 반복하면 지치고 실수하기 쉽다. 컴퓨터와 AI가 도와주기 좋은 영역이다.

반대로 사람이 반드시 판단해야 하는 영역도 있다.

  • 이 전략을 실제 돈으로 운용할 것인가

  • 최근 시장 환경이 과거 백테스트와 얼마나 다른가

  • 데이터가 왜곡되었을 가능성은 없는가

  • 특정 종목의 유동성이 충분한가

  • 전략의 손실 구간을 감당할 수 있는가

  • AI가 만든 요약에 중요한 오류가 없는가

  • 규제, 세금, 거래 가능성까지 고려했는가

특히 AI가 만든 결론은 반드시 검증해야 한다. AI는 빠르게 요약하고 아이디어를 제안할 수 있지만, 투자 책임을 대신 질 수는 없다. 이 책의 관점은 일관된다. AI는 예언자가 아니라 연구 보조원이다.

설정 파일로 전략을 관리하기

전략에서 자주 바뀌는 값은 코드와 분리하는 편이 좋다. 예를 들어 모멘텀 기간, 보유 종목 수, 리밸런싱 주기, 거래비용은 실험할 때 자주 바뀐다.

이런 값이 코드 곳곳에 흩어져 있으면 실수가 생긴다. 한 곳은 6개월 모멘텀인데 다른 곳은 12개월 모멘텀으로 남아 있을 수 있다.

간단한 설정 파일을 만들면 이런 문제를 줄일 수 있다.

strategy_name: momentum_top10
momentum_window: 126
rebalance: monthly
top_n: 10
transaction_cost: 0.001
benchmark: SPY
start_date: 2015-01-01
end_date: 2026-05-20

이 설정 파일은 전략의 실험 조건을 기록하는 역할도 한다. 나중에 리포트를 볼 때 어떤 조건으로 나온 결과인지 바로 확인할 수 있다.

좋은 백테스트 결과보다 더 중요한 것은 설명 가능한 백테스트 결과다. 언제, 어떤 데이터로, 어떤 규칙을 적용했는지 남겨야 한다.

리포트는 결과표가 아니라 판단 도구다

백테스트가 끝나면 숫자가 나온다. 누적 수익률, 연평균 수익률, 변동성, MDD, 샤프 비율 같은 값이다. 하지만 숫자만 저장하면 다음 판단으로 이어지기 어렵다.

리포트에는 최소한 다음 항목이 들어가면 좋다.

  • 전략 이름과 실행 날짜

  • 사용 데이터 기간

  • 종목 유니버스

  • 핵심 규칙

  • 거래비용 가정

  • 벤치마크

  • 누적 수익률과 연평균 수익률

  • 변동성, MDD, 샤프 비율

  • 연도별 수익률

  • 최악의 손실 구간

  • 최근 보유 종목과 비중

  • 전략 해석과 주의점

AI는 이 리포트 작성에 도움을 줄 수 있다. 예를 들어 백테스트 결과표를 넣고 다음과 같이 요청할 수 있다.

다음 백테스트 결과를 투자 검토 메모 형식으로 요약해줘.
성과가 좋은 점, 위험한 점, 추가로 확인해야 할 점을 나눠서 작성해줘.
단, 매수 추천처럼 단정적으로 쓰지 말고 검증 과제로 정리해줘.

중요한 것은 리포트가 투자 결정을 대신하지 않는다는 점이다. 리포트는 판단을 돕는 도구다. 좋은 리포트는 전략의 장점뿐 아니라 약점도 드러낸다.

모니터링은 전략의 건강검진이다

전략은 한 번 만들고 끝나는 것이 아니다. 시장 환경은 변한다. 거래비용도 바뀌고, 종목 구성도 바뀐다. 과거에 잘 작동하던 규칙이 어느 순간 힘을 잃을 수 있다.

그래서 파이프라인 마지막에는 모니터링이 있어야 한다.

모니터링에서 확인할 항목은 다음과 같다.

  • 최근 수익률이 과거 평균과 크게 다른가

  • MDD가 과거 백테스트에서 예상한 범위를 넘어섰는가

  • 특정 종목이나 섹터에 비중이 과도하게 쏠렸는가

  • 거래량이 부족한 종목이 포함되었는가

  • 리밸런싱 결과가 비정상적으로 자주 바뀌는가

  • 데이터 수집 오류나 누락이 있었는가

  • 벤치마크 대비 성과가 장기간 악화되었는가

모니터링은 전략을 포기하라는 신호만 찾는 과정이 아니다. 전략이 어떤 환경에서 강하고 어떤 환경에서 약한지 배우는 과정이다.

예를 들어 모멘텀 전략은 강한 추세장에서는 잘 작동할 수 있지만, 급격한 반전장에서는 손실이 커질 수 있다. 가치 전략은 장기간 소외될 수 있지만 특정 국면에서는 강하게 회복할 수 있다. 이런 특성을 기록해야 전략을 더 현실적으로 이해할 수 있다.

작은 파이프라인부터 시작하라

처음부터 완벽한 시스템을 만들 필요는 없다. 오히려 너무 큰 시스템은 완성되기 전에 지친다. 시작은 작아야 한다.

가장 작은 파이프라인은 다음 정도면 충분하다.

1. 관심 종목 20개 가격 데이터 수집
2. 최근 6개월 수익률 계산
3. 상위 5개 종목 선택
4. 동일비중 포트폴리오 구성
5. 월별 리밸런싱 백테스트
6. 성과 요약 리포트 생성

이 정도만 자동화해도 큰 변화가 생긴다. 더 이상 감으로 종목을 고르지 않는다. 어떤 기준으로 골랐는지 기록된다. 과거에 그 기준이 어떻게 작동했는지도 확인할 수 있다.

이후에는 하나씩 확장하면 된다. 거래비용을 추가하고, 변동성 필터를 넣고, 가치 지표를 결합하고, AI 리서치 요약을 붙이면 된다. 마지막에는 대시보드로 시각화할 수 있다.

파이프라인의 핵심은 반복 가능성이다

투자 전략 파이프라인의 목적은 복잡한 시스템을 자랑하는 것이 아니다. 같은 질문을 더 정확하게 반복하기 위한 것이다.

"이 전략은 시장보다 나았는가?"

"성과는 특정 기간에만 집중되었는가?"

"거래비용을 반영해도 남는 것이 있는가?"

"최근에도 여전히 작동하고 있는가?"

"AI가 제안한 아이디어를 데이터로 검증했는가?"

이 질문에 답할 수 있다면 파이프라인은 제 역할을 하고 있다.

앞으로 만들 AI Quant Lab도 이 구조 위에 세워진다. 데이터는 정해진 위치에 저장되고, 전략은 설정 파일로 관리되며, 백테스트는 반복 실행되고, 리포트는 사람이 읽을 수 있는 형태로 만들어진다.

좋은 투자 시스템은 사람을 배제하지 않는다. 오히려 사람이 더 중요한 판단에 집중하게 만든다. 데이터 수집과 계산은 자동화하고, 가정과 리스크와 실행 여부는 사람이 판단한다.

이것이 AI 퀀트 투자 시스템의 기본 원칙이다.

주식은 예언하는 것이 아니라, 가설을 세우고 검증하는 것이다. 파이프라인은 그 검증을 반복 가능하게 만드는 장치다.

책 목록

처음 만나는 AI 퀀트 투자: 파이썬과 AI로 투자 아이디어를 검증하는 법

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기