📋 매매 결정 체크리스트 v2.4¶
최상위 참조:
docs/internal/trading_framework.md— Trading Framework v1.2의 실전 구현. 이 체크리스트는 Framework의 4축·Red Team·트리거 원칙을 Phase 단위로 체크박스화한 것이다. 충돌 시 Framework 우선. 버전: v2.4 (2026-04-24 KT 사고 포함 7건 + Trading Framework 연결 + 공정가 3방법 병용 + 집중도 Gate + 개인 자본 운용 재정렬) 작성일: 2026-04-24 목적: 매매 권고 전 위에서 아래로 모든 ☐ 항목 체크.Hard Gate가 1개라도 실패하면 권고 자체 거부.Soft Gate실패는 전략 모드별로 보류·사이징 축소·본인 재승인·추가 트리거 대기로 처리한다. 핵심 보강: 매수·매도 판단 전에큰 수익 가능성 검증 → 내 포트 기준 맥락 → 후보 풀 확장 → 증권사 신호 해석 → 이벤트 시계열 검증을 먼저 만든다. 숫자는 결론이 아니라 판단 재료다. v2.1 추가: ① 종목코드 교차검증 (G10) ② 주관 프레임 grep (G11) ③ Peer 정량 비교표 (X3) ④ 본문 문맥 3줄+ (B1) ⑤ 과열 3중 동시 게이트 (A15) ⑥ Phase 9 Delivery 템플릿 ⑦ 자동 거부 사유 F13~F18 v2.2 추가: ⑧ 큰 수익 가능성 검증 (U1~U7) ⑨shinhan_rationale.py자동 실행 게이트 (G12) — circular reasoning 구조적 차단 ⑩ 공정가 3방법 병용 (Justified PBR + DDM + 역사적 평균회귀) — Gordon Growth·Fama-French 학술 근거 (A7a/A7b/A7c) ⑪ 집중도 위반 시 신규 매수 자동 보류 (G13, 드러켄밀러 룰) ⑫ 장 상태 라벨 강제 (G14, pykrx 장 중/마감 구분) ⑬ Iron Rule 13 (circular reasoning 금지) ⑭ 자동 거부 사유 F19~F23 v2.3 추가: ⑮ 전략 모드와 Hard/Soft Gate 분리 ⑯ 장중 90초 Quick Gate ⑰ 롱숏·페어·헤지 리스크 ⑱ 매매 메모·감사 로그 ⑲ 통과·기각 후보 사후성과 데이터셋 ⑳ 30년차 프랍 데스크 5인 검증 원안 반영 v2.4 추가: 개인투자자는 프랍 데스크가 아니라자기 자본 운용자라는 전제로 재정렬. 기관식 승인·데스크 북·주문 티켓을 본인 재승인·쿨다운·개인 포트폴리오 리스크·매매 메모로 경량화. v2.5 추가 (2026-04-24, 5명 PM 검증 후속): ㉑ Phase 5.5 종목 스타일 라벨링 (5버킷 자동 산출, output) + Iron Rule 15 + F30~F32 — 모든 게이트 통과 패턴이 종목 스타일을 산출하고, 운용 모드(input)와 일치 검증. NVDA·한화엔진·기아·TSLA·RKLB 같은 종목별 오분류 사고를 구조적으로 차단. 적용 대상: 모든 BUY / SELL / WEIGHT_UP / WEIGHT_DOWN / INCLUDE / EXCLUDE 결정
🚦 핵심 원칙 (Iron Rules — 절대 위반 금지)¶
- 다중 신호 합의 외 매매 금지 — 단일 신호(증권사 1표·단일 호재·단일 외국계 목표가) 단독으로는 매매 권고 안 함
- 자가검증 + Pre-flight Hard Gate 통과 외 매매 금지 — Hard Gate 단 하나라도 위반 시 권고 거부. Soft Gate 위반은 전략 모드·사이징·트리거에 반영
- 단일 종목 사망 가능성 인정 — 어느 종목이든 -50% 갈 수 있음 전제. 포지션 사이징 = 사망 시 포트 영향 ≤ 허용 손실
- 사후 후회로 사전 결정 뒤집기 금지 — 매도 후 상승해도 정량 통과한 결정은 정당
- 내 포트폴리오 확인 전 신규 매수 금지 — 이미 같은 논리의 종목을 보유 중이면 신규매수 검토가 아니라 상대비교부터 수행
- 증권사 편입·편출 단정 금지 — 편입은 매수 신호가 아니라 검토 신호, 편출은 매도 신호가 아니라 thesis 재점검 신호
- 과거 이벤트를 미래 카탈리스트로 사용 금지 — 이벤트 발생일, 주가 반응, 남은 확인일을 분리
- 큰 수익 후보 오남용 금지 — 구조적 변화, 미가격 반영, 보유 가능성, 실패 조건을 통과하지 못하면 일반 매매 후보로 강등
- 모든 결정에 timestamp + 6필드 근거 + 틀릴 시나리오 3개 동반
- 주관 프레임 금지 — "심리", "믿음", "확신", "느낌" 같은 단어로 결정 근거 구성 금지. 모든 근거는 정량 수치 또는 원문 문자열 인용.
- 종목명 인코딩 사고 방지 — 한글 종목명 그대로 쓰기 전 반드시 종목코드로 교차검증.
한화엔진 (082740)형태 강제. - 같은 세션 3회+ 판정 변경 금지 — 3회 이상 흔들리면 세션 리셋 + decision-checklist 재실행
- Circular Reasoning 금지 (2026-04-24 KT 사고) — "증권사 X가 샀으니 좋다"는 근거가 아니다. 같은 리포트 내 편입 사유 텍스트가 존재하지 않으면 증권사 비중 변화는 Red Team 입력값에서 완전 제외. 판정은 펀더멘털·기술·매크로·Peer·과거 5개 축으로 독립 수행.
shinhan_rationale.py --code {코드}로 자동 검증. - 운용 모드 없는 매매 금지 — Core Value, Momentum, Event-driven, Pair/Hedge, Special Situation, Exit/Risk Reduction 중 하나를 먼저 고르고 Hard/Soft Gate 적용 방식을 명시.
- 종목 스타일 라벨링 누락 금지 (v2.3, 2026-04-24) — 모든 게이트 통과 후 Phase 5.5에서 5버킷(A.Compounder / B.Cycler / C.Event-Driven / D.Swing / E.Value-MeanReversion) 자동 점수 산출 + 1차 분류 라벨링 필수. 라벨링은 게이트 통과 패턴이 자동 산출하는 결과(output)이지, 사용자가 미리 고르는 것(input)이 아니다. 운용 모드(Iron Rule 14, input)와 라벨링(output)이 불일치하면 본인 재승인 + decision_id에 사유 명시 필수. NVDA를 D 스윙으로 다뤄 +325% 컴파운더 놓치거나, 한화엔진을 A 컴파운더로 오해해 사이클 피크 익절 못 하는 사고를 구조적으로 차단.
✅ 운용 모드와 게이트 등급 (개인 자본 운용 오버레이)¶
개인투자는 프랍 데스크와 달리 승인자·OMS·초단위 P&L 책임 체계가 없다. 대신 생활자금 보호, 집중도 통제, 감정적 재매매 방지, 세금·환율·현금비중, 오래 보유할 수 있는 오른쪽 꼬리 후보 식별이 더 중요하다. 프랍식 통제는 필요한 것만
Prop-lite로 가져온다.
0-0. Hard Gate와 Soft Gate 구분¶
| 구분 | 실패 시 처리 | 대표 항목 |
|---|---|---|
| Hard Gate | 권고 자체 거부 | 종목코드 불일치, 가격 timestamp 누락, 원문 근거 부재, 현재 포트 확인 누락, 집중도 한도 위반, 거래정지·관리종목·MNPI 가능성, decision_id 누락 |
| Soft Gate | 사이징 축소·보류·본인 재승인·24시간 쿨다운·추가 트리거 대기 | RSI/볼밴/MA 과열, Peer 대비 고평가, 공정가 초과, 이벤트 D-7, 레짐 불확실성, Red Team 일부 경고 |
0-1. 전략 모드 선택¶
| 운용 모드 | 목적 | 기존 게이트 적용 |
|---|---|---|
| Core Value / Swing | 저평가·리레이팅·중기 스윙 | 과열·공정가·Peer 고평가는 원칙적으로 신규매수 보류 |
| Momentum / Breakout | 신고가·거래대금 확장·추세 추종 | 과열은 자동 거부가 아니라 Soft Gate. 거래대금, VWAP, ATR 손절, 작은 starter size가 필수 |
| Event-driven | 실적·정책·수주·규제·리밸런싱 이벤트 | D-7은 자동 금지가 아니라 이벤트 모드에서만 허용. 발표 전·직후·컨콜 후·D+1 리비전을 분리 |
| Pair / Hedge / Long-Short | 상대가치·헤지·숏 알파 | 개인 계좌에서 실제로 가능한 경우에만 사용. borrow cost, short availability, hedge ratio, 청산 리스크 필수 |
| Special Situation / Turnaround | 구조 변화·턴어라운드·오른쪽 꼬리 후보 | 고평가처럼 보이는 구간도 허용 가능. 실패 조건과 마일스톤, 작은 초기 비중이 필수 |
| Exit / Risk Reduction | 손실 제한·익절·리스크 축소 | 매수 체크가 일부 미완성이어도 감액·매도는 가능. 단, 위험 축소 목적과 대체 포지션을 기록 |
0-2. 장중 90초 Quick Gate¶
장중 이벤트가 이미 발생했고 알파가 빠르게 사라지는 경우에는 Quick Gate로 starter position까지만 허용한다. 증액은 Full Gate 통과 후에만 가능하다.
☐ Q1. 운용 모드와 decision_id를 1줄로 기록
☐ Q2. 가격·거래대금·호가 timestamp 5분 이내
☐ Q3. 촉매가 신규 정보인지 확인 (이미 반영된 과거 이벤트 금지)
☐ Q4. Peer 3개와 섹터 ETF/지수선물 동시 반응 확인
☐ Q5. 손절가, 1R, 최대 starter size 명시
☐ Q6. 현재 포트 단일·섹터·Top5·테마·현금비중 확인
☐ Q7. 유동성: 주문금액 ≤ 최근 20일 평균거래대금의 2% 또는 본인 재확인
☐ Q8. 매매 메모(decision_id) 초안 생성
→ Quick Gate 통과만으로는 최대 목표 비중의 ⅓까지만 가능. Full Gate 실패 시 증액 금지 또는 축소.
✅ Phase 0 — 사전 게이트 (Pre-flight Gate)¶
☐ G1. 가격 데이터 1시간 이내 수집됨
☐ G2. 펀더멘털 데이터 30일 이내 (PER · ROE · 매출 등)
☐ G3. 매크로 데이터 7일 이내 (금리 · 환율 · 관세)
☐ G4. 현재가 timestamp "(YYYY-MM-DD HH:MM 수집)" 명시됨
☐ G5. 회피 종목 아님 (관세 25%+ 직격 / 제재 / 일거래 < 10억원)
☐ G6. 실적 발표일까지 D-7 이상 (D-7 이내면 신규 진입 X, HOLD만)
☐ G7. 동일 종목 5메시지 미만 (이상이면 자가 흔들림 점검 필수)
☐ G8. 편향 체크 3문 통과
☐ 확증편향: "내가 이미 결론 정하고 데이터 끼워맞추는가?"
☐ 앵커링: "단일 소스(신한·외국계 1개)에 닻 내렸는가?"
☐ FOMO: "오늘 못 사면 영영 못 살 것 같은가?"
☐ G9. 현재 시장 레짐 한 줄 명시
예: "2026-04 = 관세 risk-on + AI capex 강세 + 한국 메모리 신고가 랠리"
☐ G10. 종목코드 ↔ 종목명 교차검증 (인코딩 사고 방지)
└─ `pykrx.stock.get_market_ticker_name(code)` 또는 `yfinance.Ticker(sym).info['shortName']`
└─ xls·PDF 파싱 시 한글 깨지면 코드로 재확인. "한화엔진 082740" 형태 강제.
└─ 실패 사례: 2026-04-24 한화엔진(082740)을 한화에어로(012450)로 오인
☐ G11. 주관 프레임 사용 감지
└─ 초안에서 "심리", "믿음", "확신", "느낌", "직감" 단어 grep → 0건 확인
└─ 있으면 해당 문장 재작성 (정량 수치 또는 원문 인용으로 대체)
☐ G12. 증권사 편입 사유 텍스트 자동 확인
└─ 실행: `python scripts/shinhan_rationale.py --code {종목코드} --date {YYYY-MM-DD}`
└─ 편입 사유·본문 문맥·섹터 view 중 최소 1개 원문 근거 확보
└─ 원문 근거가 없으면 증권사 비중 변화는 Red Team 입력값에서 제외하고, 제외 사실을 기록해야 G12 통과
☐ G13. 집중도 위반 사전 확인
└─ 실행 후 단일 종목 10%, 단일 섹터 25%, Top5 50% 초과 여부 확인
└─ 이미 초과한 섹터의 신규 매수는 자동 보류, 기존 보유/교체/축소만 검토
☐ G14. 장 상태 라벨 명시
└─ 현재가에 `장중 / 마감 / 지연 / 해외 프리마켓·애프터마켓` 중 하나 표시
└─ 장중 가격과 마감 가격을 섞어 쓰면 권고 금지
☐ G15. 운용 모드·게이트 등급·실행 레인 명시
└─ Core Value / Momentum / Event-driven / Pair-Hedge / Special Situation / Exit-Risk Reduction 중 하나
└─ Hard Gate 실패와 Soft Gate 경고를 분리해 기록
└─ `90초 Quick Gate`인지 `Full Gate`인지 명시. Quick Gate면 최대 목표 비중의 1/3까지만 허용
Hard Gate 1개라도 ❌ → 권고 자체 거부. Soft Gate 경고는 전략 모드별 보류·감액·트리거 대기로 처리.
✅ Phase 1 — 판단 맥락 패킷 (큰 수익 가능성 · 내 포트 · 후보 확장 · 증권사 신호 · 이벤트 시계)¶
이 단계의 목적은 매수·매도 결론이 아니라 무엇을 비교해야 하는지를 정하는 것이다. 점수, 목표 비중, 자동 결론을 만들지 않는다.
1-1. 큰 수익 가능성 검증¶
이 단계는 "대박 후보"라는 이름을 붙일 자격이 있는지 확인한다. 통과해도 매수 결론이 아니며, 실패하면 일반 매매 후보로 내려보낸다.
☐ U1. 구조적 변화가 있는가
☐ 새 수요가 열림 (AI 인프라, 전력망, 비만치료제, 방산, 공급망 재편 등)
☐ 기존 시장의 침투율이 낮고 커질 여지가 큼
☐ 가격·마진·점유율 중 최소 1개가 장기적으로 바뀌는 중
☐ U2. 아직 숫자에 덜 반영됐는가
☐ 실적보다 수주·백로그·가격·점유율·규제 변화가 먼저 움직임
☐ 컨센서스 추정치가 최근 변화보다 뒤처져 있음
☐ 시장이 단기 악재 때문에 장기 변화를 할인 중
☐ U3. 우리가 남보다 빨리 보거나 다르게 해석할 근거가 있는가
☐ 언어 장벽: 한국 셀사이드·공시·컨콜을 해외 투자자보다 빨리 읽음
☐ 지역 장벽: 한국 공급망·고객사·Peer 연결을 더 잘 봄
☐ 시간 지평: 시장은 1~2분기, 우리는 2~5년을 볼 수 있음
☐ 행동 우위: 급락·편출·공포 구간에서 강제 매도자 반대편을 볼 수 있음
☐ U4. 상방이 길고 하방은 설명 가능한가
☐ 실패 시 손실 경로가 -20~-50% 안에서 관리 가능
☐ 성공 시 매출·마진·멀티플 중 2개 이상이 동시에 열릴 수 있음
☐ 단일 이벤트가 아니라 여러 해에 걸친 증거 누적 구조
☐ U5. 오래 보유할 수 있는가
☐ 중간에 -30% 흔들려도 thesis가 깨졌는지와 가격 변동을 구분 가능
☐ 분기 실적 하나로 thesis가 끝나는 종목이 아님
☐ 추가 확인할 운영 지표가 있음
☐ U6. 실패 조건이 명확한가
☐ thesis가 틀렸다고 인정할 지표 2개 이상
☐ 경쟁사·대체재·규제·고객 집중 위험 명시
☐ "언제까지 확인 안 되면 철회"할 시간 기준 명시
☐ U7. 대박 후보 판정
☐ U1~U6 중 5개 이상 통과: `큰 수익 후보`로 표시 가능
☐ 3~4개 통과: `검토 후보`, 일반 체크리스트로 진행
☐ 2개 이하 통과: `대박 후보` 표현 금지
1-2. 내 포트 기준 원장¶
☐ P1. 최신 `portfolio/*.xls` 파일명과 기준일 명시
☐ P2. 해당 종목의 현재 보유 여부 확인
☐ P3. 보유 중이면 계좌, 수량, 평가금액, 수익률, 현재 비중 확인
☐ P4. 보유 중이면 신규매수 후보가 아니라 `보유 유지 / 비중 조정 / 교체 / 처분 재점검` 중 무엇인지 먼저 분류
☐ P5. 같은 투자 논리의 기존 보유 종목 확인
예: KT 후보 → SKT 보유 여부 확인, PLTR 후보 → GOOGL/MSFT/NVDA/VRT 보유 여부 확인
☐ P6. 현재 포트의 섹터·테마 집중도 확인
예: 반도체, AI 인프라, 통신, 금융, 방산, 조선, 중국 소비
1-3. 후보 풀 확장¶
☐ X1. 후보 발생원 분류
☐ 증권사 신규 편입
☐ 증권사 편출
☐ 비중 확대
☐ 비중 축소
☐ Top Picks 변화
☐ 기존 보유 종목 급등·급락
☐ 실적·정책·제품 승인 등 이벤트 발생
☐ X2. 단독 종목으로 보지 않고 투자 논리 묶음으로 재정의
예: "KT" → "통신 배당주", "PLTR" → "AI 소프트웨어 고밸류"
☐ X3. 같은 논리의 Peer 3개 이상 확인
└─ 각 Peer에 대해 **정량 비교 표 필수** (아래 5개 지표)
| Peer | 현재가 | 52주 위치% | PBR | PER | RSI14 |
└─ 대상 종목의 PBR 순위 확인
├─ 하위 50% + 52주 위치 <80% → 🟢 매력
├─ 상위 20% (극단 고평가) → 🔴 대안 Peer 제시 필수
└─ 중간 → 🟡 중립
└─ 실패 사례: 2026-04-24 삼양식품(PBR 7.87) vs 농심(PBR 0.78) 비교 누락하고 편입 권고
☐ X4. 같은 논리의 기존 보유 대안 확인
☐ X5. 국내 후보면 해외 대안 또는 ETF 대안 확인
☐ X6. 해외 후보면 국내 수혜주 또는 이미 보유 중인 대체 노출 확인
☐ X7. "이 후보가 정말 이 묶음에서 1등인가?" 한 문장으로 답변
1-4. 증권사 신호 해석¶
☐ S1. 편입·편출·비중 변화의 원자료 날짜와 기준일 확인
☐ S2. 증권사 신호를 아래 네 가지 중 하나로 분류
☐ 강화 신호: 보유 종목 비중 확대, 복수 증권사 동시 긍정, thesis 유지 + 가격 조정
☐ 경계 신호: 급등 후 편입, 목표가 여력 부족, 과열 구간 편입, 단일 소스 추천
☐ 처분 재점검 신호: 보유 종목 편출, 연속 비중 축소, thesis 훼손
☐ 노이즈 신호: 며칠 내 비중 번복, 뉴스 대응성 급조정, 섹터 자금 이동성 조정
☐ S3. 최근 5영업일 내 비중 번복 여부 확인
☐ S4. 신규 편입 종목의 편입 전 1M·3M 수익률 확인
☐ S5. 편입 후 급등 추격인지, 조정 후 진입인지 구분
☐ S6. 증권사 신호가 내 보유 종목에 미치는 의미를 따로 작성
예: 보유 종목 편출 → 매도 단정이 아니라 thesis 재검증
1-5. 이벤트 시계열 검증¶
☐ T1. 핵심 이벤트를 날짜순으로 정리
☐ T2. 이미 지난 이벤트와 앞으로 남은 이벤트 분리
☐ T3. 지난 이벤트 이후 주가 반응 확인
☐ T4. 시장이 이미 가격에 반영했는지 판단
☐ T5. 앞으로 남은 확인일 명시
예: 실적 발표일, 컨콜, FDA/정책 발표, 관세 시한, 제품 출시, 수주 발표
☐ T6. 과거 이벤트를 미래 카탈리스트처럼 쓰고 있으면 경고 표시
☐ T7. D-7 이내 실적 이벤트가 있으면 Core Value 신규 진입 보류 원칙과 충돌하는지 확인
☐ T8. 핵심 이벤트 일정은 공식 IR·공시 + 뉴스 2건 이상으로 교차검증
└─ 3소스가 일치하지 않으면 날짜를 확정값처럼 쓰지 않고 `시기 불확정`으로 표시
판단 맥락 패킷 필수 형식¶
종목/묶음:
큰 수익 후보인가:
구조적 변화:
우리가 가진 edge:
왜 지금 올라왔나:
내 포트와 충돌하는가:
증권사 신호 해석:
더 나은 대안:
지난 이벤트:
남은 이벤트:
경계할 점:
사용자가 직접 판단할 질문:
→ Phase 1 결론은 큰 수익 후보 / 검토 / 경계 / 상대비교 / 이벤트 대기 / 처분 재점검 중 하나만 허용. BUY·SELL 결론 금지.
✅ Phase 2A — Layer A: 정량 신호 수집 (객관)¶
☐ A1. 현재가 / 1D / 1W / 1M / 3M / 12M 변동률
☐ A2. 52주 위치 (%) — BUY 시 > 95% 경계, SELL 시 < 5% 경계
☐ A3. RSI(14) — Core Value BUY 시 > 70은 신규매수 보류. Momentum/Event 모드는 Soft Gate로 처리하고 손절·거래대금·starter size 필수
☐ A4. 볼린저밴드 %B — Core Value BUY 시 > 100%, SELL 시 < 0% 이탈이면 매매 보류. Momentum/Event 모드는 돌파 지속성·VWAP 지지 확인
☐ A5. ATR(14) — 분할 진입 · 손절 가격대 산출용
☐ A6. MA20 / MA60 / MA200 이격률 — Core Value에서 > +10%는 추가매수 거부. Momentum/Event 모드는 ATR 손절과 1/3 starter size 적용
☐ A7. PER trailing / forward
☐ A7a. 공정가 방법 1: Justified PBR (Gordon Growth Model)
└─ 공식: `Fair P/B = (ROE − g) / (r − g)` → Fair Price = Fair PB × BPS
└─ 가정치 출처 명시 필수: ROE (컨센)·g (GDP 또는 업종 평균)·r (CAPM 기반)
└─ 학술 근거: Gordon (1959) · Fama-French HML factor
└─ 적자 기업 적용 불가 → 🔴 자동 강등
☐ A7b. 공정가 방법 2: DDM (Dividend Discount Model)
└─ 공식: `Fair Price = DPS₁ / (r − g)`
└─ 배당주·통신·금융·유틸리티 우선 적용
└─ 보수 케이스 + 공격 케이스 2개 산출 (g 민감도 분석)
☐ A7c. 공정가 방법 3: 역사적 PBR·PER 평균회귀
└─ 최근 3~5년 평균 PBR × 현재 BPS = Fair Price
└─ 레짐 전환 구간 (밸류업·금리 사이클·관세) 구분 후 적용
└─ 학술 근거: De Bondt·Thaler (1985) 평균회귀
☐ A7d. 공정가 중앙값 + 현재가 괴리율
└─ **3방법 중 최소 2개 병용 — 1개만 쓰면 F21 자동 거부**
└─ 2개 이상이 같은 방향일 때만 공정가 근거로 사용
└─ 판정: 현재가 ≤ 중앙값 -20% 🟢 / ±10% 🟡 / +20% 초과 🔴
└─ 컨센서스 목표가 보조 사용 시 × 0.80~0.85 (IBES 낙관 편향 20% 보정)
☐ A8. PBR · PSR · EV/EBITDA · PEG · 배당수익률
☐ A9. ROE · ROA · ROIC · Op Margin · FCF Margin
☐ A10. 매출 1Y / 3Y CAGR · EPS 1Y / 3Y CAGR
☐ A11. D/E · Current Ratio · Net Debt/EBITDA
☐ A12. 외국인 5D / 20D 누적 순매수 (억원)
☐ A13. 기관 5D / 20D 누적 순매수 (억원)
☐ A14. Short Interest % · 거래량 vs 20D 평균 비율
☐ A15. **과열 3중 동시 게이트** (시장가 진입 가능 조건)
☐ 볼린저밴드 %b < 100% (상단 돌파 아님)
☐ MA20 이격률 < +10% (이평 근접)
☐ RSI14 < 70 (과매수 아님)
판정:
├─ 3/3 통과 → 🟢 시장가 허용
├─ 2/3 통과 → 🟡 1차 지정가 분할만
├─ 1/3 통과 → 🟠 2차 지정가까지 대기
└─ 0/3 통과 → 🔴 Core Value 진입 금지, 눌림목 대기
단, Momentum/Event-driven 모드는 위 판정을 Hard Gate가 아니라 실행 조건으로 전환:
└─ 시장가 추격 금지, VWAP/ATR 손절·거래대금 확장·starter size·증액 전 Full Gate 필수
└─ 실패 사례: 2026-04-24 현대로템 %b 101·이격 +15.8·RSI 68 (1/3 통과)인데 시장가 편입 권고
→ A 종합 결론: BUY / SELL / HOLD 명시
✅ Phase 2B — Layer B: 의견 신호 수집 (복수 소스)¶
증권사 신호의 의미 해석은 Phase 1에서 끝낸다. 이 단계에서는 원문 논리, 목표가, 의견 분포만 수집한다.
☐ B1. 신한 단일종목 본문 읽음 (당일 PDF 15+개 전체 스캔)
└─ 실행: `pdfplumber`로 `251218_MarketBrief/data/{YYYY}/{MM}/{DD}/신한_리서치/*.pdf` 전수 grep
└─ 본문 문맥 **최소 3줄 이상** 확보
└─ 포트폴리오 표·공시 페이지("유동성 공급회사", "기초자산으로 ELS")는 **본문 의견 아님**
└─ 본문 언급 0건 시 **"신한 의견 불명" 플래그**. 비중 변화 ≠ 뷰 변화 (Iron Rule 6)
└─ 실패 사례: 2026-04-24 LG엔솔 본문 긍정 3건 + 포트폴리오 편출인데 "편출=매도"로 단정
☐ B1b. 신한 "주요 일정" 섹션에서 해당 종목 실적·이벤트 발표일 재확인 (G6 교차검증)
☐ B2. 신한 portfolio + [MP] 섹터 view 확인
☐ B3. 한투 본문 의견 확인
☐ B4. KB · NH · 미래에셋 중 최소 1개 확인
☐ B5. 외국계 (GS · MS · BofA · JPM) 중 최소 2개 목표가 · 의견 확인
☐ B6. 컨센서스 평균 목표가 + BUY / HOLD / SELL 카운트 확인
☐ B7. 단일 소스 가중치 ≤ 30% 검증
→ B 종합 결론: 가중평균 BUY / SELL / HOLD 명시
✅ Phase 2C — Layer C: 환경 신호 수집 (매크로 · 섹터 · 정책 · 이벤트)¶
☐ C1. 금리 (한은 · 연준 · 10Y yield) 현재 환경
☐ C2. 환율 USD/KRW + 원유 + 달러인덱스 + VIX
☐ C3. 신한 [MP] / 한투 위클리 섹터 view (해당 섹터 ↑↓)
☐ C4. 외국계 섹터 view (해당 섹터)
☐ C5. 정책 · 관세 · 제재 직접 노출 여부
☐ C6. 차기 실적 발표 D-day + 가이던스 트렌드
☐ C7. 사이클 단계 (반도체 / 조선 / 건설 등 phase)
☐ C8. 동일 섹터 Peer 동향
☐ C9. 최근 30일 이내 매크로·섹터 뉴스 또는 공식 자료 2건 이상 확인
└─ 출처·날짜를 명시하지 못하면 C 종합 결론은 `데이터 부족`으로 강등
→ C 종합 결론: 우호 / 중립 / 비우호 / 데이터 부족 명시
Trading Framework 4축 매핑¶
| Framework 축 | 체크리스트 대응 | 핵심 확인 |
|---|---|---|
| Axis 1 — 과열도 | Phase 2A A1~A6, A15 | 52주 위치, RSI, MA20 이격, 볼린저밴드, ATR |
| Axis 2 — 펀더멘털 | Phase 2A A7~A11 | 공정가 3방법, 밸류에이션, 수익성, 재무 안정성 |
| Axis 3 — 매크로·이벤트 | Phase 1의 이벤트 시계(T1~T8), Phase 2C | 이벤트 시계, 실적 D-day, 정책·관세·섹터 레짐 |
| Axis 4 — Peer 비교 | Phase 1의 후보 확장(X3~X7) | Peer 정량 비교표, 기존 보유 대안, 더 나은 대안 |
Phase 3의 A/B/C 지평별 합의는 위 4축을 시간 지평별로 다시 묶는 실전 요약이다. Framework와 충돌하면 Framework의 4축 판정을 우선한다.
✅ Phase 3 — 지평별 합의 산출 (5개 지평 별도)¶
☐ 1W 지평 합의: A 70% × B 20% × C 10% → STRONG / MEDIUM / WEAK / CONFLICT
☐ 1M 지평 합의: A 50% × B 30% × C 20% → STRONG / MEDIUM / WEAK / CONFLICT
☐ 3M 지평 합의: A 30% × B 40% × C 30% → STRONG / MEDIUM / WEAK / CONFLICT
☐ 6M 지평 합의: A 20% × B 40% × C 40% → STRONG / MEDIUM / WEAK / CONFLICT
☐ 12M 지평 합의: A 10% × B 30% × C 60% → STRONG / MEDIUM / WEAK / CONFLICT
합의 기준¶
| 합의 정도 | 조건 | 매매 행동 |
|---|---|---|
| STRONG | 3 Layer 모두 같은 방향 + Pre-flight 15/15 | 시장가 또는 분할 1차 즉시 |
| MEDIUM | 2 Layer 같은 방향 + Pre-flight 15/15 | 분할 1차 소량 (전체의 ⅓) |
| STARTER | Quick Gate 통과 + Full Gate 진행 전 | 목표 비중의 ⅓ 이하, 증액 금지 |
| WEAK | 1 Layer만 시그널 | 매매 안 함, 관찰만 |
| CONFLICT | Layer 충돌 (A↑ vs B↓ 등) | HOLD, 추가 데이터 대기 |
| REJECT | Hard Gate 1개라도 위반 | 권고 자체 거부 |
✅ Phase 4 — 4-Guru 통과 체크¶
☐ 피터 린치 (Peter Lynch)
☐ 종목 카테고리 분류 (Stalwart / Fast Grower / Cyclical / Asset Play / Turnaround / Slow Grower)
☐ 한 문장 설명 가능
☐ 숫자가 스토리 뒷받침
☐ Lynch 통과: ✅ / ❌
☐ 워런 버핏 (Warren Buffett)
☐ 해자 구체적 (브랜드 / 네트워크효과 / 비용우위 / 전환비용)
☐ 자본배분 우수 (R&D · 자사주 · 배당)
☐ 10년 후에도 돈 버는 사업
☐ 본인 이해 가능 (circle of competence)
☐ Buffett 통과: ✅ / ❌
☐ 찰리 멍거 (Charlie Munger — 인버전)
☐ "이게 틀리려면 무엇이 필요한가?" 시나리오 5개 명시
☐ 각 시나리오 발생 확률 산출
☐ 평균 확률 ≤ 35%
☐ Munger 통과: ✅ / ❌
☐ 드러켄밀러 (Stanley Druckenmiller)
☐ 상방 · 하방 비대칭 ≥ 2x
☐ 기대값 (확률 × 페이오프) > 0
☐ 베팅 강도 적정 (Kelly Lite × 0.5 이내)
☐ Druckenmiller 통과: ✅ / ❌
4-Guru 결과별 강등¶
- 4/4 통과 = 강도 유지 (STRONG → STRONG)
- ¾ 통과 = 1단계 강등 (STRONG → MEDIUM)
- 2/4 이하 = HOLD 강등
✅ Phase 5 — Red Team 5명 적대적 검토¶
☐ 반론자: "이 결정이 틀린 이유는?" — 명확한 반박 1개 이상
☐ 기술 분석 적대: "기술적으로 부적격인 이유?" — RSI · BB · 52W 위반 체크
☐ 매크로 적대: "매크로 위험은?" — 금리 · 환율 · 정책 충돌 점검
☐ Peer 적대: "동일 섹터 더 나은 대안은?" — Peer 비교
☐ 과거 사례: "비슷한 setup이 과거 어떻게 끝났나?" — 사례 1개 이상
→ 경고 0개 = 실행 진행 / 1~2개 경고 = 사이징 축소 또는 본인 재승인 / 3개 이상 거부 = HOLD 강등 또는 거부. Hard Gate 위반이 포함되면 즉시 REJECT.
✅ Phase 5.5 — 종목 스타일 라벨링 (게이트 통과 패턴 → 5버킷 자동 산출)¶
v2.3 신설. 5명 30년차 PM 적대적 검증 결과 만장일치 비판: "모든 종목에 모든 게이트를 똑같이 들이댄다." 핵심 진단: 종목 자체가 틀린 게 아니라 그 종목을 잘못된 스타일로 다루는 게 진짜 손실 원인.
해법 (v2.3 도입): 게이트는 모두 그대로 적용한다 (차등 적용 아님). 그 결과 통과·실패 패턴이 그 종목의 스타일을 산출한다. 스타일은 input(사용자가 미리 고름)이 아니라 output(게이트 통과 패턴이 자동 산출).
Phase 5.5 위치 근거: Phase 0~5 모든 게이트(Pre-flight, 맥락 패킷, Layer A/B/C, 4-Guru, Red Team) 통과 패턴을 봐야 정확한 라벨링이 가능하다. 따라서 Phase 6 사이징·Phase 7 트리거 결정 전에 라벨링 확정.
5.5-1. 5개 버킷 정의¶
| 버킷 | 정체 | 보유 시계 | 알파 원천 |
|---|---|---|---|
| A. Compounder | 10년 가져갈 해자 기업. 분기 노이즈 무시 | 5년+ | ROE × 재투자 활용도 × 시간 |
| B. Cycler | 사이클 phase에 따라 진입·청산. 피크에서 던진다 | 1~3년 | 사이클 timing + 공급/수요 swing |
| C. Event-Driven | 특정 catalyst(실적·FDA·M&A·정책) 전후 미스프라이싱 | 2주~6개월 | catalyst probability × payoff |
| D. Swing | 4~12주 sentiment·momentum·tape 기반 | 4~12주 | 단기 mispricing + flow |
| E. Value-MeanReversion | 저PBR·고배당, 멀티플 평균회귀 | 6개월~3년 | 멀티플 정상화 + 배당 수익 |
5.5-2. 자동 라벨링 스코어 (각 버킷 0~100점)¶
각 버킷 점수 = Phase 0~5의 어느 게이트들이 그 버킷에 어울리게 통과했는가의 합산. 각 점수가 명시 게이트 통과·실패에 직접 매핑되므로 임의성 없음.
A. Compounder 스코어 (총 100점)¶
+ Phase 4 Buffett 통과 (해자·자본배분·10년·circle of competence) → +25
+ Phase 4 Lynch 분류 = Stalwart 또는 Slow Grower → +10
+ Phase 4 Munger 인버전 평균 확률 ≤ 25% → +15
+ A9 ROE 10년 평균 ≥ 15% → +15
+ A11 D/E ≤ 0.5 + Net Debt/EBITDA ≤ 2 → +10
+ A7d 공정가 괴리 ≤ ±15% (적정가 근처) → +10
+ U1·U4·U5·U6 모두 통과 (구조적 변화·비대칭·보유 가능·실패 조건) → +15
─────
- A15 과열 3중 동시 게이트 위반 (RSI 70+ + BB 100+ + MA20 +10%+) → -10 (감점만, 거부 아님)
B. Cycler 스코어 (총 100점)¶
+ Phase 1 사이클 phase 명시 (early/mid/late/peak) → +20
+ X3 Peer 동기화 (반도체·조선·자동차 등 같은 사이클 Peer 동반 움직임) → +15
+ A14 거래량 ≥ 20D 평균 1.5x + 외국인 분배·매집 패턴 명확 → +15
+ A2 52주 위치 30~70% (mid) 또는 80%+ (late/peak) → +15
+ Phase 4 드러켄밀러 비대칭 ≥ 2x → +15
+ A6 MA20 이격 ±10% 이내 → +10
+ A13 기관 5D/20D 누적 매수 또는 매도 일관성 → +10
─────
+ Bonus: 사이클 late·peak 신호 (HBM 공급과잉, capex YoY 마이너스 등) → +10
C. Event-Driven 스코어 (총 100점)¶
+ T1~T7 catalyst D-7~D-30 명시 + 확률 산출 → +30
+ Phase 4 드러켄밀러 비대칭 ≥ 3x (이벤트 페이오프 비대칭) → +25
+ U6 실패 조건 명확 (catalyst 실패 시 구체 손실 -X% 명시) → +15
+ Phase 0-1 운용 모드 = Event-driven 일치 → +10
+ Hedge construction 가능 (Peer short pair 식별) → +10
+ Phase 1 catalyst가 신규 정보 (이미 가격 반영된 과거 이벤트 아님) → +10
─────
+ Bonus: M&A spread / FDA decision / 가이던스 컷·비트 등 명확 단일 이벤트 → +10
D. Swing 스코어 (총 100점)¶
+ A1 1M 모멘텀 +10%~+30% (파라볼릭 +30%+는 감점 -5) → +20
+ A14 거래량 vs 20D 평균 비율 ≥ 1.5x → +15
+ A6 MA20 이격 +5~+15% → +15
+ A3 RSI 50~70 (스윙 진입 구간) → +10
+ Phase 1 단기 catalyst 명시 (4~12주 시한) → +20
+ Phase 7 ATR trigger 적합 (변동성 σ 안정적, hour-bar liquidity 충분) → +10
─────
+ Bonus: tape signal 명확 (intraday volume spike, level 2 imbalance) → +10
E. Value-MeanReversion 스코어 (총 100점)¶
+ A8 PBR 분위 0~30% (Peer 대비 하위) → +25
+ A8 배당수익률 ≥ 4% → +15
+ A7c 역사적 평균회귀 공정가 통과 (current ≤ 5년 평균 -20%) → +20
+ A2 52주 위치 0~30% (저점 구간) → +15
+ A11 D/E 안정 + Op Margin 5년 안정 → +10
+ Phase 4 Lynch 분류 = Slow Grower 또는 Asset Play → +10
─────
+ Bonus: 정상화 트리거 명확 (배당 인상, ROE 회복, 정책 변화) → +5
5.5-3. 라벨링 산출 규칙¶
☐ L1. 5버킷 점수 자동 산출 (Phase 0~5 게이트 통과 결과 입력 → 위 스코어 공식 적용)
☐ L2. 1차 분류 = 최고점 버킷
☐ L3. 하이브리드 판정
- 1위·2위 점수차 < 15 → 하이브리드 (예: A 60 + B 50 → "A or B late 전환 phase")
- 1위·2위 점수차 ≥ 15 → 단일 분류 확정
☐ L4. 최저 점수 임계값 검증
- 모든 버킷 점수 < 40 → "분류 불가, 매매 보류" (게이트 통과가 어느 스타일과도 강하게 매핑되지 않음)
☐ L5. 시간 기반 일시 전환 트리거 명시
- 평소 분류 + 일시 전환 트리거 (예: "B mid + C 일시 전환 D-7~D+3")
- 전환 종료일 명시 (실적 발표 D+3 후 평소 분류 복귀)
☐ L6. 분류 산출 도구 (구현 예정)
`python scripts/style_score.py --code {코드} --date {YYYY-MM-DD}`
출력: 5버킷 점수 + 1차 분류 + 하이브리드 여부 + 분류별 표준 매매 행동 권고
5.5-4. 라벨링과 운용 모드 일치 검증¶
운용 모드 = 사용자(본인)가 매매 시작 전 선택 (Iron Rule 14, input) 라벨링 = Phase 0~5 게이트 통과 패턴이 자동 산출 (Iron Rule 15, output)
| 일치 여부 | 처리 |
|---|---|
| 일치 (예: 운용 = Core Value, 라벨 = A Compounder) | ✅ 정상 진행, 분류별 표준 매매 행동 자동 적용 |
| 인접 일치 (예: 운용 = Momentum, 라벨 = D Swing) | ✅ 정상 진행 |
| 불일치 (예: 운용 = Momentum, 라벨 = E Value-MeanReversion) | ⚠️ 본인 재승인 필수 + decision_id에 사유 명시 + 사이징 축소 |
| 라벨 분산 (1위·2위 점수차 < 15) | ⚠️ 하이브리드, 양쪽 모드 룰 모두 적용 + 사이징 축소 |
| 분류 불가 (모든 버킷 < 40) | ⛔ 매매 보류, 게이트 재검토 또는 데이터 보강 |
5.5-5. 분류별 표준 매매 행동 (Phase 6/7 자동 매핑)¶
| 버킷 | BUY 표준 | SELL 표준 | WEIGHT_UP/DOWN 표준 |
|---|---|---|---|
| A. Compounder | DCA(적립식) 30%·30%·40%, 분기 1회 추가매수, 가격 변동에 둔감 | thesis 깨짐 시만 (해자 붕괴·자본배분 실패), 시간 손절 OFF | 분기 단위 ±2~5%p, 단기 가격 변동에 반응 X |
| B. Cycler | ATR 1차/2차/3차 분할, 사이클 mid에서 진입 | 사이클 late·peak 시 50% 익절, 신호 변경 시 전량 | 사이클 phase 따라 ±5~15%p, 피크에서 적극 축소 |
| C. Event-Driven | catalyst 1주 전 50% 진입, 발표 후 50% 추가 (또는 Hedge construction) | catalyst 발표 후 24~72h 내 결과 따라 전량/유지 | catalyst 임박 ±10~20%p 일시 변경, 종료 후 원위치 |
| D. Swing | tape signal + ATR trigger 분할, 4~12주 시한 | 시한 도달 또는 thesis 깨짐 시 전량 | 단기 ±3~7%p, 회전율 높음 |
| E. Value-MeanReversion | PBR 분위 진입(0~30%) 시 분할, 가치 정상화 대기 | 정상화 도달 후 전량, 또는 thesis 깨짐 | 가치 괴리 폭에 따라 ±3~10%p |
5.5-6. 사용자 실제 포트 라벨링 예시 (2026-04-24 기준)¶
| 티커 | 추정 점수 (A/B/C/D/E) | 1차 분류 | 비고 |
|---|---|---|---|
| NVDA | 50 / 75 / 30 / 35 / 5 | B late | HBM4 3위 Micron + Samsung 50% 증설 + 2027 공급과잉 시나리오 → late phase. +325% 수익률은 "장기 compounder" 착시. 32.5% 집중도 + B late = 50% 익절 표준 |
| GOOGL | 80 / 35 / 25 / 30 / 20 | A | Search 해자 + Cloud 30%+ 성장 + ROE 25%+ 10년 → DCA 추가매수 검토 가능 |
| AAPL | 75 / 40 / 20 / 25 / 25 | A | 생태계 해자 + 자본배분 우수 (자사주) → 보유 유지 |
| AVGO | 55 / 70 / 30 / 40 / 10 | B mid | AI ASIC 슈퍼사이클 mid → 보유 유지, 피크 신호 모니터 |
| LRCX | 45 / 75 / 25 / 35 / 15 | B late | China 35% 의존 + WFE 사이클 2027 피크 → 50% 익절 검토 |
| MU | 40 / 80 / 30 / 30 / 10 | B late | HBM 3위 + 사이클 피크 임박 → 50% 익절 검토 |
| TSM | 65 / 60 / 25 / 30 / 15 | A or B mid (하이브리드) | 파운드리 독점 = A적 해자, 그러나 사이클성 존재 → 양쪽 룰 모두 적용 |
| TSLA | 30 / 40 / 50 / 65 / 5 | D (또는 C 로보택시) | PER 355 = E 가치 평가 무의미. 모멘텀·robotaxi catalyst → A 평가 금지 |
| RKLB | 25 / 50 / 40 / 80 / 5 | D 파라볼릭 | +193% 모멘텀, 볼밴 이탈 → 단기 4~12주 시한, 익절 명확 |
| BE | 25 / 40 / 75 / 50 / 10 | C (Oracle MSA) | catalyst 발표(4/13) 후 24~72h 평가 구간 → 50% 익절 권고 |
| LHX | 60 / 35 / 70 / 25 / 30 | C (DoD 예산) → A 복귀 | 평소 A, DoD 예산 catalyst 임박 시 C 일시 전환 |
| LLY | 70 / 30 / 65 / 25 / 15 | A + C 일시 전환 (orforglipron) | 평소 A, orforglipron 결과 임박 시 C로 일시 전환. 결과 후 A 복귀 |
| 기아 | 40 / 70 / 60 / 25 / 50 | B mid + C 4/25 일시 전환 | 평소 B, 4/25 실적 D-1로 C 일시 전환. 실적 후 B 복귀 |
| KT | 35 / 30 / 25 / 15 / 80 | E | 저PBR 0.84 + 고배당 3.88% + 정상화 → 매수 분할 검토 가능 |
→ 분류 결정 후 그 버킷의 표준 매매 행동(5.5-5)이 Phase 6/7 자동 적용. NVDA를 A로 잘못 분류하면 +325% 수익에도 영원히 매도 못 함. 한화엔진을 A로 분류하면 사이클 피크에서 익절 못 함.
5.5-7. 실패 사례 (라벨링 누락·오분류 시 어떻게 깨지는가)¶
| 사례 | 잘못된 분류 | 올바른 분류 | 결과 |
|---|---|---|---|
| NVDA | A 컴파운더 (수익률 +325% 보고 착시) | B late | A로 보면 영원히 매도 못 함. 사이클 피크에서 손실 가능 |
| 한화엔진 | A 컴파운더 또는 B mid (4/22까지) | B late (4/24 RSI 82·BB 113·52W 100%) | A/B mid로 보면 익절 신호 무시 → 4/24 사고 패턴 |
| 기아 4/25 D-1 | B mid (평시 관성) | B mid + C 일시 전환 (D-7 진입) | C 인식 안 하면 PEAD trade 봉쇄 |
| TSLA | A 컴파운더 또는 E 가치 | D 스윙 (PER 355) | A/E로 보면 공정가 산출 무의미, 매매 타이밍 못 잡음 |
| RKLB | C 이벤트드리븐 (단일 catalyst 가정) | D 파라볼릭 스윙 (+193%) | C로 보면 시한 없이 보유 → 폭락 시 큰 손실 |
✅ Phase 6 — Position Sizing 계산¶
☐ 권고 비중 산출
비중 = min(
Kelly_Fraction × 0.5, # 켈리 절반 (안전계수)
포트 단일종목 한도 (10%), # 드러켄밀러 룰
합의강도 × 기준비중, # STRONG×100% / MEDIUM×40%
포트 섹터 한도 (25%)
)
☐ Kelly Fraction 산출
Kelly = (승률 × 승폭 - 패률 × 패폭) / (승폭 × 패폭)
☐ 1R 룰 검증
종목당 최대 손실 ≤ 포트 1%
→ 손실 -25% 종목 → 포트 비중 ≤ 4%
→ 손실 -50% 종목 → 포트 비중 ≤ 2%
☐ 개인 포트폴리오 리스크 검증
☐ 생활자금·비상금 침범 없음, 미수·신용·레버리지 사용 여부 명시
☐ 총 투자비중 / 현금비중 / 단일 종목 / 섹터 / 테마 / Top5 비중 확인
☐ 환율 노출, 상관 포지션, 같은 테마 중복 보유 확인
☐ 예상 슬리피지와 주문금액 대비 평균거래대금(ADV) 비율 확인
☐ 숏 / 파생 / 헤지 사용 시 추가 검증
☐ hedge ratio와 beta-neutral 여부
☐ borrow cost, short availability, locate 가능 여부
☐ crowded short risk와 short squeeze 가능성
☐ stop-out liquidity와 반대 포지션 청산 순서
☐ 권고 매수 · 매도 주수 계산
☐ 양도세 · 거래세 시뮬레이션
- KR 거래세: 0.18% (KOSPI)
- 해외주식 양도세: 22% × (이익 - 250만 공제)
☐ 실수령 계산
✅ Phase 7 — Trigger-based 실행 가격대 산출¶
진입 트리거 (BUY)¶
☐ 1차 (시장가 또는 fair value 이하): 30% 수량
☐ 2차 (-0.5σ ATR 추가 하락): 30% 수량
☐ 3차 (-1σ ATR 도달): 40% 수량
☐ 거부 조건: fair value 이상 시 매수 X
청산 트리거 (SELL)¶
☐ 익절 1차 (+0.5σ ATR): 30% 수량
☐ 익절 2차 (+1σ ATR): 30% 수량
☐ 익절 3차 (fair value 근접): 40% 수량
☐ 손절 (-1σ ATR 또는 thesis 위반): 전량
☐ 시간 손절 (6개월 thesis 미실현): 전량
이벤트 트리거¶
☐ 실적 D-7 이내: Core Value 신규 진입 X. Event-driven 모드는 Quick Gate + 이벤트 플레이북 통과 시 starter size만 허용
☐ 가이던스 컷 > 5%: thesis 재검증, 미통과 시 매도
☐ 가이던스 비트 > 5%: thesis 강화, 추가매수 검토
☐ 정책 · 관세 직접 타격: 즉시 thesis 재검증
☐ 이벤트 단계 분리: 발표 전 / 발표 직후 / 컨콜 후 / D+1 애널리스트 리비전
☐ 레짐 플립 확인: 금리·환율·지수선물·섹터 ETF·Peer 3개가 동시에 반대면 자동 감액
✅ Phase 8 — 사후 기록 (Logging)¶
☐ YAML 로그 작성
.claude/skills/stock-redteam/log/{date}_{ticker}_{decision}.yaml
- decision_id, rule_version, model_version, date, ticker, decision, qty, price
- universe, strategy_mode, execution_lane, raw_feature_snapshot, source_id, source_hash
- phase_results: pre_flight / context_packet / layer_a / layer_b / layer_c / consensus / guru / redteam / position_size / trigger
- pass_fail_reason, expected_payoff, intended_horizon, benchmark
- 틀릴_시나리오 3개 명시
- 사후_점검_일정 (7일 후, 30일 후, 3개월, 6개월)
- actual_return_1w / 1m / 3m / 6m, benchmark_return, slippage, tax, liquidity_cost
- rejected_universe_followup: 기각 후보의 이후 성과도 함께 저장
☐ 감사 로그 잠금
☐ 원본 데이터·계산 결과·판정·승인·주문 결과를 하나의 decision_id로 연결
☐ 승인 후 수량·가격·계좌·전략 ID 변경 시 새 decision_id 발행
☐ 가능하면 append-only 저장. 수정 시 수정자·시각·사유를 남김
☐ portfolio_plan 갱신
☐ portfolio_state 업데이트
☐ stock_journal 갱신
☐ memory MEMORY.md 갱신 (필요 시)
☐ LATEST.md 자동 갱신
사후 점검¶
- 7일 후: 단기 결과 / 트리거 정확성 평가
- 30일 후: 중기 결과 / thesis 검증
- 누적 적중률: STRONG · MEDIUM · WEAK 별 통계 → framework 보정
✅ Phase 9 — 사용자 전달 메시지 템플릿 (Delivery)¶
사용자에게 매매 권고를 전달하는 최종 메시지는 아래 템플릿을 그대로 따른다. 한 필드라도 공란이면 권고 금지.
9-1. 필수 16필드¶
☐ D1. 종목명 + 종목코드 (예: 기아 (000270))
☐ D2. 현재가 + 수집 timestamp (예: 154,100원, 2026-04-24T13:53 pykrx 장중)
☐ D3. 의사결정 유형 (BUY / SELL / WEIGHT_UP / WEIGHT_DOWN / INCLUDE / EXCLUDE)
☐ D4. 권장 주수·금액
☐ D5. 진입가 3단계 (1차/2차/3차 분할) 또는 시장가 조건
☐ D6. 손절가 (ATR 2σ 하방 or 60일선 이탈)
☐ D7. 목표가 Base / Bull 2시나리오
☐ D8. 틀릴 시나리오 3개 + 확률 + 손실 추정 (Munger 인버전)
☐ D9. 재점검 트리거 (언제·어떤 신호 오면 판정 바꿀지)
☐ D10. 포트폴리오 영향% (실행 후 단일·섹터·Top5 비중)
☐ D11. 운용 모드 + 실행 레인 (Quick Gate / Full Gate)
☐ D12. Hard Gate 실패 0개 + Soft Gate 경고 목록
☐ D13. 개인 포트폴리오 리스크 (현금비중, 단일·섹터·테마·Top5, 환율, ADV 대비 주문비율)
☐ D14. 매매 메모 (decision_id, 운용 모드, 계좌·통화, 주문 유형, 유효시간)
☐ D15. 본인 승인 시각·24시간 쿨다운 여부·승인 후 변경 금지 조건
☐ D16. 사후성과 측정 일정과 벤치마크
9-2. 체크리스트 통과 현황표 (메시지 본문에 필수 포함)¶
| Phase | 항목 | 상태 |
|:---:|:---|:---:|
| 0 | Pre-flight 15개 | ✅/❌ |
| 1-1 | 큰 수익 가능성 검증 | ✅/❌ |
| 1-2 | 내 포트 기준 원장 | ✅/❌ |
| 1-3 | 후보 풀 + Peer 정량 비교표 | ✅/❌ |
| 1-4 | 증권사 신호 4분류 | ✅/❌ |
| 1-5 | 이벤트 시계 | ✅/❌ |
| 2A | 정량 + 과열 3중 게이트 | ✅/❌ |
| 2B | 본문 의견 (문맥 3줄) | ✅/❌ |
| 2C | 환경 신호 | ✅/❌ |
| 3 | 5지평 합의 | STRONG/MEDIUM/STARTER/WEAK/CONFLICT |
| 4 | 4-Guru | n/4 |
| 5 | Red Team | n/5 |
| 5.5 | **스타일 라벨링 (5버킷 점수)** | A/B/C/D/E + 1차 분류 + 운용 모드 일치 여부 |
| 6 | Position Sizing + 개인 포트 리스크 | ✅/❌ |
| 7 | Trigger 산출 | ✅/❌ |
| 8 | Logging | ✅/❌ |
상태표가 없는 권고 메시지는 자동 기각. 사용자가 "체크리스트 통과 현황표 없음"을 지적하면 즉시 권고 철회.
9-3. 승인 요청 문구¶
메시지 말미에 반드시 다음 중 하나:
- 최종 STRONG →
"이대로 실행해도 될까요?" - STARTER/MEDIUM/CONFLICT →
"아래 조건 맞으면 제한 비중으로 진행할까요? (조건: ___)" - WEAK/REJECT → 승인 요청 자체 금지.
"권고 불가. 재점검 트리거 대기 권장"만 전달.
📊 결정 매트릭스 (한눈 요약)¶
Pre-flight 15개 통과? ──── Hard Gate NO ──→ ❌ 권고 거부
│
↓ YES
Quick Gate only? ──── YES ──→ STARTER(목표 비중 1/3 이하) + Full Gate 전 증액 금지
│
↓ NO
판단 맥락 패킷 완성?
큰 수익 가능성 / 내 포트 확인 / 후보 확장 / 증권사 신호 해석 / 이벤트 시계 ── NO ──→ ❌ 권고 거부 또는 상대비교로 전환
│
↓ YES
3-Layer 합의?
STRONG (3/3) ──┐
MEDIUM (2/3) ──┤
WEAK (1/3) ──→ "관찰만, 매매 X"
CONFLICT ──→ "HOLD, 추가 데이터 대기"
│
↓
4-Guru 통과?
4/4 → 강도 유지
3/4 → 1단계 강등
≤2 → HOLD
│
↓
Red Team 경고 0~2개? ──── NO ──→ HOLD or 거부
│
↓ YES
스타일 라벨링 (5버킷 자동 산출, Phase 5.5)
1차 분류 = 최고점 버킷 (점수차 < 15면 하이브리드)
운용 모드(input)와 일치? ── NO ──→ ⚠️ 본인 재승인 + 사이징 축소
모든 버킷 < 40 ──→ ⛔ 매매 보류
│
↓
Position Sizing + 개인 포트 리스크 계산
(분류별 표준 매매 행동 자동 매핑)
│
↓
Trigger-based 실행
│
↓
Logging (자동)
🚫 자동 거부 사유 — 32가지 실패 패턴¶
☐ F1. 단일 호재 추격매수 (오늘 +8% 같은 단일 일자 급등)
☐ F2. 단일 소스 추종 (신한 1표만)
☐ F3. 본문 미확인 (portfolio · 헤더만 봄)
☐ F4. 섹터 연쇄 추론 (NOC→LHX, HD엔진→한화엔진)
☐ F5. 본인 통과 결정 뒤집기 (사후 후회 기반)
☐ F6. Core Value 모드에서 단기 과열 추가매수 (RSI 70+, BB 100+)
☐ F7. Event-driven 모드와 Quick Gate 없이 실적 D-7 신규 진입
☐ F8. 결과 장담 ("무조건", "확실")
☐ F9. 내 포트 확인 전 신규 매수 권고
☐ F10. 증권사 편입을 매수 신호로 단정
☐ F11. 과거 이벤트를 미래 카탈리스트로 사용
☐ F12. 같은 투자 논리의 Peer·보유 대안 미확인
☐ F13. 종목코드 미검증 + 한글 종목명으로만 판단 (한화엔진↔한화에어로 사고 패턴)
☐ F14. 주관 프레임 사용 ("심리·믿음·확신·느낌·직감")
☐ F15. 같은 세션 3회+ 판정 변경 (흔들림)
☐ F16. 증권사 포트폴리오 **비중 변화만 보고** 본문 의견 미확인 ("편출=매도" 단정)
☐ F17. Peer 정량 비교표 없이 "이 테마 좋다" 편입 권고
☐ F18. Phase 9 전달 메시지에 체크리스트 통과 현황표 누락
☐ F19. 구조적 변화·edge·남은 증거 없이 `큰 수익 후보`로 포장
☐ F20. 편입 사유 원문 없이 증권사 비중 변화만으로 판단
☐ F21. 공정가를 단일 방법 하나로만 산출
☐ F22. 단일 종목·섹터·Top5 집중도 위반 상태에서 신규 매수 권고
☐ F23. 장중·마감·지연 가격 라벨 없이 현재가 사용
☐ F24. 운용 모드와 Hard/Soft Gate 구분 없이 권고
☐ F25. Quick Gate만 통과했는데 목표 비중의 1/3을 초과하거나 증액 권고
☐ F26. 개인 포트폴리오 리스크(현금비중, 단일·섹터·테마·Top5, 환율, ADV, slippage) 누락
☐ F27. 숏·파생·헤지 사용 시 borrow cost·short availability·hedge ratio·청산 리스크 누락
☐ F28. 매매 메모(decision_id, 운용 모드, 계좌·통화, 주문 유형) 누락
☐ F29. 거래정지·관리종목·MNPI 가능성·미수/신용·주문 실수 확인 누락
☐ F30. **Phase 5.5 종목 스타일 라벨링 누락** (5버킷 스코어 산출 안 함, Iron Rule 15 위반)
☐ F31. **라벨링과 매매 행동 모순** (예: A Compounder 분류 후 "단기 익절 1주 권고", D Swing 분류 후 "10년 보유 권고")
☐ F32. **운용 모드(input)와 라벨링(output) 불일치인데 본인 재승인·사유 명시 없이 권고** (예: 운용 = Momentum, 라벨 = E Value-MeanReversion인데 "그냥 매수")
→ 32개 중 1개라도 해당 = 권고 자체 거부.
📌 사용 시나리오별 적용 예¶
예 1 — 한화엔진 추가매수 (4/24 오전 권고가 왜 잘못됐나)¶
| 검증 | 결과 |
|---|---|
| Phase 1 (판단 맥락) | 기존 보유 위너 + 신한 편출 + 조선 묶음 과열 = 신규매수 검토가 아니라 보유/익절 재점검 |
| Layer A (정량) | RSI 82 · BB 113 · 52W 100% = 매수 금지 (단기 과열) |
| Layer B (의견) | 신한 편출 (4/21) = 매도 시그널 |
| Layer C (환경) | 신한 [MP] 조선 ↓ = 섹터 약세 |
| 합의 | 0/3 매수 시그널 + 자가검증 G3·G4·G7 위반 |
| 결정 | 추가매수 절대 금지 (REJECT) |
예 2 — 삼성중공업 5주 부분 매도 (왜 정당한가)¶
| 검증 | 결과 |
|---|---|
| Phase 1 (판단 맥락) | 기존 보유 위너 + 조선 묶음 급등 = 추가매수 후보가 아니라 부분 익절 후보 |
| Layer A (정량) | RSI 73 · BB 106 · 52W 100% = 매도 시그널 (과열 해소) |
| Layer B (의견) | 신한 본인 데이터 1M +30.7% 인정 = 단기 과열 시인 |
| Layer C (환경) | 신한 [MP] 조선 ↓ = 섹터 약세 |
| 합의 | 3/3 매도 시그널 STRONG |
| 결정 | 부분 매도 정당 (잔여 27주는 추세 유지) |
예 3 — GS건설 7주 매도 (왜 정당한가)¶
| 검증 | 결과 |
|---|---|
| Phase 1 (판단 맥락) | 보유 비중 0.24% 자투리 + 건설 묶음 내 우위 불명확 = 신규 판단보다 포트 정리 판단 |
| Layer A (정량) | +52.4% 익절 + 오늘 -2.77% 약세 + 자투리 0.24% = 매도 시그널 |
| Layer B (의견) | 신한 portfolio -0.5%p 축소 (본문 직접 언급 없음) = 약한 매도 |
| Layer C (환경) | 건설 섹터 신한 view 명시 없으나 강세 아님 = 중립 |
| 합의 | ⅔ 매도 시그널 MEDIUM + 자투리 비중 정리 = 정당 |
| 결정 | 전량 매도 정당 |
예 4 — 기아 15주 WEIGHT_DOWN 권고 철회 (2026-04-24 세션 사고)¶
| 검증 | 결과 |
|---|---|
| G6 (실적 D-7) | 🚫 4/25 실적 발표 D-1 — 신규 권고 금지 게이트 충돌 |
| Phase 1의 증권사 신호 | 신한 portfolio 비중 3.5%→1.2% 축소이지만 본문 의견 언급 0건 → "신한 의견 불명" (경계 신호 아님) |
| Layer A | decision-checklist 1M/3M/6M 전부 HOLD (가중합계 -0.10 / -0.05 / +0.05) |
| Layer B | 신한 본문 의견 없음 + 4/25 실적 컨콜 대기 |
| 합의 | CONFLICT + 실적 D-1 게이트 실패 |
| 결정 | WEIGHT_DOWN 권고 철회. 실적 후 재판정 |
| 사고 원인 | 비중 변화를 뷰 변화로 단정 (F16) + 실적 일정 체크 누락 (G6) |
예 5 — LG에너지솔루션 4주 전량매도 권고 철회 (2026-04-24 세션 사고)¶
| 검증 | 결과 |
|---|---|
| G6 (실적 D-7) | 🚫 4/30 실적 발표 D-6 — 신규 권고 금지 게이트 충돌 |
| Phase 1의 증권사 신호 | 신한 portfolio 편출 (4/20)이지만 본문 긍정 3곳: "ESS + Benz 계약 → 시총 3위 탈환", "2차전지 모멘텀 양호", "반등장 주도 IT HW·2차전지" |
| Phase 2B 본문 읽기 | pdfplumber 스캔으로 긍정 문맥 3줄+ 확보 → "신한 뷰 긍정" 🟢 |
| 합의 | 편출 = 포트폴리오 재조정이지 뷰 악화 아님 |
| 결정 | 전량매도 권고 철회. 4/30 실적 후 재판정 |
| 사고 원인 | 포트폴리오 비중 0 → "편출=매도" 자동 매핑 (F16, Iron Rule 6 위반) |
예 6 — 삼양식품 3~5주 편입 권고 기각 (2026-04-24 세션 사고)¶
| 검증 | 결과 |
|---|---|
| X3 Peer 정량 비교 | 삼양식품 PBR 7.87 vs 농심 PBR 0.78 (10배) + 농심 52주 위치 9.5% 저점 |
| Layer A | 외국인 20일 -53,158주 순매도, decision-checklist 3M 가중합계 -0.150 |
| Layer B | 신한 portfolio 확대(+2.5%p)이나 본문 구체 언급 없음 |
| Peer 대안 존재 | 🔴 농심 제시 |
| 합의 | REJECT (Peer 우위 명확) |
| 결정 | 삼양식품 편입 기각 + 농심 Red Team 후 편입 검토 |
| 사고 원인 | Peer 정량 비교 표 누락 (F17). X3 게이트 미작동 |
예 7 — 현대로템 5주 시장가 편입 권고 기각 (2026-04-24 세션 사고)¶
| 검증 | 결과 |
|---|---|
| A15 과열 3중 | 볼밴 %b 101.18 + MA20 이격 +15.79% + RSI 68.15 → ⅓ 통과 (RSI만 70 미만) = 시장가 금지, 2차 지정가까지 대기 |
| Phase 1의 증권사 신호 | 신한 비중 11영업일 내 3회 급스윙 (0.5→3.0→1.0→3.0) = 노이즈 신호 |
| 합의 | REJECT (과열 + 신한 스윙 패턴) |
| 결정 | 시장가 편입 기각. 220,000원/205,000원 지정가 분할만 |
| 사고 원인 | A15 과열 3중 게이트 누락 (F6). 신한 비중 스윙을 노이즈로 분류 안 함 |
🎯 30년차 애널리스트 검증 (이 framework 통과 가능?)¶
| 항목 | 통과? | 근거 |
|---|---|---|
| Reproducibility (재현성) | ✅ | 같은 데이터 → 같은 합의 정도 산출 |
| Context-first (맥락 우선) | ✅ | 큰 수익 가능성, 내 포트 확인, 후보 확장, 증권사 신호 해석, 이벤트 시계를 정량 판단보다 먼저 수행 |
| Right-tail aware (큰 수익 후보 분리) | ✅ | 구조적 변화·edge·보유 가능성·실패 조건을 통과해야만 큰 수익 후보로 표시 |
| Falsifiability (반증가능) | ✅ | Pre-flight 15개 + 틀릴 시나리오 3개 이상, 중대 결정은 Munger 인버전 5개 명시 |
| Risk-first (리스크 우선) | ✅ | Pre-flight Gate 우선, position sizing에 -50% 사망 가정 |
| Multi-source consensus | ✅ | 3-Layer + 단일소스 가중치 ≤ 30% |
| Time-horizon discipline | ✅ | 5개 지평별 차등 가중 |
| Position sizing 강제 | ✅ | Kelly Lite + 1R 룰 + 섹터 한도 |
| Adversarial check | ✅ | 5명 Red Team 경고 수 기록 + Hard Gate 즉시 거부 |
| Post-mortem loop | ✅ | 7일 · 30일 · 3개월 · 6개월 사후 점검 + 통과·기각 후보 누적 성과 |
| Humble about limits | ✅ | 데이터 부족 시 자동 WEAK = 매매 X |
🧪 개인투자자 관점 재정렬¶
| 영역 | 개인투자에 남길 것 | 개인투자에 과한 것 | v2.4 처리 |
|---|---|---|---|
| 속도 | 장중 이벤트 때 작은 starter size만 허용 | 초단위 프랍 데스크 실행 | 90초 Quick Gate는 유지하되 목표 비중의 ⅓ 이하로 제한 |
| 리스크 | 생활자금·현금비중·집중도·세금·환율 | 기관식 gross/net book 관리 | 개인 포트폴리오 리스크로 경량화 |
| 승인 | 감정적 추격을 막는 본인 재확인 | PM·리스크 매니저 승인 | 본인 승인 시각, 24시간 쿨다운, 변경 금지 조건으로 대체 |
| 주문 통제 | decision_id, 주문 전 메모, 사후성과 기록 | OMS/EMS 수준 pre-trade ticket | 매매 메모와 append-only 로그로 대체 |
| 알파 | 큰 수익 후보를 죽이지 않는 전략 모드 분리 | 모든 신호를 veto로 처리 | Hard/Soft Gate와 스타일 라벨링으로 처리 |
종합 판정: 이 체크리스트는 개인투자자가 자기 자본을 더 프로답게 굴리기 위한 Owner-Operator 룰북이다. 프랍 데스크식 통제는 사고 방지용으로 일부만 가져오고, 최종 목적은 큰 후보를 오래 보유할 수 있게 하면서도 한 번의 실수로 포트가 망가지지 않게 하는 것이다.
📝 4-Guru 본인 관점 추가¶
| 구루 | v1 피드백 | v2 반영 | v2.1~v2.4 보강 |
|---|---|---|---|
| 피터 린치 | "지나치게 정량 의존. 종목 카테고리 분류 · 스토리 검증이 빠짐." | Phase 4에 카테고리 분류 6종 추가 | X3 Peer 정량 비교표 추가 (Peer 1등 여부 확인) |
| 워런 버핏 | "10년 보유 가능 여부 + circle of competence 체크 없음." | Phase 4 Buffett 통과 조건에 'circle of competence' 추가 | B1 본문 문맥 3줄+ 확보 규칙 (비중 변화 ≠ 뷰 변화) |
| 찰리 멍거 | "인버전 5개 + 평균 확률 = 좋음. 다만 편향 자가체크 없음." | Phase 0 Pre-flight에 '편향 체크 3문' 추가 | Iron Rule 10 주관 프레임 금지 + G11 용어 grep |
| 드러켄밀러 | "비대칭 + Kelly Lite + 1R 룰 = 우수. 다만 '레짐 변화' 감지 명시 약함." | Phase 0 Pre-flight에 '현재 레짐 한 줄 명시' 추가 | U1~U7 큰 수익 가능성 + A15 과열 3중 동시 게이트 |
v2.1~v2.4 추가 보강 (2026-04-24 사고·방법론·개인 자본 운용 재정렬 반영)¶
| 사고 | 원인 | 안전장치 |
|---|---|---|
| 한화엔진↔한화에어로 혼동 | 한글 인코딩 깨짐 + 코드 미검증 | G10 코드-이름 교차검증 + Iron Rule 11 |
| 기아 4/25 실적 D-1 매도 권고 | 실적 일정 체크 누락 | G6 재강조 + B1b 주요일정 교차검증 |
| LG엔솔 편출=매도 단정 | 본문 의견 확인 없이 비중만 봄 | B1 본문 문맥 3줄+ 규칙 + F16 자동 거부 |
| 삼양식품 편입 권고 | Peer 비교 누락 | X3 Peer 정량 비교표 강제 + F17 자동 거부 |
| 현대로템 시장가 권고 | A15 ⅓ 통과 상태를 시장가 가능으로 오판 | A15 과열 3중 동시 게이트 + 신한 비중 스윙을 노이즈 신호 분류 |
| 기아·LG엔솔·현대로템 판정 3회 변경 | 의견 흔들림 | Iron Rule 12 3회+ 세션 리셋 + F15 자동 거부 |
대박 후보 오남용 |
구조적 변화·edge·실패 조건 없이 기대수익만 강조 | U1~U7 큰 수익 가능성 검증 + F19 자동 거부 |
| 권고 메시지에 통과 현황 표시 안 함 | 자가 검증 우회 | Phase 9 Delivery 템플릿 강제 + F18 자동 거부 |
방법론 근거 메모¶
- 개별 종목 수익률은 오른쪽 꼬리가 두껍다. Bessembinder의 장기 주식수익률 연구는 시장 전체의 부가 소수 장기 승자에 크게 의존한다는 점을 보여준다. 따라서
큰 수익 후보는 일반 매매 후보와 분리해서 구조적 변화·edge·보유 가능성을 따로 검증한다.
참고: Do Stocks Outperform Treasury Bills?, W. P. Carey 요약 - 분산과 자산배분은 손실 보장이 아니라 리스크 관리 장치다. SEC는 어떤 자산배분 모델도 모든 목표에 맞는 정답이 아니며, 분산투자도 손실을 보장해 막아주지 않는다고 설명한다. 따라서 큰 수익 후보라도 Phase 6 포지션 사이징과 1R 룰을 반드시 통과해야 한다.
참고: SEC 자산배분·분산투자 가이드, SEC 리스크 설명
면책사항¶
본 체크리스트는 투자 권유가 아니며, 모든 투자 판단은 투자자 본인의 책임입니다. 과거 데이터 기반 분석이므로 미래 수익을 보장하지 않습니다. 손실 위험을 충분히 인지하고 투자하시기 바랍니다.