이 스킬
Event Radar Insider Ownership Signal
gather insiderTrading, ownership, majorShareholders 원자료로 내부자·주요주주 변화 신호를 확인하는 L1/L1.5 절차다.
이어 가기
절차
실행 순서
- 1
holder가 없으면 unknown으로 표시하고 단정하지 않는다.
- 2
amount 부호만으로 의도를 해석하지 않는다.
예시
이런 질문이 들어오면 이 skill 을 쓴다
- 내부자 매수와 주요주주 지분 변화 확인
출력
기대 결과
- insider/holder direction
- amount 또는 지분 변화
공개 호출 방식
AI 도구 실행 순서는 EngineCall 우선이다. 아래 Python 블록은 확보한 L1/L1.5 근거를 buildEventRadarMemo로 묶는 RunPython fallback 절차다.
import dartlab
from dartlab.synth.eventRadar import buildEventRadarMemo
target = "005930"
c = dartlab.Company(target)
def rows(value, limit=20):
if hasattr(value, "head") and hasattr(value, "to_dicts"):
return value.head(limit).to_dicts()
if isinstance(value, list):
return value[:limit]
return []
try:
insider_rows = rows(c.gather("insiderTrading"), limit=20)
except Exception:
insider_rows = []
try:
ownership_rows = rows(c.gather("ownership"), limit=20)
except Exception:
ownership_rows = []
memo = buildEventRadarMemo(
target=target,
market=str(getattr(c, "market", "KR")),
companyName=str(getattr(c, "corpName", target)),
insiderRows=insider_rows,
ownershipRows=ownership_rows,
)
emit_result(
table=memo["tables"]["insiderOwnershipSignal"],
values=memo["headline"],
date=memo["asOf"],
sources=memo["sources"],
) 호출 동작
1. 결론 도출
insider + ownership signal table 단정. 예: “최근 12M insider 5건 (buy 3 / sell 2, net +120k 주) + ownership 3건 (대주주 ratio +0.8%p / 외인 +1.2%p / 기관 -0.4%p) → net insider 매수 우세 + 외인 지분 증가 — direction 양수 동조.”
2. 핵심 근거 수집
- Company.gather(‘insiderTrading’) latest 20 row — 임원 + 대주주 거래
- Company.gather(‘ownership’) latest 20 row — 5% 보유공시 + 분기 외인/기관 ratio
- buildEventRadarMemo() → holder / direction / amount / date / status table
3. 메커니즘 분석
2 source → signal table
insider rows → direction = buy / sell / treasury / planned
ownership rows → direction = ownershipChange (+/-) / snapshot
↓
holder 별 net direction:
대주주 net buy + 외인 ratio ↑ → 양수 동조
임원 sell 다수 + 외인 ↓ → 음수 동조
mixed (대주주 buy + 임원 sell) → 해석 보류
↓
amount 부호 vs 의도 분리:
계획 매도 (10b5-1) / 주식보상 vesting / treasury transfer
→ buy/sell 부호 있어도 *의도 신호 아님*
→ falsifier 로 분리 direction 자체는 방향 신호 — 의도/타이밍 해석 X. cluster 분석 (≥3 명 동시 + 30일 윈도우) 은 별 recipe (insiderClusterTiming).
4. 반례·한계
- 계획 매도 (사전 신고된 10b5-1 plan) 는 신호 아님 — 분리 필수.
- 주식보상 vesting 행사도 sell 로 잡힘 — false negative 위험.
- KR 5% 보유공시 lag 5 영업일 — 실제 매매 시점과 불일치.
- 자기주식 (treasury) transfer 는 대주주 매수와 별개 — 혼합 시 의미 왜곡.
5. 후속 모니터링
- net insider buy 동조 + 가격 하락 →
recipes.sentiment.insiderClusterTiming로 cluster 형성 확인. - ownership 대주주 ↓ + 임원 sell ↑ →
recipes.fundamental.disclosure.eventRadar.falsifierLedger로 계획 매도 반증. - 외인 ratio 급변 →
recipes.sentiment.foreignBuyMomentum으로 가속도 확인.
대표 반환 형태
| column | 의미 |
|---|---|
date | 거래 또는 공시 날짜 |
holder | 내부자 또는 주요주주 |
direction | buy/sell/ownershipChange/snapshot |
amount | 수량 또는 지분 변화 |
status | ok/watch/missing |
연계 절차
- recipes.fundamental.disclosure.eventRadar.eventInbox - 관련 공시 이벤트 확인.
- recipes.fundamental.disclosure.eventRadar.falsifierLedger - 계획 거래 반증.
기본 검증
- holder가 없으면 unknown으로 표시하고 단정하지 않는다.
- amount 부호만으로 의도를 해석하지 않는다.
런타임
실행 환경별 호환성
| 환경 | 상태 | 비고 / 제한 |
|---|---|---|
| Local Python | supported | — |
| Server | supported | — |
| MCP | supported | — |
| Web AI | supported | — |
| Pyodide | limited | — |
실패 회피
흔한 실패 · 절대 금지
흔한 실패
- 계획 매도를 부정적 신호로 단정
절대 금지
- 내부자 매수·매도를 선행 정보로 단정하지 않는다.