5166750b53
2026-06-21 비판적 리뷰에서 spec/governance YAML이 코드 상태와 어긋난 채로 방치되던 3개 구체적 사례를 발견하고 정정했다. 근본 원인(동기화를 보장하는 장치 없음)에 대응하는 신규 CI 게이트도 함께 추가한다. - spec/aliases.yaml: deprecated alias 17건 제거(활성 참조 0건 확인 후, 2026-06-30 데드라인 전). role: deprecated_redirect인 spec/03_risk_policy.yaml, spec/04_strategy_rules.yaml 2개만 실삭제 — spec/06_exit_policy.yaml은 role: compatibility_index(영구유지 설계)였음을 재확인해 보존 - governance/gas_logic_migration_ledger_v1.yaml: 존재하지 않는 파일을 canonical 구현으로 인용하던 오류 2건 발견·정정, parity 테스트 부재로 GAS 코드 삭제 보류(F12/F13/F14) - spec/13_formula_registry.yaml: OVERHANG_PRESSURE_V1의 "-500000" 절대값 폴백을 avg_volume_5d 비례식으로 교체(EXPERT_PRIOR 등록) - tools/validate_specs.py: validate_spec_code_sync() 신규 — has_code_implementation/ code_path 필드가 있는 spec만 검사(점진적 롤아웃, 기존 PASS 상태 비파괴), 12개 파일 1차 태깅
88 lines
5.4 KiB
YAML
88 lines
5.4 KiB
YAML
meta:
|
||
title: "은퇴자산포트폴리오 — 종목 모델 분할 후보"
|
||
parent_file: "RetirementAssetPortfolio.yaml" # 2026-06-22 WBS-7.11: spec/04_strategy_rules.yaml 삭제로 갱신
|
||
version: "2026-05-16-F10_peg_gate"
|
||
language: "ko-KR"
|
||
timezone: "Asia/Seoul"
|
||
role: "canonical"
|
||
migration_status: "canonical_split_active"
|
||
authority_rule: "이 split 파일이 해당 섹션의 canonical source다. parent_file은 legacy compatibility index다."
|
||
|
||
stock_model:
|
||
pass: ["시총·섹터 대표성", "충분한 거래대금", "실적 개선", "20D 수급 우위", "기대수익비 2:1 이상"]
|
||
reject: ["관리종목·거래정지·유동성 부족", "적자 지속+테마성 급등", "거래대금 폭증 후 장대음봉", "실적 컨센서스 하향", "단일 뉴스만 근거인 상승"]
|
||
# [proposal_91 / 2026-05-16] 코스닥 전용 추가 reject 조건 — 코스닥 구조적 위험 특성 반영
|
||
kosdaq_extra_reject:
|
||
applicable: "코스닥 상장 종목에만 추가 적용. 위 reject 조건과 AND(모두 확인)."
|
||
conditions:
|
||
- "코스닥 상장 후 6개월 미만 — 실적 트랙 레코드 부족, 상장 직후 공모주 매도 물량 리스크"
|
||
- "최근 1년 내 감사의견 비적정 또는 내부회계 관리제도 중요 취약점 보고"
|
||
- "대주주 지분 50% 미만 + 최근 3개월 대주주 2회 이상 연속 매도"
|
||
- "영업이익 흑자 전환 1분기에 불과한 테마 종목 — 2분기 연속 흑자 미확인 시 reject"
|
||
- "유상증자·CB(전환사채)·BW(신주인수권부사채) 발행 후 6개월 이내 — 희석 리스크"
|
||
prohibition:
|
||
- "코스닥 종목에 대해 이 조건 미확인 상태에서 A등급 부여 금지"
|
||
- "테마 뉴스를 근거로 kosdaq_extra_reject 조건 면제 금지"
|
||
|
||
# [proposal_96 / 2026-05-16] 코스닥 밸류에이션 게이트 — PEG 기반 고성장 정당화 여부 판단
|
||
kosdaq_valuation_gate:
|
||
applicable: "코스닥 상장 종목에만 적용. KOSPI 종목은 기존 SS001_VAL_VALUATION 사용."
|
||
purpose: >
|
||
유동성·수급만으로는 한미반도체처럼 PER 40~60배 구간 진입 리스크를 잡지 못한다.
|
||
EPS 성장률로 PER을 나눈 PEG로 '비싸지만 정당한가'를 판단한다.
|
||
primary_metric:
|
||
name: "PEG (Price/Earnings to Growth)"
|
||
formula_ref: "spec/13_formula_registry.yaml:formula_registry.formulas.PEG_SCORE_V1"
|
||
formula: "ForwardPER / EPS_Growth_3Y_CAGR_pct"
|
||
unit_note: "EPS_Growth_3Y_CAGR_pct는 % 단위 숫자 (30% 성장이면 30). 소수점 아님."
|
||
gate_rules:
|
||
pass: {condition: "PEG <= 1.5", action: "밸류에이션 OK. 진입 수량 정상 산출."}
|
||
caution: {condition: "1.5 < PEG <= 2.5", action: "진입 수량 70%로 자동 축소. 보고서에 [PEG_CAUTION] 표기 필수."}
|
||
reject: {condition: "PEG > 2.5", action: "코스닥 진입 금지. 수량 0주."}
|
||
fallback:
|
||
trigger: "EPS_Growth_3Y_CAGR_pct 미확인 또는 데이터 누락"
|
||
rules:
|
||
- {if: "ForwardPER <= 섹터중앙값 × 2.0", result: "PASS"}
|
||
- {if: "섹터중앙값 × 2.0 < ForwardPER <= 섹터중앙값 × 3.0", result: "CAUTION (70% 수량)"}
|
||
- {if: "ForwardPER > 섹터중앙값 × 3.0", result: "REJECT"}
|
||
prohibition: "EPS 성장률 추정·보간으로 PEG 계산 금지 — 확정 컨센서스 데이터 없으면 fallback만 허용"
|
||
examples:
|
||
hanmi_semiconductor:
|
||
scenario: "ForwardPER=45, EPS_Growth_3Y=25%"
|
||
peg: 1.8
|
||
result: "CAUTION → 진입 수량 70%. full 진입 금지."
|
||
high_peg_reject:
|
||
scenario: "ForwardPER=60, EPS_Growth_3Y=10%"
|
||
peg: 6.0
|
||
result: "REJECT → 진입 금지."
|
||
growth_justified:
|
||
scenario: "ForwardPER=30, EPS_Growth_3Y=40%"
|
||
peg: 0.75
|
||
result: "PASS → 정상 수량 산출."
|
||
interaction:
|
||
kosdaq_extra_reject: "kosdaq_extra_reject와 AND 적용. 어느 하나 reject이면 진입 금지."
|
||
anti_climax_buy_gate: "PEG CAUTION + anti_climax 신호 2개 → 수량 70%×50%=35%로 중첩 축소."
|
||
scoring: "SS001_VAL_KOSDAQ_PEG 점수(최대 12점)로 전환. spec/08_scoring_rules.yaml 참조."
|
||
prohibition:
|
||
- "코스닥 종목 PEG 미산출 상태에서 A등급 부여 금지"
|
||
- "PEG CAUTION 상태에서 수량 축소 없이 full 진입 금지"
|
||
- "단일 호재 뉴스로 EPS_Growth 상향 추정 후 PEG 개선 처리 금지"
|
||
- "KOSPI 종목에 이 게이트 적용 금지"
|
||
|
||
core_satellite_rule:
|
||
alias_of: "satellite_rule"
|
||
definition: "조건부·소액·관찰 후보. 즉시매수 아님"
|
||
max_count: 3
|
||
max_weight: "총자산 7% 이하"
|
||
required_conditions: # [P127] mandatory 3개 ALL 필수 / optional 4개 중 1개 이상 권장
|
||
mandatory_all_3:
|
||
- 거래대금 증가
|
||
- 외국인/기관 순매수 전환
|
||
- "기대수익비 2:1 이상"
|
||
optional_confirm_any:
|
||
- 섹터 상대강도 개선
|
||
- 실적 추정치 상향
|
||
- "20일선 회복 후 유지 또는 신고가 후 눌림 재지지"
|
||
entry_spike_restriction: "단기 급등(당일 +5% 이상) 직후는 본진입 제외. risk_on 국면도 시범진입만 허용 (tiered_ladder 순서 준수). optional_confirm_any가 아닌 진입 제한 규칙."
|
||
rule: "핵심 데이터 미확인 시 A등급 불가. 첫 돌파는 시범진입만, 확인 전 전량 진입 금지. 강한 장세에서는 시범진입 타이밍을 늦추지 말고 수량만 줄인다."
|