콘텐츠로 이동

주도주 트래킹 카드 템플릿

목적: PM이 한 종목을 30초 안에 판단. "지금 사기 좋은 자리인가 / 재료 소멸로 망가졌나".

대상: 주도 테마 Top 5 × 테마당 Top 5 종목 = 25 카드 (매일 자동 갱신).

원칙: - 한 카드 = 한 종목. 100~150줄 이내. - 자의적 판정 금지. 이평/거래량/상관/RS 데이터 기반. - 복합 신호 (단일 지표 아닌 AND 조건). - 후발주 붕괴는 대장주 카드에 병기 (선행 지표).


카드 표준 포맷

## [등급] 종목명 (코드) — 테마

**상태**: SWEET_SPOT / HOLD / CAUTION / EXIT  ← 복합 신호 기반 판정
**업데이트**: YYYY-MM-DD HH:MM

### 1. 한 줄 요약
[등급] 이 종목은 [테마] [상태]. [핵심 트리거 또는 리스크] 관찰.

### 2. 포지션 기본 정보
- **현재가**: XX,XXX원
- **평균 목표가**: XX,XXX원 (증권사 N개사 평균, 상승여력 +X.X%)
- **발견일 이후 누적**: +XX.X% (D+N일차)
- **테마 내 랭크**: #N / 총 M종목
- **등급**: S / A / B+ (후발주) / B / C / D

### 3. 복합 신호 (재료 소멸 경계)
| 항목 | 상태 | 판정 |
|------|------|------|
| 20일선 | 위/이탈 | OK/WEAK/BROKEN |
| 50일선 | 위/이탈 | OK/WEAK/BROKEN |
| 주봉 10주선 | 위/이탈 | OK/WEAK/BROKEN |
| 복합 지지 (기준봉+매물대+이평) | 방어/이탈 | OK/WEAK/BROKEN |
| 거래량 (최근 5일 vs 기준 20일) | 확대/유지/감소 | EXPAND/HOLD/SHRINK |
| 이전 10일 수익률 | +X.X% | 과열 [WARN] / 정상 |

**종합 판정**:
- **SWEET_SPOT**: 전부 OK + 거래량 유지 + 눌림목 완료 → 매수 자리
- **HOLD**: 대부분 OK, 일부 약함 → 보유 유지
- **CAUTION**: 2개 이상 WEAK + 거래량 감소 → 추가 매수 자제, 보유 분할매도 준비
- **EXIT**: BROKEN 2개 이상 + 거래량 감소 + 후발주 50%+ 붕괴 → 재료 소멸, 전량 청산

### 4. 테마 연계 (헤지/동조)
- **테마 상태**: ACTIVE / PAUSE / PULLBACK / WARNING / BROKEN
- **강한 동조**: [동조 테마들] — 같이 움직임. 한쪽 꺾이면 같이
- **헤지 대상**: [역상관 테마들] — 이 테마 쉬면 헤지 테마로 로테이션 가능
- **독립**: [독립 테마들] — 같이 편입 가능 (리스크 분산)

### 5. 더 좋은 매수 자리 (HOLD/CAUTION 상태에서만 표시)
| 레벨 | 가격 | 근거 |
|------|------|------|
| 1차 | XX,XXX | 20일선 지지 |
| 2차 | XX,XXX | 50일선 지지 |
| 3차 | XX,XXX | 기준봉 저가 (복합 지지) |

**진입 트리거** (AND 조건):
- 가격 도달 + 거래량 회복 (5일 평균 기준 50일 평균 대비 80%+)
- 외인/기관 재매수 (5일 중 3일 이상)
- 해당일 종가 > 해당 지지선

### 6. 재료 소멸 경계 신호 (CAUTION/EXIT 상태에서 강조)
- **후발주 붕괴**: 테마 내 B+ 종목 중 X/N (XX%) 주봉 10주선 이탈 → 선행 경보
- **RRG 전환**: Leading → Weakening → Lagging 중 현재 위치
- **정책 정체**: POLICY_TRACKER에서 관련 재료 진전 정지 N일
- **거래대금 감소**: 5일 평균 거래대금이 20일 평균의 50% 이하

**RED LINE**: 종가가 XX,XXX원(복합 지지) 이탈 시 **즉시 전량 청산**.

### 7. 과열 경고 (이전10일 +40% 이상일 때만 표시)
**이전 10일 수익률 +X.X% — 과열 구간 진입**
- 추격 매수 금지
- 보유 시 분할매도 고려
- Jegadeesh 단기 reversal 주의

### 8. 차티스트 심사 (섹터 RS ↔ 차트 일치)
- **CHART_CONFIRM**: RS 높고 차트 구조도 건강 → 이중 확증
- **CHART_DIVERGES**: RS 높지만 차트는 과열/상투 의심 → 재검토
- **CHART_NEUTRAL**: RS 중립 / 차트 혼조

### 9. PM 관찰 메모 (선택, 수동 추가)
[PM이 직접 관찰한 내용을 여기에 덧붙임. 자동 생성 아님.]

상태 판정 알고리즘

def classify_card_state(signals):
    """
    signals: dict with keys
      - above_ma20, above_ma50, above_weekly_ma10 (bool)
      - broke_ma20_recent5d, broke_ma50_recent5d (bool)
      - volume_shrunk (bool)
      - prior_10d_return (float)
      - theme_state (ACTIVE/PAUSE/PULLBACK/WARNING/BROKEN)
      - new_leader_break_pct (float, 0~1)
    """
    # EXIT 조건
    if (not signals['above_ma50']) and (not signals['above_weekly_ma10']) \
       and signals['volume_shrunk'] \
       and signals['new_leader_break_pct'] >= 0.5:
        return 'EXIT'
    if signals['theme_state'] == 'BROKEN':
        return 'EXIT'

    # CAUTION 조건
    weak_count = sum([
        not signals['above_ma20'],
        not signals['above_ma50'],
        not signals['above_weekly_ma10'],
    ])
    if weak_count >= 2 and signals['volume_shrunk']:
        return 'CAUTION'
    if signals['theme_state'] == 'WARNING':
        return 'CAUTION'

    # SWEET_SPOT 조건
    if signals['above_ma20'] and signals['above_ma50'] \
       and signals['above_weekly_ma10'] \
       and not signals['volume_shrunk'] \
       and (signals['prior_10d_return'] or 0) < 40 \
       and signals['theme_state'] in ('ACTIVE', 'PULLBACK'):
        # PULLBACK은 조정 후 재진입 기회
        return 'SWEET_SPOT'

    return 'HOLD'

등급과 상태의 관계

등급 의미 가능한 상태
S 대장주 (Rank 1 + Leading + 정배열 + 과열아님) SWEET_SPOT / HOLD
A 준대장 (Rank 2~3 + Leading + 과열아님) SWEET_SPOT / HOLD / CAUTION
B+ 후발주 감지 (예측 밖 → 실제 Top3 진입) HOLD / CAUTION (먼저 붕괴 가능)
B 일반 주도주 (Rank 4~5) HOLD / CAUTION
C 과열 + Weakening CAUTION / EXIT
D 50일선 이탈 + Lagging EXIT 전용

등급은 발견일+최종일 기준 "누가 주도 후보인가" 판별. 상태는 "지금 어느 자리인가" 판별. 둘은 다른 축.


출력 파일 경로

data/leader_cards/
├── YYYY-MM-DD/
│   ├── _index.md                       # 25개 카드 목록 + 상태별 필터
│   ├── 건설_대우건설.md                 # 테마_종목명.md
│   ├── 건설_GS건설.md
│   ├── 광통신_빛과전자.md
│   └── ...

자동 갱신 주기

  • 일일 (장마감 후 POST_MARKET 오케스트레이터에서 실행)
  • 주간 (토/일 WEEKEND에서 재확인, 주봉 지표 반영)
  • 수동 재생성: scripts/generate_leader_cards.py --as-of YYYY-MM-DD