콘텐츠로 이동

📋 매매 결정 체크리스트 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. 다중 신호 합의 외 매매 금지 — 단일 신호(증권사 1표·단일 호재·단일 외국계 목표가) 단독으로는 매매 권고 안 함
  2. 자가검증 + Pre-flight Hard Gate 통과 외 매매 금지 — Hard Gate 단 하나라도 위반 시 권고 거부. Soft Gate 위반은 전략 모드·사이징·트리거에 반영
  3. 단일 종목 사망 가능성 인정 — 어느 종목이든 -50% 갈 수 있음 전제. 포지션 사이징 = 사망 시 포트 영향 ≤ 허용 손실
  4. 사후 후회로 사전 결정 뒤집기 금지 — 매도 후 상승해도 정량 통과한 결정은 정당
  5. 내 포트폴리오 확인 전 신규 매수 금지 — 이미 같은 논리의 종목을 보유 중이면 신규매수 검토가 아니라 상대비교부터 수행
  6. 증권사 편입·편출 단정 금지 — 편입은 매수 신호가 아니라 검토 신호, 편출은 매도 신호가 아니라 thesis 재점검 신호
  7. 과거 이벤트를 미래 카탈리스트로 사용 금지 — 이벤트 발생일, 주가 반응, 남은 확인일을 분리
  8. 큰 수익 후보 오남용 금지 — 구조적 변화, 미가격 반영, 보유 가능성, 실패 조건을 통과하지 못하면 일반 매매 후보로 강등
  9. 모든 결정에 timestamp + 6필드 근거 + 틀릴 시나리오 3개 동반
  10. 주관 프레임 금지 — "심리", "믿음", "확신", "느낌" 같은 단어로 결정 근거 구성 금지. 모든 근거는 정량 수치 또는 원문 문자열 인용.
  11. 종목명 인코딩 사고 방지 — 한글 종목명 그대로 쓰기 전 반드시 종목코드로 교차검증. 한화엔진 (082740) 형태 강제.
  12. 같은 세션 3회+ 판정 변경 금지 — 3회 이상 흔들리면 세션 리셋 + decision-checklist 재실행
  13. Circular Reasoning 금지 (2026-04-24 KT 사고) — "증권사 X가 샀으니 좋다"는 근거가 아니다. 같은 리포트 내 편입 사유 텍스트가 존재하지 않으면 증권사 비중 변화는 Red Team 입력값에서 완전 제외. 판정은 펀더멘털·기술·매크로·Peer·과거 5개 축으로 독립 수행. shinhan_rationale.py --code {코드}로 자동 검증.
  14. 운용 모드 없는 매매 금지 — Core Value, Momentum, Event-driven, Pair/Hedge, Special Situation, Exit/Risk Reduction 중 하나를 먼저 고르고 Hard/Soft Gate 적용 방식을 명시.
  15. 종목 스타일 라벨링 누락 금지 (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 리스크 설명

면책사항

본 체크리스트는 투자 권유가 아니며, 모든 투자 판단은 투자자 본인의 책임입니다. 과거 데이터 기반 분석이므로 미래 수익을 보장하지 않습니다. 손실 위험을 충분히 인지하고 투자하시기 바랍니다.