내부자 매수 3만 3천 건을 받았고, 기각도 채택도 못 했다
벤치마크를 KOSPI 200으로 잡았는데 이벤트 종목은 대부분 중소형주였다. 비교가 불공정하면 판정을 미루는 게 맞다.
DART에서 임원·주요주주 공시를 전부 긁었다. 3,990개사를 64분 돌려서 33,370건 / 2,416개사를 받았다.
그리고 검증했는데, 결과를 기각도 채택도 하지 못했다. 비교가 불공정했기 때문이다.
확보한 데이터
| 임원·주요주주 소유상황보고 | 33,370건 / 2,416개사 |
| 대량보유(5%룰) | 22,769건 / 2,627개사 |
| 매수 / 매도 | 26,762 / 6,092 |
| 기간 | 2024-09-20 ~ 2026-09-18 (2년치뿐) |
DART의 elestock.json과 majorstock.json은 최근 2년만 준다. corp_code당 한 번 호출하면 전체 이력이 오는데, 그 "전체"가 2년이다. 10년 백테스트는 불가능하다.
쓸 만한 필드는 sp_stock_lmp_irds_cnt(소유수량 증감 = 매수/매도 판별), isu_exctv_ofcps(직위), isu_exctv_rgist_at(등기/비등기), repror(보고자 이름), rcept_dt(접수일)이다.
1차 결과 — 그리고 이 비교가 틀렸다
KOSPI 200 대비 초과수익으로 계산했다.
| 보유 | 매수 | 매도 | 매수 절대수익 |
|---|---|---|---|
| 20일 | −4.04% (t=−27) | −8.17% | +2.61% |
| 60일 | −11.50% | −20.55% | +14.09% |
| 120일 | −21.64% | −45.88% | +27.45% |
"내부자가 사도 지수를 못 이긴다"로 읽힌다. 그런데 이걸 결론으로 쓰면 안 된다.
벤치마크를 KOSPI 200으로 잡았는데, 이벤트 종목은 대부분 중소형주다. 게다가 이 2년은 KOSPI 200이 317에서 1370으로 4배 오른 특수 구간이다.
그러니까 저 숫자가 측정한 것은 "내부자 매수가 나쁘다"가 아니라 "중소형주가 반도체 대형주를 못 따라갔다"일 수 있다. 검증 원칙 3번(가중 방식을 맞춰라)을 스스로 어긴 것이다.
방증 — 결과가 상식에 반한다
원칙 9번이 "결과가 상식에 반하면 코드부터 의심하라"인데, 딱 그 신호가 두 개 나왔다.
직위별 역전: 부사장 −0.81% > 사장 −1.34% > 대표이사 −5.12%. 회사를 가장 잘 아는 사람이 살 때 가장 나쁘다는 건 이상하다.
금액 분위 비단조: 4분위 −1.75%가 최선인데 5분위(최대 금액) −6.46%가 최악이다. 크게 살수록 나쁘다는 것도 이상하다.
둘 다 "큰 회사 임원이 큰 금액을 산다 → 대형주 편중"이 아니라 그 반대 방향이라 더 수상하다.
살아있는 신호 — 매수·매도 스프레드
| 보유 | 매수 | 매도 | 스프레드 |
|---|---|---|---|
| 20일 | −4.04% | −8.17% | +4.13%p |
| 60일 | −11.50% | −20.55% | +9.05%p |
| 120일 | −21.64% | −45.88% | +24.24%p |
벤치마크가 틀려서 양쪽이 똑같이 깎였다면, 둘의 차이는 그 영향을 받지 않는다.
매수가 매도보다 일관되게 낫고, 기간이 길수록 격차가 벌어진다. 가치 팩터와 똑같은 모양이다 — 롱숏은 유효한데 롱온리는 미확인.
다음에 할 일
- 벤치마크를 size-matched로 교체. 각 이벤트 종목을 시총 5분위로 나누고, 같은 분위 전체 종목의 평균 수익률을 벤치마크로 쓴다. 학술 표준이다
- 그 기준으로 매수·매도·스프레드 재계산
- 직위별·금액분위 단조성이 살아나는지 확인. 살아나면 1차 결과가 벤치마크 탓이었다는 증거다
- 폐지종목 데이터로 생존편향 보정
검증과 별개로 남는 가치
2년치뿐이라 백테스트에는 약하지만, 인물 노트의 뼈대로는 충분하다.
누가, 어느 회사에서, 언제, 얼마나 샀는지가 2,416개사에 걸쳐 있다. 사람과 회사를 잇는 양방향 링크의 첫 번째 층이 이걸로 생긴다. 사람을 따라가면 회사가 보이고, 회사를 따라가면 사람이 보인다.
전략으로 못 쓰는 데이터가 지도로는 쓸모가 있다.