Captain's Log
← Logbook
데이터 분석·파이프라인··Ongoing

한국 증시 이벤트 분석·예측 시스템 '증시 리서치'

'뉴스와 정책이 한국 증시를 얼마나 움직였는가'를 감이 아닌 숫자로 측정하는 시스템. KRX·야후·FRED·GDELT를 매일 수집하고, 출처를 검증한 이벤트 139건을 시장모델 기반 이벤트 스터디(AR/CAR + t검정)로 분석해 대시보드·현황판·주간/월간 리포트로 낸다. 다음날 방향 예측 65.2%(+9.1%p)를 만들되, 백테스트를 정밀화하니 초과수익이 사라지는 시장효율성까지 정직하게 실증했다. GitHub Actions로 매일 자동 실행되며 Vercel에 배포된다.

이벤트스터디데이터파이프라인증시분석예측자동화
한국 증시 이벤트 분석·예측 시스템 '증시 리서치'

Overview

개인 프로젝트 · 2026.07~ · 데이터 분석 · 파이프라인

"미국이 관세를 올려서 주가가 떨어졌다" 같은 말을 실제로 얼마나·며칠이나 움직였는지 숫자로 검증하는 한국 증시 분석·예측 시스템을 구축했다.

  • 수집 — KRX(지수·수급·업종), 야후파이낸스(해외지수·환율), FRED(금리·유가·달러), GDELT(뉴스 톤)를 매일 수집(시세·수급·매크로 23종, 2015~현재 약 2,800거래일)
  • 이벤트 DB — "어떤 날 어떤 사건이 있었나"를 전 건 출처 URL과 함께 11개 분류로 정리(139건). 실측 KOSPI와 대조해 반응 크기를 교차검증(예: 2026-06-23 폭락 −9.99%)
  • 이벤트 스터디 — 사건 전후로 주가가 평소 대비 얼마나 움직였는지 시장모델 AR/CAR + t검정으로 계산. "한국 증시는 전날 미국장을 따라간다"는 공통등락을 회귀로 제거하고 유의성까지 판정
  • 예측·백테스트 — 다음날 방향 예측 65.2%(베이스라인 +9.1%p, AUC 0.70) 를 만들되, 체결 모델을 정밀화하자 초과수익이 사라지는 시장효율성을 정직하게 실증
  • 전략 검증 — 이벤트 직후 초과수익 기회를 실매매 규칙으로 검증(반도체 로테이션·방산 통념·부동산 업종효과) — 되는 것과 안 되는 것을 판정과 함께 공개
  • 산출물 — 분석 대시보드(7화면)·M3 현황판·주간/월간/연간 리포트(전략 신호 포함)
  • 운영GitHub Actions 매일 자동 실행(평일 18:00 KST) + 로컬 보완(KRX 수급 18:30)의 하이브리드 구조·Vercel 배포
  • Skill: 데이터 수집·파이프라인 설계, 이벤트 스터디(계량 분석)·유의성 검정, 예측 모델·현실적 백테스트, 자동화(CI 스케줄)·클라우드 배포
  • Stack: Python·pandas·numpy·scipy·statsmodels·scikit-learn, KRX·yfinance·FRED·GDELT, Mermaid·Material Design 3, GitHub Actions·Vercel

Problem

"뉴스가 주가를 움직였다"는 말은 흔하지만, 얼마나·며칠이나 움직였는지는 대개 감으로만 이야기된다. 단순히 "사건 다음 날 올랐다"고 세면, 그날 시장 전체가 오른 것인지 그 사건 때문인지 구분할 수 없다. 나아가 "그럼 그 패턴으로 돈을 벌 수 있나"는 대개 비용을 뺀 백테스트로 좋은 숫자만 보여준다.

이벤트 스터디 · 시장모델 · 정직한 검증 — 시장 전체 흐름으로 설명되는 부분을 걷어내 사건이 만든 초과등락(AR/CAR) 만 남기고, 예측과 전략은 비용·우연·미래정보 누출까지 통제해 "실제로 되는가"를 판정한다.

Solution

  1. 원본 보존형 파이프라인 — 수집한 원본은 손대지 않고 저장(raw), 전처리는 다음 단계에서. 로직을 바꿔도 재수집 없이 재처리
  2. 이벤트 반영일 보정 — 장 마감 후·휴장일·미국 발표 사건은 다음 영업일에 반영되므로 시장 반영일을 보정해 앞뒤 창을 맞춘다(139건 중 절반가량 보정). 비상계엄은 보정 전 +1.9%(선포 전 낮의 무관한 상승) → 보정 후 −1.4%로 바로잡힘
  3. 시장모델 이벤트 스터디 — 개별 지수의 초과수익률을 시장모델(KOSPI∼전일 S&P500 회귀)로 추정, 사건 창(−5~+10일)의 AR을 누적(CAR)하고 t검정으로 유의성 판정. KOSDAQ은 나스닥 요인 제거, 업종 17종·섹터 대표 8종목은 "같은 날 시장 대비 초과반응"으로 확장
  4. 예측 모델 + 현실적 백테스트 — "당일 아침에 실제로 알 수 있는 정보만" 원칙의 피처 설계 + 워크포워드 검증. 백테스트에 편도 비용·룩어헤드 방지를 반영해 예측 정확도가 초과수익으로 이어지는지까지 검증
  5. 전략 자동 재검증 — 발견한 이벤트 패턴을 실매매 규칙(t+1 진입)으로 옮겨, 새 이벤트가 쌓일 때마다 통계를 자동 갱신하고 과열 필터·유의성 강등을 반영
  6. 자동화·게시 — 매일 수집→분석→대시보드→리포트를 GitHub Actions로 자동 실행, 결과를 저장소에 자동 커밋하고 Vercel이 재배포. 금요일에는 이벤트 후보를 출처 검증해 DB에 반영하는 검토 루프가 돈다. 주간/월간 리포트는 개인 사이트 Observatory에 자동 게시

Result

  • 시세·수급·매크로 23종을 매일 수집하고, 출처 검증된 이벤트 139건을 11개 분류로 구조화
  • 시장모델 기반 AR/CAR + t검정으로 "사건이 정말 가격을 움직였나"를 정량·유의성으로 판정 — 글로벌 위기 열흘 −4.23%(p=0.023) 가 가장 확실한 악재, 전쟁은 당일 −3.9% 급락 후 열흘 내 거의 회복, 대선·총선 +3.95%, 반도체 사이클 +2.10%(p=0.018)가 유의. 금리 결정은 미국·한국 모두 유의한 반응 없음(사전 반영)
  • 예측 65.2%·백테스트로 시장효율성 실증 — 다음날 방향 65.2%(베이스라인 대비 +9.1%p, AUC 0.70)를 얻었으나, 신호 수익을 분해하니 밤사이 갭 +0.54% / 개장 후 장중 −0.02% — 정보력은 진짜지만 거래 가능 시점 이전에 이미 가격에 반영됨. v2 백테스트에서 모든 전략이 매수후보유에 열위. "일 단위 공개 정보로는 시장 타이밍 초과수익이 불가능"하다는 교과서적 확인
  • 전략의 옥석 가르기 — 반도체 이벤트 → 전기전자 매수는 과열 필터를 붙일 때만 조건부 유효(승률 89~90%, p≈0.01), "전쟁 나면 방산주" 통념은 t+1 진입으로 무효, 부동산 대책은 시장 무반응이지만 건설 업종 −3.77%p로 "업종 이벤트". 매일 예측은 시장·업종 모두 실패하고 "검증된 이벤트 직후 며칠"이라는 창에서만 초과수익이 존재
  • M3 현황판·분석 대시보드(7화면)·정기 리포트를 자동 생성·배포, GitHub Actions + 로컬 보완의 하이브리드로 매일 무인 운영(단일 실패점 없음)
  • 이 방법론(이벤트 스터디·매크로·현실적 백테스트)은 이후 COCOMSS의 크립토 이벤트 분석으로 이식

Retrospective

감을 숫자로 — "뉴스가 주가를 움직였다"는 통념을 시장모델·유의성 검정으로 검증 가능한 형태로 바꿨다. 계량 분석에서 가장 중요한 건 화려한 모델이 아니라 공통등락을 걷어내는 통제임을 확인했다.

가장 값진 건 부정적 결과 — 예측 정확도 65%를 만든 뒤 그것을 백테스트로 검증하자 초과수익이 사라졌다. 신호의 정보력이 개장 갭에 이미 반영된다는 것을 수익 분해로 증명했고, 이 "시장효율성의 실증"이 화려한 성과 곡선보다 값진 결과였다. "맞힐 수 있다"보다 "어디까지는 못 벌린다"를 아는 것이 신뢰의 출발이었다.

분석을 시스템으로 — 일회성 노트북이 아니라, 매일 스스로 도는 파이프라인으로 만들며 수집·보정·분석·예측·게시의 데이터 흐름 전체를 설계했다. 클라우드가 막는 KRX 수급은 로컬이 보완하는 하이브리드로 단일 실패점을 없애고, 이벤트 후보 감지→주간 검토→자동 재검증까지 데이터 품질 관리를 운영 루프에 넣었다.

Links

이어진 프로젝트 — 이벤트 스터디·매크로·현실적 백테스트 방법론이 COCOMSS로 이식됐다.