📚 시리즈: 직장인의 주식 스크리너 개발기
- 1편 · 거래량은 터졌는데 주가는 그대로? 흡수 거래량 스크리너 만들기
- 2편 · 10년 백테스트가 알려준 불편한 진실
- 3편 · 기관·외국인 순매수 따라 사면 오를까?
- 4편 · DART 공시로 찾은 작은 우위 — 실적 개선·내부자 매수 (지금 읽는 글)
- 5편 · 백테스트를 믿기 전에 확인할 7가지
- 6편 · 매일 종목 추천 대신 ‘관찰 기록’을 남기는 이유
- 7편 · 내 전략 10년 재검증과 멀티팩터 워크포워드
- 8편 · 거래비용을 현실로 바꾸자 결과가 뒤집혔다
안녕하세요, 육성라이프입니다 😊
3편에서 기관 순매수만으로는 무작위 종목 선택을 이기지 못했지만, 호재 공시와 함께 볼 때 작고 꾸준한 차이가 보였다고 말씀드렸습니다. 모두가 실시간으로 보는 시세·수급보다, 읽고 해석하는 데 시간이 걸리는 공시 쪽에 기회가 있을 수 있다는 단서였습니다.
그래서 이번에는 질문 자체를 바꿨습니다. “오를 종목은?”이 아니라 “시장이 늦게 반응하는 사건은 무엇인가?”입니다. 금융감독원 DART 오픈API로 실적 공시와 임원·주요주주의 지분 변동 공시를 받아, 실적 서프라이즈와 내부자 매수가 이후 주가에 어떤 영향을 줬는지 10년치 데이터로 검증했습니다.
① 영업이익 개선 신호가 가장 튼튼했습니다(정정·지연 공시를 빼고 t값 2.78, ‘유효’). ② 실적 발표 직후 주가 반응은 방향은 맞지만 기준 미달(t값 1.76). ③ 내부자 매수는 데이터가 짧아 판단을 보류했고, ‘실적 호재 + 내부자 매수’ 조합은 데이터를 바로잡자 효과가 사라졌습니다.
1. 왜 실적과 내부자 매수인가
해외 연구에서 오래 관찰된 현상 중에 실적 발표 후 표류가 있습니다. 실적이 예상보다 좋았던 회사의 주가가 발표 당일에 한 번에 다 오르지 않고, 이후 몇 주에 걸쳐 같은 방향으로 더 움직이는 현상입니다. 투자자들이 새 정보를 천천히 소화하기 때문이라고 설명됩니다.
내부자 매수도 비슷한 논리입니다. 펀드는 자금이 들어오면 실적과 관계없이 사야 할 때가 있지만, 임원이나 주요주주가 자기 돈으로 장내에서 주식을 사는 데는 보통 이유가 있습니다.
둘 다 DART에 공시되니 개인도 무료로 데이터를 받을 수 있습니다. DART 오픈API 인증키는 홈페이지에서 회원가입 후 무료로 발급받을 수 있습니다.

사진: Leeloo The First · Pexels (Pexels 라이선스)
2. 검증한 신호 네 가지
| 신호 | 내용 | 가정한 매수 시점 |
|---|---|---|
| A. 실적 발표 반응 | 잠정실적 공시 전후 2일 주가 반응(시장 대비)을 5단계로 구분 | 반응을 확인한 다음 날 시가 |
| B. 영업이익 개선 | 분기·반기·사업보고서의 영업이익 전년 동기 대비 증감 ÷ 시가총액을 5단계로 구분(적자→흑자 전환은 따로) | 보고서 공시 다음 거래일 시가 |
| C. 내부자 매수 | 임원·주요주주(개인)의 소유주식 증가 보고 — 전체 / 1억 원 이상 / 20거래일 안에 2명 이상 | 공시 다음 거래일 시가 |
| D. 조합 | A 또는 B의 호재 + 최근 60거래일 안의 내부자 매수 | 공시 다음 거래일 시가 |
성과는 이렇게 쟀습니다
- 비교 대상: 같은 날, 같은 방식으로 산 시가총액이 비슷한 종목(시총 5분위)의 평균. 처음엔 전체 종목 평균과 비교했는데, 실적을 공시하는 회사는 대형주가 많아서 ‘대형주 효과’가 신호 효과처럼 보이는 착시가 생겼습니다. 이걸 발견하고 시총을 맞춘 비교로 바꿨습니다.
- 기간: 5·20·60거래일 초과수익, 거래비용 0.3% 차감
- 판정: 월별 평균의 t값(보유 기간 겹침 보정), 플러스였던 연도 비율, 앞·뒤 절반 기간의 일관성을 함께 봐서 ‘유효 / 약함 / 효과 없음’으로 나눴습니다. 나중에는 최소 5년 이상 데이터가 있어야 판정을 주도록 기준을 높였습니다.

사진: RDNE Stock project · Pexels (Pexels 라이선스)
3. 결과 ① 실적 발표 반응(A) — 방향은 맞지만 아직 약하다
2016~2026년 실적 공시 20,275건을 분석했습니다.
- 발표 직후 반응이 좋았던 종목이 이후 60일 동안 더 오르는 방향은 확인됐습니다.
- 하지만 ‘좋은 반응 − 나쁜 반응’ 차이는 +1.85%p, t값 1.76으로 기준(유효)에 못 미쳤고, 11년 중 6년만 플러스였습니다.
- 최근 몇 년(2024~2026년)은 차이가 더 크고 일관됐지만, 최근 몇 년만 골라서 판단하는 건 과최적화입니다.
4. 결과 ② 영업이익 개선(B) — 가장 튼튼한 신호
영업이익이 크게 개선된 그룹(B1)은 처음 검증에서 t값 2.32, 11년 모두 플러스였습니다. 매수 쪽 신호 중 가장 일관된 결과였죠.
그런데 결과를 다시 뜯어보다가 이상한 점을 발견했습니다. 반기보고서 마감은 8월 중순인데 9월 말 날짜로 잡힌 신호가 있었습니다. 정정 공시나 늦게 낸 공시가 새 신호로 잡히고 있었던 겁니다. 이미 8월에 알려진 정보를 9월의 새 정보로 착각한 셈이죠.
법정 제출 기한보다 7일 넘게 늦은 공시를 신호에서 빼고 다시 돌렸더니 결과가 이렇게 바뀌었습니다.
| 신호 | 수정 전 t값 | 수정 후 t값 | 판정 변화 |
|---|---|---|---|
| B1 영업이익 크게 개선 | 2.32 | 2.78 | 약함 → 유효 |
| D1 실적 호재 + 최근 내부자 매수 | 1.82 | 0.17 | 약함 → 효과 없음 |
오염된 데이터를 걷어내자 진짜 신호는 더 선명해지고, 가짜 신호는 사라졌습니다. 데이터 정제가 결론을 뒤집을 수 있다는 걸 몸으로 배운 순간이었습니다.

사진: Yan Krukau · Pexels (Pexels 라이선스)
5. 결과 ③ 내부자 매수(C) — 기대와 달랐다
- 내부자 지분 공시 데이터는 연도별로 따지면 사실상 3년치뿐이라, 10년 검증이라고 부르기 어려웠습니다. 그래서 판정은 보류했습니다.
- 내부자 매수 전체(C1)는 평균으로는 플러스였지만, 시장(같은 규모 종목)을 이긴 사례 비율은 약 42%로 절반이 안 됐습니다. 소수의 큰 상승이 평균을 끌어올린 모양새입니다.
- 1억 원 이상 매수만 본 C2는 오히려 ‘효과 없음’이었습니다. 금액을 키운다고 신호가 강해지지 않았습니다.
- 증권사·대기업 임원 매입 중에는 보상이나 책임경영 차원의 관행적 매입이 섞여 있을 수 있어, 1천만 원 미만 소액 매수는 따로 표시하도록 했습니다.
6. 여러 번 시험하면 우연도 통과한다
이번 검증에서 시험한 신호는 약 19개였습니다. 신호를 많이 시험하면 t값 2 안팎짜리 한두 개는 우연으로도 나옵니다. 이걸 감안하면 확실히 살아남았다고 말할 수 있는 건 많지 않습니다. 그래서 지금은 B1(영업이익 크게 개선)을 가장 우선으로 두고, 나머지는 보조 정보로만 씁니다.

사진: RDNE Stock project · Pexels (Pexels 라이선스)
정리 — DART 공시 검증에서 얻은 것
| 신호 | 판정 | 한 줄 해석 |
|---|---|---|
| B1 영업이익 크게 개선 | 유효 (t 2.78) | 가장 튼튼. 단, 공시 직후에만 유효 |
| A 실적 발표 반응 | 기준 미달 (t 1.76) | 방향은 맞음, 최근 강해지는 추세 |
| C1 내부자 매수 전체 | 판정 보류 | 사실상 3년치 데이터, 이긴 비율 약 42% |
| C2 내부자 1억 원 이상 | 효과 없음 | 금액이 커도 신호 강해지지 않음 |
| D1 실적 호재 + 내부자 매수 | 효과 없음 (t 0.17) | 정정 공시 제거 후 효과 사라짐 |
다음 편에서는 이 과정에서 실제로 저지른 실수들 — 벤치마크 착시, 정정 공시, 다중 검정, 진입 시점 — 을 모아 백테스트를 믿기 전에 확인할 체크리스트로 정리하겠습니다.
자주 묻는 질문
Q. DART 오픈API는 유료인가요?
무료입니다. 회원가입 후 인증키를 받으면 되고, 하루 요청 한도가 있으니 받은 데이터는 저장해 두고 새 자료만 받는 방식이 좋습니다.
Q. 거래처나 지인에게 들은 실적 정보로 매매해도 되나요?
안 됩니다. 공시되기 전의 회사 내부 정보로 매매하면 미공개정보 이용으로 처벌받을 수 있습니다. 이 글의 검증은 모두 공시된 정보만 사용했습니다.
📌 함께 읽으면 좋은 글
“DART 오픈API로 실적 서프라이즈·내부자 매수 10년 검증”에 대한 4개의 생각