투자 성과를 높이는 데이터 수집 전략 — 신뢰도 있는 데이터로 기대값 올리기
“지표를 이렇게 바꿨더니 백테스트 성과가 확 좋아졌어요.”
그런데 실거래에선 숫자가 달랐습니다. 문제는 전략이 아니라 데이터였죠. 그때 깨달았습니다. 성과를 좌우하는 건 ‘얼마나 많이 모았나’가 아니라 ‘얼마나 정확히 모았나’라는 사실을요.
이번 글에선 제가 현장에서 부딪히며 정리한 데이터 수집 전략을 공유합니다. 원칙→소스 지도→품질 관리→파이프라인→대시보드까지, 실전에서 바로 쓰는 체크리스트와 템플릿을 드릴게요.
왜 수집 전략이 성과를 바꾸는가
- 시점 오류 하나면 백테스트는 과장이 되고, 실거래는 손실이 됩니다.
- 서바이버십 바이어스(퇴출 종목 제외)는 ‘좋아 보이는’ 전략을 만들어냅니다.
- 정의 불일치—예: ‘거래대금’ 단위가 다르면 필터가 엇나갑니다.
즉, 데이터는 전략의 연료이자 브레이크입니다. 품질이 낮으면 속도를 내도 더 멀리 가지 못합니다.
수집 원칙 5가지(핵심)
- 목표 우선: “무엇을 예측/판단할 건가?”를 먼저 정의합니다(모멘텀/가치/변동성/이벤트 등).
- 지표 사양서: 지표마다 정의·단위·윈도우·리샘플링 규칙을 문서로 고정.
- 한 소스=한 진실(SSOT): 동일 지표는 가능한 한 하나의 공식 소스에서만 공급.
- 변환은 코드로: 수동 엑셀 편집 대신 재현 가능한 스크립트로 ETL.
- 로그와 버전: “언제/어디서/무엇을/얼마나”를 남기고 데이터셋에 버전 태그를 부여.
데이터 소스 지도(현실적 분류)
- 시세/체결: OHLCV, 틱/분/일. 거래소/브로커/데이터 벤더.
- 기초재무/밸류: 재무제표, 컨센서스, 배당·분할 이력.
- 뉴스/공시/캘린더: 실적 발표, 거시지표, 배당락/권리락.
- 대체데이터: 검색 트렌드, 웹 트래픽, 위성·물류, 소셜 신호(윤리·법적 이슈 확인).
- 개인 거래 로그: 브로커 체결 내역, 포지션, 수수료, 일변동 기록.
팁: 처음부터 모든 걸 모으지 마세요. 전략 가설에 꼭 필요한 3~5개 데이터로 MVP를 만든 뒤 확장하는 편이 빠릅니다.
품질 관리 체크리스트(필수 10)
- 결측치/비정상치(음수 거래대금 등) 탐지·처리 규칙이 있는가?
- 휴장·연휴·서머타임을 달력 테이블로 반영했는가?
- 분할/합병/배당 재조정(Adjusted) 로직을 문서화했는가?
- 서바이버십 바이어스 제거(상장폐지 포함) 여부를 명시했는가?
- 시점 일치(공시/실적의 게시 시각)를 보장했는가?
- 리샘플링 규칙(틱→1분→일)의 합계/평균/마감 처리 기준이 고정돼 있는가?
- 단위·통화·소수점 자리수 표준을 적용했는가?
- 수수료/슬리피지 기본값이 테스트에 반영되는가?
- 데이터셋에 버전(YYYYMMDD_vN)과 생성 스크립트 커밋 해시가 연결되는가?
- 무결성 지표(결측 비율, 최신 업데이트 시각)를 대시보드에 표시하는가?
파이프라인 설계(ETL/ELT)
복잡할 필요 없습니다. 중요한 건 재현성과 실패 시 복구입니다.
소스(API/CSV/Web) → 스테이징(raw) → 정제(clean) → 특성(feature) → 모델/리포트 스케줄: 평일 20:30 수집 → 20:40 정제 → 20:50 지표 계산 → 21:00 리밸런싱
- 파일명 규칙:
source_table_YYYYMMDD_HHMM_v1.csv
- 폴더 구조:
/raw /clean /feature /logs /archive
- 실패 대응: 재시도 3회, 실패 시 알림·롤백·스냅샷 유지
노코드/저코드 예시 2가지(빠른 시작)
- 알림→시트→리포트: 차트 알림(Webhook) → 스프레드시트 수집 → 대시보드(차트/테이블). 규칙 충족 종목만 자동 누적.
- 체결 CSV→저널 DB: 브로커 체결 CSV를 주 2회 업로드 → 자동 파싱(종목/수량/수수료/감정 태그) → 월간 PDF 리포트.
핵심은 사람 손을 타는 구간을 줄이고, 검증 가능한 로그를 남기는 것입니다.
백테스트를 위한 최소 수집 요건
- OHLCV(분/일) + 수수료·슬리피지 기본값
- 기업행동(분할/배당/합병) 조정 테이블
- 거래 가능성 제한(상·하한가, 유동성) 규칙
- 거래 캘린더(휴장/조기폐장/서머타임)
- 타임존 일관성(UTC↔현지) 변환 표준
기대값 대시보드(요약)
승률 / 손익비 / E(거래당 R) / MDD / 평균보유기간 / 거래빈도 최근 20거래일 이동평균으로 추세를 본다.
법적·윤리·보안 고려
- 약관/라이선스: 크롤링/재배포 제한, 상업적 이용 가능 여부 확인.
- 개인정보: 개인·고객 데이터는 최소 수집·암호화 저장·파기 정책 수립.
- 보안: API 키 보관, IP 허용목록, HTTPS·서명 검증, 감사 로그 유지.
운영 KPI — 수집 자체도 관리 대상
- 신선도(Recency): 각 테이블의 최신 업데이트 시각.
- 결측률: 컬럼별 결측 비율과 임계치 경보.
- 실패율: 잡(Job) 실패/재시도 횟수.
- 피처 누락률: 모델 입력 누락 비중.
전략 KPI가 좋아도, 수집 KPI가 붕괴하면 성과는 오래 가지 않습니다. 두 축을 함께 봐야 합니다.
마무리: 데이터는 ‘연료’이자 ‘브레이크’
좋은 전략은 나쁜 데이터와 타협하지 않습니다. 오늘은 지표 사양서 1페이지를 먼저 쓰고, 파일명/폴더 규칙부터 고정해 보세요. 작은 표준이 큰 손실을 막습니다.
※ 본 글은 교육용 정보이며, 특정 데이터/서비스를 권유하지 않습니다.
다음 글 예고
다음 글에서는 투자 기록을 체계적으로 관리하는 법을 다룹니다. 저널 항목, 태깅 규칙, 자동화된 월간 리포트, 리스크 대시보드까지 단계별로 정리해 드릴게요.
성과를 바꾸는 건 때로 전략이 아니라 기록의 품질입니다. 다음 글에선 실행을 지치지 않게 만드는 체계적 기록 방법을 안내합니다.
다음 글에서 다룰 것
- 저널 항목 설계: 진입/청산 사유, 감정, 계획 대비 실행, 실수/개선점
- 태깅 규칙: 전략·시그널·섹터·오류코드(체결지연·슬리피지 등)
- 자동 수집: 브로커 체결 CSV → 파싱 → DB/시트 누적
- 월간 리포트: 승률·손익비·E·MDD·보유기간·오류 빈도 요약
- 리스크 대시보드: 손실 한도 경보, 섹터 노출, 상관·변동성 추적
미리보기: 저널 템플릿(요약)
날짜 | 종목 | 전략/시그널 | 수량/가격 | 손절/익절 계획(R) | 실제 | 이탈 여부 감정 한 줄 | 실수 | 개선점 | 태그(섹터,오류코드,시장상태)
발행 알림을 원하시면 구독을 눌러 주세요.