{
  "snapshot_id": "20260416T035821_kis_68944660-01",
  "report_date": "2026-04-16",
  "account_value_krw": 7579610,
  "recommended_cash_after_now_krw": 1000010,
  "recommended_cash_after_triggered_krw": 1000010,
  "market_regime": "constructive_but_selective",
  "actions": [
    {
      "canonical_ticker": "012450.KS",
      "display_name": "한화에어로스페이스",
      "priority": 1,
      "confidence": 0.72,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.1991,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.1991,
      "trigger_conditions": [
        "1,559,000원 이상 일봉 종가 돌파와 최근 4월 대비 거래량 확대",
        "1,470,000~1,500,000원 구간의 지지 확인, 거래량 안정, 반전 신호 발생",
        "MACD 히스토그램 재확대와 2026-04-15 이후 상대 약세 해소",
        "RSI가 극단적 과열권으로 치솟지 않은 상태에서 신고가 또는 저항 돌파 시도",
        "2026-04-30 IR에서 수출 마진, 수주잔고, 생산능력, 운전자본, 현금 전환 관련 긍정적 확인",
        "현대위아 또는 현대로템 방산 공급망 재편이 K9 부품 공급, 납기, 원가 구조에 미치는 영향 업데이트",
        "012450.KS 2026-04-10 단일판매·공급계약 공시로 수주 및 매출 가시성 개선",
        "2026-04-30 1분기 실적 및 IR에서 수출 마진, 수주잔고, 납기, 생산능력, 운전자본, 현금 전환 확인",
        "NATO 30개국 대사단 대상 K9 및 천무 수출 기회 관련 긍정적 뉴스 흐름",
        "한미 방산 공급망 협력 논의에서 012450.KS의 전략적 역할 부각",
        "1,559,000원 이상 종가 돌파와 최근 4월 대비 거래량 확대에 따른 추세 재가속 확인",
        "방산 협력 내러티브가 profitable orders 또는 수주잔고 증가로 연결되지 않는 경우",
        "2026-04-30 실적에서 매출 성장에도 수출 마진 또는 영업이익률이 악화되는 경우",
        "자유현금흐름 개선이 반복 가능한 현금창출력이 아니라 일시적 운전자본 효과로 드러나는 경우",
        "현대위아 또는 현대로템 방산 공급망 재편이 K9 핵심 부품 납기, 원가, 가격 협상력에 부정적 영향을 주는 경우",
        "1,337,000원 부근 50일 SMA를 종가로 이탈해 중기 추세와 밸류에이션 신뢰가 훼손되는 경우"
      ],
      "rationale": "Highest current and triggered score in the batch with a constructive defense thesis, existing holding support, and defined breakout/pullback triggers, but no add is justified until resistance clears or support is confirmed. High fallback count and pending 2026-04-30 earnings/IR keep review required.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.68,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.42,
        "thesis_multiplier": 1.132,
        "timing_now": 0.168,
        "timing_triggered": 0.42,
        "score_now": 0.0689,
        "score_triggered": 0.1972
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.42,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "resistance_not_cleared",
        "breakout_trigger_required",
        "volume_confirmation_required",
        "earnings_event_pending",
        "momentum_slowing",
        "relative_weakness_present",
        "support_pullback_alternative",
        "risk_invalidation_defined",
        "top_relative_score",
        "high_fallback_count",
        "cash_buffer_breach"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "000660.KS",
      "display_name": "SK하이닉스",
      "priority": 2,
      "confidence": 0.74,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.1499,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.1499,
      "trigger_conditions": [
        "1,030,000~1,040,000원 재시험 후 가격이 지지되고 거래량이 안정되면 25~33% starter 검토",
        "1,100,000~1,136,000원 위에서 추가 종가 안착, 건강한 거래량, 외국인 매수 지속 중 복수 조건이 확인되면 제한적 모멘텀 진입 검토",
        "RSI가 70에 접근하거나 70을 넘고 거래량 폭증 대비 가격 전진이 둔화되면 신규 매수 보류 및 일부 전술 물량 보호",
        "가격이 1,100,000원 위에 머무는 동안 ATR과 일중 변동성이 축소되면 진입 품질 개선으로 판단",
        "다음 실적, IR, 메모리 가격 지표, HBM 주문 코멘터리, 재고, 매출채권, CAPEX 가이던스 점검",
        "외국인 보유율과 000660.KS 일별 순매수·순매도 집중도 추적",
        "000660.KS가 1,100,000원 위에서 추가 종가 안착을 보이고 거래량이 과열이 아닌 건강한 형태로 유지되는 경우",
        "HBM, DRAM, NAND 가격 강세와 AI 수요로 영업이익 전망이 추가 상향되는 경우",
        "외국인 보유율이 56.42% 부근 또는 그 이상에서 유지되고 일별 순매수가 이어지는 경우",
        "실적 발표나 IR에서 HBM 수요, 가격, 마진, 고객 가시성에 대한 긍정적 코멘터리가 확인되는 경우",
        "ASML EUV 장비 반입과 신규 팹 램프가 고부가 제품 생산능력 확대와 연결되는 경우",
        "000660.KS가 1,030,000~1,040,000원 아래로 종가 이탈한 뒤 빠르게 회복하지 못하는 경우",
        "10일 EMA 부근으로 제시된 약 993,000원을 결정적으로 하회하는 경우",
        "VWMA와 50일 SMA 지지로 제시된 934,000~935,000원 부근을 이탈하는 경우",
        "메모리 가격, HBM 수요, 고객 주문 데이터가 현재의 고마진 이익 기대를 뒷받침하지 못하는 경우",
        "최근 삼성전자와 000660.KS에 집중됐던 외국인 순매수가 순매도로 전환되는 경우",
        "ITC 특허, 수출통제, 지정학 이벤트가 공급망·고객·CAPEX 회수 가정을 훼손하는 경우"
      ],
      "rationale": "Strong AI/HBM and earnings thesis with high confidence, but recent record-high chase risk, elevated volatility, and need for support retest or renewed breakout confirmation make it a hold/watch rather than an immediate add. Ranked below 012450.KS because timing readiness is weaker and semiconductor exposure is already represented elsewhere.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.68,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.156,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0649,
        "score_triggered": 0.1872
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "held_position_hold_now",
        "record_high_chase_risk",
        "support_retest_required",
        "breakout_confirmation_required",
        "volatility_elevated",
        "foreign_flow_confirmation_needed",
        "overheat_risk_monitoring",
        "strong_medium_term_thesis",
        "sector_concentration_risk",
        "high_fallback_count"
      ],
      "review_required": true,
      "trigger_type": "watch_only",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "278470.KS",
      "display_name": "에이피알",
      "priority": 3,
      "confidence": 0.74,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0545,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0545,
      "trigger_conditions": [
        "278470.KS가 396,000 위에서 평균 대비 의미 있게 높은 거래량을 동반",
        "278470.KS가 408,500을 돌파하고 종가까지 유지",
        "371,464~358,589 구간 조정에서 거래량이 줄고 가격이 안정",
        "371,464 이탈이 거래량 증가와 동반되는지 여부",
        "358,589 하향 이탈 시 거래량 확대 여부",
        "공식 공시나 실적에서 미국 매출 기여, 마진 추세, 재고 품질, 관세 환급 세부 사항 확인",
        "외국인 매수세가 둔화 또는 순매도로 전환되는지 여부",
        "278470.KS가 396,000을 평균 대비 뚜렷한 거래량으로 회복",
        "278470.KS가 408,500을 종가로 돌파하고 이후 유지",
        "외국인 순매수가 지속되며 글로벌 K뷰티 성장주로 재평가 지속",
        "Coachella, Medicube, TikTok Shop, Lisa 노출이 미국 매출 성장과 반복 구매로 연결된다는 증거",
        "관세 환급 규모와 시점이 공식 확인되어 현금흐름 또는 이익에 긍정적으로 반영",
        "다음 실적에서 매출 성장, 영업이익률 방어, 강한 잉여현금흐름, 재고 품질이 확인",
        "278470.KS가 358,589 VWMA를 상승 거래량과 함께 종가 이탈",
        "가격이 315,442 50일선으로 빠르게 접근하거나 하향 이탈",
        "재고 또는 매출채권 증가가 할인, 마진 압박, 현금전환 악화로 이어짐",
        "미국 확장 관련 마케팅 비용은 증가하지만 반복 판매나 채널 수익성이 확인되지 않음",
        "관세 환급 기대가 부인되거나, 크게 지연되거나, 이익 영향이 미미한 것으로 확인",
        "RSI가 70을 넘은 뒤 가격이 신고가를 만들지 못해 모멘텀 둔화가 나타남"
      ],
      "rationale": "Quality growth profile, margins, FCF, and low leverage make it the best non-semiconductor diversifier in the list, but it is extended near highs and requires either volume-backed recovery above 396000, close-and-hold above 408500, or a controlled support pullback. Lower data coverage and higher fallback count cap priority.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 5,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.68,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.144,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.059,
        "score_triggered": 0.1724
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_thesis_wait_entry",
        "explicit_breakout_levels",
        "volume_confirmation_required",
        "extended_near_highs",
        "support_pullback_alternative",
        "event_confirmation_pending",
        "held_position_hold_now",
        "diversification_benefit",
        "lower_data_coverage",
        "high_fallback_count"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "005930.KS",
      "display_name": "삼성전자",
      "priority": 4,
      "confidence": 0.72,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.1114,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.1114,
      "trigger_conditions": [
        "216752 위 종가와 거래량 23672078 초과가 동시에 발생하면 돌파형 시작 포지션을 검토한다.",
        "198600-200000 구간으로 조정받되 비정상적인 매도 거래량 없이 지지가 확인되면 단계적 누적을 검토한다.",
        "MACD 히스토그램이 재확대되고 RSI가 60 위로 올라서면 모멘텀 확인 신호로 본다.",
        "005930.KS와 한국 반도체 대형주에서 외국인 순매수가 지속되는지 확인한다.",
        "OpenDART의 주요 주주 공시, 대형 계약, 설비투자, 수주 관련 후속 공시를 확인한다.",
        "005930.KS가 216752 위에서 종가를 형성하고 거래량이 23672078을 넘으며 RSI가 60을 회복하는 경우.",
        "Tesla AI5 관련 뉴스가 시제품 수준을 넘어 규모, 수율, 마진, 장기 계약 근거로 확인되는 경우.",
        "DRAM, HBM 가격과 출하 데이터가 메모리 업사이클 강화를 입증하는 경우.",
        "외국인 매수세가 005930.KS와 한국 반도체 대형주에서 지속되어 최근 집중 유입이 단기 과열이 아님을 확인하는 경우.",
        "AI TV와 Galaxy S26 Ultra 등 기기 전략이 프리미엄 제품 마진 방어 또는 개선으로 연결되는 경우.",
        "005930.KS가 185969 아래에서 종가를 형성하고 거래량이 30000000을 초과하는 경우.",
        "210500-216752 저항 돌파에 재차 실패한 뒤 198600-200000 지지대를 이탈하는 경우.",
        "AI 반도체 수요, 설비투자 기대, 메모리 가격 전망이 약화되어 AI 사이클 재평가 논리가 훼손되는 경우.",
        "Samsung Electronics가 SK hynix 대비 HBM, TSMC 대비 첨단 파운드리에서 수익성 개선 없이 구조적 열위를 지속한다는 증거가 강화되는 경우.",
        "재고 52.64조 원, 운전자본 부담, R&D 10.86조 원, 설비투자 12.76조 원이 잉여현금흐름을 다시 압박하는 경우."
      ],
      "rationale": "Large-cap semiconductor exposure with improving earnings, FCF, and balance-sheet support, but timing readiness is low and the 210500-216752 resistance zone has not been cleared. It ranks ahead of 042700.KS on balance-sheet quality and lower valuation risk, but below 278470.KS due to semiconductor concentration and weaker entry readiness.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.7,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.34,
        "thesis_multiplier": 1.132,
        "timing_now": 0.136,
        "timing_triggered": 0.34,
        "score_now": 0.0538,
        "score_triggered": 0.1596
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.34,
      "reason_codes": [
        "bullish_thesis_wait_entry",
        "unconfirmed_breakout",
        "specific_price_volume_rsi_trigger",
        "elevated_atr_volatility",
        "support_pullback_alternative",
        "held_position_hold_not_add",
        "data_coverage_partial",
        "large_cap_quality_bias",
        "sector_concentration_risk",
        "timing_readiness_low",
        "high_fallback_count"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "042700.KS",
      "display_name": "한미반도체",
      "priority": 5,
      "confidence": 0.66,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0389,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0389,
      "trigger_conditions": [
        "290500 위 종가 돌파, 최근 평균 이상 거래량, MACD histogram의 양전환 또는 뚜렷한 개선이 동시에 나타나는지 확인한다.",
        "RSI가 60 이상으로 회복하고 가격이 VWMA 약 270018 및 10-day EMA 약 276423 위에서 유지되는지 확인한다.",
        "270000-276500 지지 확인과 반도체 섹터 모멘텀 유지가 함께 나타나면 제한적 starter 가능성을 검토한다.",
        "286000-290500 저항에서 저거래량 실패가 반복되면 270000 또는 259000 지지 테스트까지 대기한다.",
        "OpenDART 또는 IR에서 HBM 주문, 마진, capacity utilization, 매출 전환에 관한 구체적 근거가 나오는지 확인한다.",
        "042700.KS가 290500 위로 거래량 동반 종가 돌파하고 300000 및 312500-315000 구간으로 후속 흐름을 보이는 경우.",
        "HBM TC-bonder, HBM4/HBM5 장비 수요와 관련한 주문 공시, IR 발언, 고객사 투자 가시성 강화.",
        "SK Hynix, Samsung Electronics 및 AI/HBM 설비투자 기대가 이끄는 반도체 섹터 강세 지속.",
        "큰 공매도 잔고가 가격 강세와 거래량 증가로 숏커버링 압력으로 전환되는 경우.",
        "분기 실적에서 매출 재가속, 영업마진 회복력, construction-in-progress의 주문·매출 전환, 현금창출 지속이 확인되는 경우.",
        "042700.KS가 259000-260000을 상승 거래량과 함께 하향 돌파하는 경우.",
        "HBM 고객사 capex, 주문 시점, 장비 채택 기대가 지연되거나 하향 조정되는 경우.",
        "최근 매출이 166.2 billion KRW에서 83.0 billion KRW로 감소한 흐름이 일시적이지 않고, 영업이익 67.8 billion KRW에서 27.6 billion KRW로 낮아진 압박이 지속되는 경우.",
        "고마진 구조나 ROE가 약화되어 높은 valuation을 정당화하기 어려워지는 경우.",
        "외국인·기관 매도와 공매도 부담이 지속되는 가운데 286000-290500 저항에서 반복적으로 실패하는 경우."
      ],
      "rationale": "HBM equipment thesis remains constructive, but mixed momentum, negative MACD histogram, neutral RSI, resistance near 286000-290500, high valuation, beta, and short-interest risk make it the most conservative placement among the provided tickers. Add only after a volume-backed breakout or confirmed 270000-276500 support.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.74,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.108,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.054,
        "score_triggered": 0.1601
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_thesis_waiting_for_confirmation",
        "breakout_trigger_defined",
        "volume_confirmation_required",
        "momentum_not_confirmed",
        "support_entry_secondary",
        "held_position_core_hold",
        "valuation_and_short_interest_risk",
        "high_beta_risk",
        "sector_concentration_risk",
        "high_fallback_count"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "034020.KS",
      "display_name": "두산에너빌리티",
      "priority": 6,
      "confidence": 0.63,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.11,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.11,
      "trigger_conditions": [
        "101,700 KRW 종가 돌파와 거래량 확대: 신규는 STARTER, 기존 보유자는 ADD 검토로 entry_action 상향",
        "100,000 KRW 위 안착과 RSI 55-60 진입: 모멘텀 회복 확인",
        "103,500 KRW 돌파 후 유지: 2차 분할 진입 가능성 점검",
        "106,300 KRW 또는 108,800-109,600 KRW 접근: 추격보다 일부 이익 보호와 밸류에이션 재평가",
        "97,500 KRW 종가 이탈: 일부 축소와 setup_quality 하향 검토",
        "95,000 KRW 종가 이탈: 방어적 전환 또는 EXIT 검토",
        "034020.KS에 직접 연결되는 SMR, 원전 수주, 정책 milestone 확인: rating을 OVERWEIGHT 또는 BUY로 재평가",
        "다음 실적에서 반복 가능한 자유현금흐름과 마진 개선 확인: confidence 상향",
        "034020.KS가 101,700 KRW를 거래량 증가와 함께 종가 기준 돌파하고 100,000 KRW 위를 유지한다",
        "약 2,011억 KRW로 언급된 034020.KS 외국인 순매수가 지속되고 KOSPI 위험선호가 유지된다",
        "향후 약 두 달 내 SMR 1호기 부지 선정 및 관련 프로젝트 세부 내용이 034020.KS에 우호적으로 구체화된다",
        "원전 및 에너지 인프라 수주 파이프라인이나 IR 메시지가 매출 가시성을 높인다",
        "다음 분기 실적에서 영업이익, 순이익, 자유현금흐름 개선이 운전자본 효과를 넘어 반복 가능하다는 증거를 제공한다",
        "자기주식취득결정 정정 공시의 세부 내용이 규모 축소나 지연이 아니라 주주환원 지지를 확인한다",
        "034020.KS가 97,500 KRW를 종가 기준 이탈하고 빠르게 회복하지 못한다",
        "95,000 KRW 아래 종가로 반등 실패가 확인되어 91,800 KRW 재시험 가능성이 커진다",
        "외국인 매수가 지속 매도로 반전하고 KOSPI 대형주 위험선호가 약화된다",
        "SMR 부지 선정, 정책 지원, 원전 수주 전환이 지연되거나 기대에 미치지 못한다",
        "예상 PER 96.9배가 순이익률 0.497%, 영업이익률 3.372%, ROE 1.733% 개선으로 정당화되지 않는다",
        "2025년 12월 분기 자유현금흐름 개선이 운전자본 변화, 매입채무 증가, 재고 감소 중심의 일회성 효과로 확인되고 순이자손익 -861억 KRW 및 이자비용 부담이 재부각된다"
      ],
      "rationale": "Constructive HOLD for an existing 034020.KS position: long-term trend, foreign inflows, nuclear/SMR narrative, cash-flow rebound, and lower net debt support the thesis. Timing is not ready for add/new buy because price remains boxed near 97,500-101,700 KRW, momentum is only early/neutral, and confirmation requires a close above 101,700 KRW with volume, sustained 100,000 KRW support, and continued foreign buying.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "HOLD",
        "trigger_quality": 0.72,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.084,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0498,
        "score_triggered": 0.1495
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_hold_existing_position",
        "entry_action_wait",
        "breakout_required_above_101700",
        "volume_and_foreign_flow_confirmation_needed",
        "neutral_momentum_rsi",
        "support_invalidation_defined",
        "high_valuation_and_fcf_quality_risk"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "058470.KQ",
      "display_name": "리노공업",
      "priority": 7,
      "confidence": 0.66,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0298,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0298,
      "trigger_conditions": [
        "120,000 이상 종가와 1.0M주 이상 거래량이 동시에 발생한다.",
        "106,000-108,000 구간에서 종가 지지와 거래량 안정이 확인된다.",
        "돌파 후 다음 거래일에 115,000-120,000 구간을 지지한다.",
        "MACD가 양수권을 유지하고 RSI가 60 이상으로 회복하되 볼린저 상단에서 과도하게 이격되지 않는다.",
        "외국인 순매수 지속과 기관 매도 둔화가 함께 나타난다.",
        "다음 실적 또는 가이던스에서 매출 재가속과 높은 영업이익률 지속이 확인된다.",
        "058470.KQ가 120,000 이상에서 종가 마감하고 거래량이 1.0M주 이상으로 회복해 115,000-120,000 매물 흡수를 확인한다.",
        "돌파 다음 거래일에 115,000-120,000 구간을 재지지해 단순 장중 돌파가 아님을 확인한다.",
        "외국인 순매수가 지속되고 기관 매도 압력이 둔화된다.",
        "반도체 테스트 소켓 수요와 고객사 투자 사이클 회복 증거가 확인된다.",
        "다음 실적에서 2025-12 매출 둔화가 일시적이었고 영업이익률 30%대가 유지됨을 확인한다.",
        "KRW 안정과 KOSDAQ 반도체 위험선호가 이어진다.",
        "058470.KQ가 106,000 아래에서 종가 마감해 50일 SMA 인근 지지와 반등 구조가 약화된다.",
        "가격이 96,000-98,000으로 재진입하거나 이탈해 3월 저점대 재시험 국면으로 돌아간다.",
        "115,000-120,000 저항에서 거래량 둔화와 함께 재차 거절되고 기관 매도가 강화된다.",
        "2025-12 매출 둔화 이후에도 매출 재가속 증거가 나오지 않는다.",
        "건설중인자산 증가가 매출 성장으로 연결되지 않아 자본효율 저하 우려가 커진다.",
        "신규 공시나 실적에서 마진 압박, 고객 주문 약화, 증설 투자 수익성 저하가 확인된다."
      ],
      "rationale": "Medium-term thesis is constructive for held 058470.KQ due to price above key moving averages, improving MACD, strong margins, net cash, and cash generation. Timing is not yet actionable for adding because resistance at 115,000-120,000 remains unresolved, recent volume has faded, and institutional selling pressure is still a concern. Maintain hold status and wait for either a volume-backed close above 120,000 with retest support, or a controlled pullback hold near 106,000-108,000 before adding.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 5,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.74,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.108,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0496,
        "score_triggered": 0.1489
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_thesis_waiting_for_confirmation",
        "resistance_not_cleared",
        "volume_confirmation_missing",
        "held_position_hold_not_add",
        "specific_breakout_trigger_defined",
        "support_pullback_trigger_defined",
        "institutional_selling_overhang",
        "valuation_risk_requires_fundamental_confirmation"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "064400.KS",
      "display_name": "LG CNS",
      "priority": 8,
      "confidence": 0.66,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0173,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0173,
      "trigger_conditions": [
        "거래량을 동반한 63,600 상향 종가와 이후 50일선 약 64,650 위 안착.",
        "200일선 약 65,700 및 66,600 저항 구간을 거래량 증가와 함께 지속적으로 회복.",
        "60,000-61,400 재시험에서 지지가 확인되고 거래량이 안정되며 RSI가 50 위를 유지.",
        "AI·자동화 프로젝트의 계약 금액, 고객명, 납품 일정, 매출 인식 시점이 공시 또는 신뢰도 높은 보도로 확인.",
        "다음 분기 현금흐름에서 매출채권 회수, 영업현금흐름, 잉여현금흐름, 리스부채 통제가 개선.",
        "2026-04-09부터 2026-04-16 사이 공시 부재로 남아 있는 확인 공백이 신규 공시로 해소.",
        "064400.KS가 Mobile Shuttle의 북미 콜드체인 또는 물류 자동화 고객 수주를 확인한다.",
        "DIO AI 전환 MOU가 범위, 계약 규모, 반복 매출 가능성이 공개된 정식 프로젝트로 전환된다.",
        "모듈형 AI 데이터센터 제품이 상업 고객, 공공기관, 기업 배치 사례를 확보한다.",
        "064400.KS가 거래량 증가와 함께 63,600을 돌파한 뒤 64,650, 65,700-66,600을 순차적으로 회복한다.",
        "다음 실적에서 매출 성장, 마진 방어, 잉여현금흐름 개선, 매출채권 회수 개선이 함께 확인된다.",
        "IPO 재원 중 약 3,400억 KRW의 M&A 여력이 AI, 클라우드, 자동화 역량 강화로 연결된다.",
        "064400.KS가 60,000 아래로 종가 이탈한 뒤 빠르게 회복하지 못한다.",
        "064400.KS가 57,100-55,800을 하향 돌파해 54,900 부근 하단 지지 재시험 위험을 키운다.",
        "AI, 로보틱스, 데이터센터, AX 관련 뉴스가 계약, 고객명, 매출 파이프라인으로 전환되지 못한다.",
        "매출채권, 운전자본 부담, 투자현금유출, 리스부채가 악화되어 이익의 질과 현금전환을 훼손한다.",
        "Samsung SDS 등 경쟁사의 대규모 투자와 가격 경쟁이 064400.KS의 수주, 마진, 데이터센터·AI 인프라 확장을 제한한다.",
        "MACD 개선이 가격의 64,650 및 65,700 회복으로 이어지지 못하고 단순 반등에 그친다."
      ],
      "rationale": "LG CNS has a constructive medium-term recovery thesis supported by improving MACD/RSI, reasonable valuation, dividend yield, ROE, and AI/automation/data-center optionality. Timing is not actionable yet because price remains below the 50-day and 200-day moving averages and the plan explicitly calls for WAIT until either support at 60,000-61,400 is confirmed or a volume-backed close above 63,600 followed by acceptance above 64,650 occurs.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 5,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "HOLD",
        "trigger_quality": 0.74,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.108,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0496,
        "score_triggered": 0.1489
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "price_below_key_moving_averages",
        "breakout_requires_volume_confirmation",
        "support_retest_alternative_trigger",
        "specific_risk_invalidation_levels",
        "event_catalysts_unconfirmed",
        "reduced_position_sizing_due_volatility"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "095340.KS",
      "display_name": "ISC",
      "priority": 9,
      "confidence": 0.68,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0592,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0592,
      "trigger_conditions": [
        "KRW 239,800 위 종가 회복은 소규모 탐색 진입 검토 신호로 본다.",
        "KRW 248,900-250,000 위 종가 안착과 거래량 증가는 고확신 추가 진입 신호로 본다.",
        "변동성 확대 중에도 KRW 213,500을 종가 기준으로 지키는지 확인한다.",
        "거래량가중평균선 위에서 가격이 안정되는지 관찰한다.",
        "공매도 과열 후속 변화와 외국인·기관 순매수 전환 여부를 추적한다.",
        "다음 분기 매출채권, 재고, 영업이익률, 자유현금흐름을 통해 성장의 질을 점검한다.",
        "095340.KS가 KRW 239,800 위에서 종가를 형성해 단기 지수이동평균선 회복을 확인한다.",
        "095340.KS가 KRW 248,900-250,000 위로 거래량을 동반해 안착하고 RSI 50 회복 및 MACD 히스토그램 개선이 함께 나타난다.",
        "AI 서버, HBM, 첨단 패키징, 반도체 테스트 수요가 실적 기대를 계속 높인다.",
        "미래에셋자산운용 보유 증가와 상장지수펀드 편입 효과가 일회성 수급이 아니라 지속적인 기관 수요로 이어진다.",
        "다음 분기 실적에서 매출 성장, 약 30% 영업이익률, 건전한 자유현금흐름과 현금 전환이 확인된다.",
        "공매도 과열 이후 긍정적 실적 또는 업종 뉴스가 나오며 숏커버가 발생한다.",
        "095340.KS가 KRW 213,500 아래에서 종가를 형성하고 빠르게 회복하지 못한다.",
        "KRW 203,218 부근 50일 이동평균선을 지속적으로 이탈해 조정이 추세 훼손으로 바뀐다.",
        "RSI가 50 아래에 머물고 MACD 히스토그램이 계속 악화되는 가운데 반등이 KRW 239,800 아래에서 반복적으로 실패한다.",
        "다음 실적에서 매출 둔화, 영업이익률의 의미 있는 하락, 자유현금흐름 약화, 매출채권 또는 재고 부담 확대가 확인된다.",
        "AI/HBM 반도체 투자심리가 약화되거나 상장지수펀드 및 기관 수급이 지속 매도로 전환된다.",
        "대량거래 이후 가격이 거래량가중평균선 아래에 계속 머물러 분배 물량 부담이 확인된다."
      ],
      "rationale": "Medium-term thesis is constructive for ISC based on improving revenue, roughly 30% operating margin, net cash balance sheet, recent free cash flow improvement, and AI/HBM semiconductor test demand. Timing is not ready for immediate add because price remains below the 10-day EMA near KRW 239,800 and VWMA/resistance near KRW 248,900-250,000, RSI is still below 50, and MACD momentum has deteriorated. Existing holding can be maintained, but new/add exposure requires breakout confirmation above KRW 239,800 first and stronger confirmation above KRW 248,900-250,000 with volume and momentum improvement.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.72,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.34,
        "thesis_multiplier": 1.108,
        "timing_now": 0.136,
        "timing_triggered": 0.34,
        "score_now": 0.049,
        "score_triggered": 0.1476
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.34,
      "reason_codes": [
        "constructive_fundamental_thesis",
        "entry_action_wait",
        "breakout_confirmation_required",
        "below_short_term_resistance",
        "momentum_not_confirmed",
        "high_volatility_reduced_sizing",
        "held_position_hold_not_add"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "005380.KS",
      "display_name": "현대차",
      "priority": 10,
      "confidence": 0.6,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.067,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.067,
      "trigger_conditions": [
        "005380.KS 일간 종가 510000 상회 및 거래량 778907주를 명확히 웃도는지 확인",
        "478500-482000 지지 재시험 후 장중 회복과 VWMA 481439.36 위 종가 회복 여부 확인",
        "510000 돌파 후 525000 상회 또는 접근 시 추가 매수 가능성 점검",
        "510000 돌파 후 종가 재이탈과 거래량 둔화가 동시에 발생하는지 확인",
        "465000 종가 이탈 시 위험 축소, 445500 종가 이탈 시 전술 포지션 종료 검토",
        "다음 실적에서 영업이익 안정화, 영업현금흐름 플러스 전환, 운전자본 정상화 여부 확인",
        "노조 협상, 파업 가능성, 미국 EV 경쟁, FX, 관세, 외국인 수급 관련 뉴스 추적",
        "공시 부재가 이어지는 상황에서 뉴스 기반 성장 서사가 실적 증거로 전환되는지 확인",
        "005380.KS 일간 종가가 510000 위로 올라서고 거래량이 778907주를 명확히 웃돌며 50일 SMA 508530.79 회복을 확인하는 경우",
        "510000 돌파 후 525000까지 후속 상승이 나오고 510000이 지지선으로 전환되는 경우",
        "478500-482000 재시험 후 장중 회복과 VWMA 481439.36 위 종가 회복이 확인되는 경우",
        "외국인 지분율 42% 돌파 보도 이후 외국인 순매수와 수급 지지가 지속되는 경우",
        "다음 실적에서 영업이익 안정화, 영업현금흐름 개선, 운전자본 정상화가 확인되는 경우",
        "자율주행, 아이오닉5 로보택시, Boston Dynamics, 피지컬 AI, DEEPX, 수소, EV 전략이 실제 매출·수주·생산·수익성 지표로 연결되는 경우",
        "노사 협상이 큰 생산 차질이나 과도한 임금 비용 부담 없이 마무리되는 경우",
        "005380.KS 종가가 465000 아래로 내려가 4월 반등 구조가 실패하는 경우",
        "005380.KS 종가가 445500 아래로 내려가 2026-03 저점권 이탈과 하락 모멘텀 재개를 확인하는 경우",
        "510000 돌파가 거래량 없이 발생하거나 돌파 직후 종가가 510000 아래로 빠르게 복귀하는 경우",
        "MACD 개선이 꺾이고 가격이 계속 50일 SMA 508530.79 아래에 머무는 경우",
        "2026-04-14 거래량 778907주 수준을 의미 있게 넘지 못한 채 반등만 이어지는 경우",
        "FCF 적자, 운전자본 악화, 순부채 증가가 다음 보고 주기에도 정상화 경로 없이 심화되는 경우",
        "노사 갈등이 생산 차질이나 구조적인 비용 부담 확대로 이어지는 경우",
        "AI·로보틱스·자율주행 관련 뉴스가 매출, 수주, 양산, 수익성 증거로 연결되지 못하는 경우"
      ],
      "rationale": "Constructive medium-term Hyundai Motor thesis, but execution timing is not confirmed. The plan explicitly says to hold and avoid chasing while price remains below the 508000-510000 resistance and 50-day SMA area. Actionability depends on a confirmed daily close above 510000 with materially higher volume, or a successful 478500-482000 support retest with VWMA recovery. Current setup is developing, not ready for immediate add.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 5,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.72,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.072,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0424,
        "score_triggered": 0.131
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_thesis_waiting_for_confirmation",
        "price_below_key_resistance",
        "volume_confirmation_required",
        "clear_breakout_trigger_defined",
        "alternate_support_retest_trigger_defined",
        "held_position_hold_not_add",
        "fundamental_and_labor_risks_cap_size",
        "data_coverage_incomplete"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "010950.KS",
      "display_name": "S-Oil",
      "priority": 11,
      "confidence": 0.61,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.031,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.031,
      "trigger_conditions": [
        "010950.KS 일봉 종가가 120700 위로 올라서고 거래량이 최근 평균보다 증가한다.",
        "124500 위 돌파와 유지로 post-event 공급 흡수를 확인한다.",
        "116500-114000 조정 구간에서 VWMA와 단기 추세가 지지되고 부정적 마진 뉴스가 추가되지 않는다.",
        "010950.KS 기관 수급이 순매수 또는 매도 둔화로 전환된다.",
        "다음 실적 또는 가이던스가 영업이익, 자유현금흐름, capex 관리 가능성을 확인한다.",
        "ATR이 추가로 안정되면서 114000-111800 위험 구간을 침범하지 않는다.",
        "010950.KS가 120700을 종가 기준 회복하고 124500 위로 거래량 확장과 함께 안착한다.",
        "124500 돌파 후 되돌림에서 해당 구간을 지지로 확인해 3월 4일 매물 부담을 흡수한다.",
        "정제마진이 안정 또는 개선되고 4월 15일 유가 충격이 재고손실로 확대되지 않는다.",
        "010950.KS 기관 순매도가 둔화되거나 순매수로 전환된다.",
        "2026 실적 업데이트가 4Q25 영업이익 회복과 자유현금흐름 개선이 반복 가능하다는 점을 확인한다.",
        "국민연금 공시 세부 내용이 지분 축소가 아니라 안정적 또는 증가한 보유를 시사한다.",
        "010950.KS가 120700-124500 저항에서 반복적으로 실패하고 거래량이 약해진다.",
        "114000을 지속적으로 이탈한 뒤 50일 SMA 부근 111800도 훼손한다.",
        "유가 변동성이 재고손실과 제품마진 악화로 연결된다.",
        "capex 초과 또는 부채 부담 증가가 순부채 개선을 상쇄한다.",
        "영업현금흐름 개선이 운전자본 효과에 그쳤다는 증거가 강화된다.",
        "기관 매도와 정제마진 불확실성 중심의 뉴스 흐름이 실적 상향 없이 계속된다."
      ],
      "rationale": "S-Oil has a constructive medium-term hold thesis supported by price above key moving averages, positive momentum, and improved 4Q25 earnings and cash flow, but it is not yet actionable for adding because price remains below the 120700-124500 resistance zone and needs volume-backed confirmation or a supported pullback into 116500-114000.",
      "data_health": {
        "coverage_score": 0.72,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "legacy_rating": "HOLD",
        "trigger_quality": 0.64,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.34,
        "thesis_multiplier": 1.072,
        "timing_now": 0.136,
        "timing_triggered": 0.34,
        "score_now": 0.0412,
        "score_triggered": 0.1281
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.34,
      "reason_codes": [
        "constructive_hold_not_add",
        "breakout_required",
        "resistance_overhead",
        "volume_confirmation_needed",
        "macro_margin_risk",
        "institutional_outflow",
        "high_atr_timing_risk",
        "defined_downside_invalidation"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    }
  ],
  "portfolio_risks": [
    "Wait-heavy constructive batch: WAIT 11/11 with BULLISH 11/11; review entry-action calibration.",
    "구성적이지만 즉시 실행 가능한 후보가 적음"
  ],
  "data_health_summary": {
    "decision_distribution": {
      "OVERWEIGHT": 8,
      "HOLD": 3
    },
    "stance_distribution": {
      "BULLISH": 11
    },
    "entry_action_distribution": {
      "WAIT": 11
    },
    "avg_confidence": 0.6745454545454546,
    "company_news_zero_ratio": 0.0,
    "snapshot_health": "VALID",
    "warning_flags": [
      "Wait-heavy constructive batch: WAIT 11/11 with BULLISH 11/11; review entry-action calibration."
    ],
    "actionable_now_count": 0,
    "triggerable_candidates_count": 0,
    "watch_candidates_count": 0,
    "held_watch_count": 0,
    "review_required_count": 11,
    "rule_only_fallback_count": 0
  }
}