Topic: 종목선정 지표 — 변화·누적 프레임 검증¶
Status: 🔄 진행 중 Started: 2026-06-17 (S352) Owner: PM + 어시스턴트 Close Criteria: discover 선정 + 종가/스윙 종목선정에서 "어떤 종목이 더 높은 확률을 주는가"를, 변화+누적 프레임으로 측정한 지표로 OOS 검증까지 통과해 정리. 단일 스냅샷·단순 좋다/나쁘다 판정이 아닌, 양면(매집/분배·방향성/노이즈) 해석이 들어간 지표 후보 확정.
요약 (5줄 이내)¶
- 왜: 목표가 설정 논의 → 종목선정 확률 지식으로 확장. discover 5축(rs_high·amount·ofm·cat_raw·ea_z)은 "강함"만 보고 "위치/궤적"은 안 봄. 빈 축을 메울 지표 후보를 찾는다.
- 무엇: 종가매매·스윙매매·discover에서 "어떤 종목 선정이 D+N 확률을 높이나"를 검증된 지표로 정리.
- 지금: 1차 스냅샷 백테스트 6종 실행 → PM 교정으로 접근 자체가 기각됨(스냅샷·단면·단순라벨링은 시스템 1번 원칙 위반).
- 다음: 모든 지표를 변화+누적 시계열로 재정의 + 양면 해석(매집/분배, 방향성/노이즈) 내장해 재설계·재검증.
- 지속 검증 주제. 완료 전까지 결론을 KB 정식 문서로 박지 않음.
핵심 원칙 (PM 교정 — 이 토픽의 헌법)¶
이 토픽의 모든 지표는 아래를 위반하면 무효:
- 스냅샷 금지, 변화+누적 필수 (CLAUDE.md·market-interpretation 1번 원칙). 당일 + 5d + 20d + 방향 + 가속/둔화 + 전환여부. "오늘 X" 단일 숫자는 측정으로 인정 안 함.
- 단순 좋다/나쁘다 금지, 양면 동시 고려:
- 거래대금 多 = 신뢰도 상승(매수 받침) 또는 분배(세력→개인 이전). 어느 위치에서·어떤 가격반응과 함께 터졌나로 매집/분배 구분.
- 외인·기관 누적매수 = 무조건 좋음 ❌. 의미는 "이해관계 안 갈리는 소수 → 방향성 일관 확률 높음 → 숨은 알파 의심". 개인은 다수라 상쇄→노이즈. 단 외인 매매엔 알고·LP헤지·차익 노이즈도 섞임 → 방향성 베팅인지 구분 필요. (market-interpretation 스킬: 주체별 선악 라벨링 금지)
- 위치는 점이 아니라 궤적: "오늘 52주 90%"가 아니라 "신고가를 어떻게 갱신해왔나" — 첫 돌파인가/N일째 지속 갱신인가/갱신 간격이 좁아지나 넓어지나. 같은 90%라도 히스토리가 다르면 다른 종목.
- 단일 지표 줄세우기 금지, 결합: 1차 스냅샷 검증에서도 RS 혼자·거래대금 혼자·VP 혼자는 전부 평균 0 근처. RS×테마state 결합에서만 엣지(+1.5%p). 게이트 또는 결합으로.
WBS¶
1.1 1차 스냅샷 백테스트 (🚫 기각 — 접근 결함)¶
- Status: 🚫 기각 (산출물·코드는 보존, 결론은 무효)
- When: 2026-06-17 (S352)
- What: headroom(여백)·range_pos_250·vol_20d·pullback_20·거래대금배율·VP진입조건을 단면 백테스트. 6 스크립트(
scripts/backtest/pos_*.py), 결과data/backtest/pos_*.json. - 결함 (PM 교정): 전부 그날 하루 스냅샷 + 단순 배율/위치 + 단순 좋다/나쁘다 라벨링. 시스템 1번 원칙(변화+누적) 위반. 52주위치는 신고가 갱신 궤적을 못 담아 "첫 돌파"와 "20일째 갱신"을 한 통에 섞음. 거래대금은 매집/분배 양면 미구분. 수급은 양수=가점으로 단순화.
- 그래도 남긴 관찰 (재검증 대상, 결론 아님):
- headroom(매물벽까지 여백)이 스냅샷에서도 단조 → 변화·누적으로 재측정 시 살아남는지 1순위 검증.
- 단일축 무력 / 결합 유효 → 결합 방향은 유지.
- 지지HVN을 가까운 SL로 쓰면 붕괴 → "SL은 넓게"는 양면 무관하게 유효 가능성.
- Output:
scripts/backtest/pos_{feature_trend,mfe_mae,execute_tp,vp_entry_compare,multiaxis,vp_full,sensitivity}.py
1.2 지표 변화·누적 재정의 (⏳ 계획)¶
- Status: ⏳ 계획
- What: 각 후보 지표를 변화+누적 시계열로 재정의.
- 수급: 외인·기관 5d/20d 누적 + 가속도 + 전환(매도→매수). 해석=일관성/방향성(선악 라벨 금지).
- 위치/궤적: 신고가 갱신 일수(최근 20d), 갱신 간격 추세(좁아짐/넓어짐), 첫 돌파 후 경과일.
- 거래대금: 순위 5d 누적·추세(며칠째 상위=매집 후보 / 1일 스파이크=분배·작전 후보) × 그 위치에서의 가격반응.
- Why: 1.1이 스냅샷이라 무효. 시스템 원칙 정합 측정으로 교체.
- Next Dependencies: 1.3
1.3 양면 해석 내장 검증 (⏳ 계획)¶
- Status: ⏳ 계획
- What: 거래대금·수급을 단일 부호가 아니라 위치×가격반응 결합으로 매집/분배 판별 후 forward 검증. "같은 거래대금 3배가 저점/눌림에서 vs 고점에서" 분리.
- Next Dependencies: 1.4
1.4 OOS 검증 + 표본 확대 (⏳ 계획)¶
- Status: ⏳ 계획
- What: train/test 분리. 30분봉 history 3개월 한계 → 일봉 기반 또는 30분봉 추가 수집. 상승편향 시기 외 구간 포함.
- Next Dependencies: 1.5
1.5 discover 통합 + KB 정식화 (⏳ 계획)¶
- Status: ⏳ 계획
- What: 검증 통과 지표를 discover score_compose에 게이트/축으로 통합 설계(PM 승인 후) + KB 정식 문서. 검증 전까지 KB에 결론 박지 않음.
의사결정 로그¶
| 날짜 | 세션 | 결정 | 사유 |
|---|---|---|---|
| 2026-06-17 | S352 | 1차 스냅샷 백테스트 접근 기각 | 스냅샷·단면·단순라벨링이 시스템 변화+누적 원칙 위반 (PM 교정) |
| 2026-06-17 | S352 | 지속 검증 주제로 등록 | 한 번에 결론낼 수 없음. 변화·누적·양면으로 재설계 후 OOS까지 가야 KB 정식화 |
참조¶
관련 코드 (1차, 기각이나 보존):
- scripts/backtest/pos_*.py (7종)
- data/backtest/pos_*.json, data/backtest/_pos_universe.json (45종 표본)
관련 원칙 문서:
- .claude/skills/market-interpretation/SKILL.md (수급 인용 프로토콜·변화+누적·선악 라벨 금지)
- knowledge_base/methods/trading_framework.md (숫자 아닌 상태, 매집/분배)
- scripts/discover/indicators/score_compose.py (현재 5축 — 통합 대상)
관련 토픽:
- topic_discover_pipeline_followups.md (discover 종목선정 — 통합 시 연결)
- topic_discovery_walkforward.md (OOS/워크포워드 검증 방법론)