Signalio — 한국 시장 정보 지도와 전략 검증 엔진 2026.09.20

내부자 매수 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

벤치마크가 틀려서 양쪽이 똑같이 깎였다면, 둘의 차이는 그 영향을 받지 않는다.

매수가 매도보다 일관되게 낫고, 기간이 길수록 격차가 벌어진다. 가치 팩터와 똑같은 모양이다 — 롱숏은 유효한데 롱온리는 미확인.

다음에 할 일

  1. 벤치마크를 size-matched로 교체. 각 이벤트 종목을 시총 5분위로 나누고, 같은 분위 전체 종목의 평균 수익률을 벤치마크로 쓴다. 학술 표준이다
  2. 그 기준으로 매수·매도·스프레드 재계산
  3. 직위별·금액분위 단조성이 살아나는지 확인. 살아나면 1차 결과가 벤치마크 탓이었다는 증거다
  4. 폐지종목 데이터로 생존편향 보정

검증과 별개로 남는 가치

2년치뿐이라 백테스트에는 약하지만, 인물 노트의 뼈대로는 충분하다.

누가, 어느 회사에서, 언제, 얼마나 샀는지가 2,416개사에 걸쳐 있다. 사람과 회사를 잇는 양방향 링크의 첫 번째 층이 이걸로 생긴다. 사람을 따라가면 회사가 보이고, 회사를 따라가면 사람이 보인다.

전략으로 못 쓰는 데이터가 지도로는 쓸모가 있다.

Signalio — 한국 시장 정보 지도와 전략 검증 엔진 프로젝트로