{
  "snapshot_id": "20260416T171330_kis_68944660-01",
  "report_date": "2026-04-16",
  "account_value_krw": 11704310,
  "recommended_cash_after_now_krw": 4000010,
  "recommended_cash_after_triggered_krw": 4000010,
  "market_regime": "constructive_but_selective",
  "actions": [
    {
      "canonical_ticker": "000660.KS",
      "display_name": "SK하이닉스",
      "priority": 1,
      "confidence": 0.69,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0987,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0987,
      "trigger_conditions": [
        "1100000 위 종가 안착과 거래량 확장, 다음 거래일 재이탈 방어가 확인되면 소규모 초기 진입 검토",
        "1000000-1020000 눌림에서 10 EMA 부근 매수세와 장중 수요 개선이 확인되면 선호 진입 검토",
        "10 EMA 1019152 부근 종가 이탈 후 회복 실패 시 신규 매수 중단",
        "1000000 하회와 거래량 확대 시 기존 노출 일부 감축 검토",
        "940000-950000 지지 구간 테스트 시 중기 thesis 유지 여부와 강한 감축 여부 결정",
        "다음 실적 또는 IR에서 HBM 믹스, 메모리 가격, CAPEX, 재고, 매출채권, 자유현금흐름 확인",
        "RSI 70 근접 또는 초과와 MACD 히스토그램 둔화가 동시에 나타나면 차익 보호 검토",
        "HBM 수요와 AI 서버 메모리 주문이 시장 기대보다 강하게 유지되는 경우",
        "DRAM 및 NAND 가격 상승이 다음 보고 기간까지 이어지는 경우",
        "향후 IR 또는 실적 코멘트에서 고마진 제품 믹스, HBM 수요 가시성, 가격 결정력이 확인되는 경우",
        "SK hynix 고유 가이던스와 삼성전자 메모리 사이클 읽기를 바탕으로 추가 이익 추정치 상향이 나오는 경우",
        "KRX 대형 반도체로 자금 유입이 지속되고 글로벌 기술주 위험선호가 유지되는 경우",
        "1100000 위 종가 안착, 거래량 확장, 다음 거래일 지지 방어가 동시에 나타나는 경우",
        "000660.KS가 1100000 부근에서 재차 거절된 뒤 1000000을 지키지 못하는 경우",
        "940000-950000의 50 SMA 및 VWMA 지지 구간을 지속적으로 이탈하는 경우",
        "HBM 출하, 가격, 마진 코멘트가 높아진 기대에 미달하는 경우",
        "CAPEX 확대가 충분한 수요 가시성 없이 자유현금흐름을 압박하는 경우",
        "재고, 매출채권, 비경상 항목이 악화되어 이익의 질을 훼손하는 경우",
        "미국 ITC, 수출통제, 지정학 리스크가 매출 또는 밸류에이션에 실질적 부담으로 확대되는 경우",
        "RSI가 70에 접근하거나 초과하는 동시에 MACD 히스토그램이 둔화되어 상승 탄력이 약해지는 경우"
      ],
      "rationale": "Highest priority on a triggered basis because thesis strength and timing readiness are the best in this batch, but it remains a hold/watch only. Add only after confirmed breakout above 1100000 with volume and next-day support, or a disciplined pullback near 1000000-1020000.",
      "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.144,
        "timing_now": 0.168,
        "timing_triggered": 0.42,
        "score_now": 0.0664,
        "score_triggered": 0.191
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.42,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_wait_for_confirmation",
        "resistance_near_1100000",
        "high_volatility_atr_beta",
        "breakout_or_pullback_trigger_needed",
        "held_position_hold_not_add_now",
        "risk_levels_defined",
        "highest_triggered_score",
        "best_timing_readiness_in_batch",
        "held_position_hold_now",
        "breakout_or_pullback_confirmation_required",
        "high_volatility",
        "high_fallback_count"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "005930.KS",
      "display_name": "삼성전자",
      "priority": 2,
      "confidence": 0.72,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.1115,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.1115,
      "trigger_conditions": [
        "215500 위 종가 안착 여부와 돌파일 거래량의 질",
        "219000~223000 저항권에서 매물 흡수 또는 실패 여부",
        "200000~201000 및 10일 EMA 부근 눌림 지지 확인",
        "192800 VWMA 종가 이탈 여부",
        "186975 50일선 종가 이탈 여부",
        "2026-04-09 하락 거래량 42320839주 이후 거래량 재유입 여부",
        "메모리 가격, HBM 수주, 파운드리 신규 수주, 재고 회전 관련 다음 실적 코멘트",
        "OpenDART 지분 변동 공시의 규모와 사유",
        "외국인 순매수 지속 여부와 KOSPI 기술주 수급",
        "005930.KS가 215500 위에서 종가 안착하고 최근 평균 이상 거래량을 동반",
        "219000~223000 매물대를 강한 거래량으로 흡수하고 52주 고점권 재돌파 확인",
        "AI 메모리, HBM, DRAM 가격 강세가 다음 실적 가시성으로 연결",
        "영업이익률 20%대 유지와 FCF 개선 지속",
        "HBM 점유율, 파운드리 수주, 첨단 공정 경쟁력 개선 증거 확인",
        "외국인 순매수 재유입과 KOSPI 기술주 위험선호 회복",
        "005930.KS가 186975 50일선 아래로 종가 이탈",
        "다음 실적에서 2025-12-31 분기 영업이익 20.07조 KRW 수준이 지속 가능하지 않다는 증거 확인",
        "재고 증가가 출하 둔화 또는 메모리 가격 약세로 연결",
        "TSMC 및 SK하이닉스 대비 HBM, 파운드리, 첨단공정 경쟁력 격차 확대",
        "외국인 순매도 심화와 미국 기술주 조정이 동시에 발생",
        "AI 반도체 기대와 목표주가 상향 뉴스가 실적 개선 없이 선반영으로 끝남"
      ],
      "rationale": "Core large-cap semiconductor exposure with strong confidence and balance sheet support, but resistance near 215500 and incomplete volume confirmation keep it behind SK hynix. Existing holding is acceptable; fresh adds should wait for breakout quality or a supported pullback.",
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.66,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.144,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0621,
        "score_triggered": 0.1803
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_wait_state",
        "developing_setup",
        "near_resistance",
        "volume_confirmation_missing",
        "conditional_add_only",
        "same_day_intraday_missing",
        "held_position_hold_now",
        "core_large_cap_exposure",
        "strong_confidence",
        "sector_concentration_risk",
        "intraday_validation_missing",
        "high_fallback_count"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "278470.KS",
      "display_name": "에이피알",
      "priority": 3,
      "confidence": 0.72,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0354,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0354,
      "trigger_conditions": [
        "KRW 407,500-413,000 위 회복 또는 유지와 함께 거래량이 414,029주를 의미 있게 넘고 가능하면 868,166주에 근접하는지 확인",
        "KRW 413,000-417,000 위 고거래량 종가 안착 및 후속 거래일 지지 여부 확인",
        "KRW 386,000-399,500 눌림에서 가격 붕괴 없이 반등하고 RSI가 과열권에서 식으며 거래량이 회복되는지 확인",
        "Q1 공시 또는 실적 자료에서 해외 성장, 비용 통제, 재고 회전, FCF 품질이 동시에 확인되는지 확인",
        "관세 환급의 규모, 시점, 회계 처리에 대한 뉴스 또는 공시 확인",
        "Q1 실적에서 북미와 서유럽 매출 성장, 안정적 또는 개선된 영업이익률, 양호한 FCF 전환이 동시에 확인되는 경우",
        "Coachella, celebrity-driven Medicube 노출, 성수동 플래그십 외국인 수요가 일회성 화제가 아니라 반복 구매와 브랜드 자산으로 연결된다는 증거",
        "US reciprocal tariff refund의 규모, 시점, 회계 처리가 확인되어 현금흐름 또는 해외 수익성 우려를 완화하는 경우",
        "KRW 413,000-417,000 52주 고점 구간을 거래량 증가와 함께 돌파하고 후속 안착하는 경우",
        "재고 회전과 자유현금흐름이 해외 확장 과정에서도 유지되는 경우",
        "278470.KS가 KRW 386,000 아래로 종가 이탈하고 거래량이 증가해 돌파 실패를 확인하는 경우",
        "KRW 371,500 부근 10일 EMA를 지속적으로 하회하고 MACD가 약화되는 경우",
        "Q1에서 매출은 성장하지만 판매비, 플랫폼 비용, 재고, 사후관리 비용 때문에 마진이 압박받는 경우",
        "재고가 매출 성장률을 초과해 다시 증가하거나 할인 판매와 판촉비 증가로 이어지는 경우",
        "긍정 뉴스에도 주가가 반복적으로 약세를 보이며 기대 선반영 또는 차익실현 압력이 확인되는 경우"
      ],
      "rationale": "Ranks ahead of the smaller semiconductor equipment name to reduce sector concentration and because profitability, ROE, FCF, and global growth optionality are strong. However, price is extended versus moving averages and volume confirmation is weak, so it remains wait-only pending breakout, pullback support, or Q1 quality confirmation.",
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.62,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.132,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0564,
        "score_triggered": 0.166
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "timing_confirmation_incomplete",
        "extended_price_vs_moving_averages",
        "weak_volume_confirmation",
        "high_volatility_atr",
        "held_position_hold_not_add",
        "explicit_breakout_and_pullback_triggers",
        "event_confirmation_pending",
        "data_quality_limitations",
        "non_semiconductor_diversifier",
        "strong_profitability",
        "held_position_hold_now",
        "highest_fallback_count"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "064400.KS",
      "display_name": "LG CNS",
      "priority": 4,
      "confidence": 0.68,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0115,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0115,
      "trigger_conditions": [
        "KRW 66,600 이상 종가와 최근 평균 이상 거래량이 동시에 확인되는지 점검한다.",
        "KRW 64,600 부근으로 눌린 뒤 여러 세션 동안 지지되어 저항이 지지로 전환되는지 확인한다.",
        "MACD가 0선을 상향 돌파하고 MACD 히스토그램 양수가 유지되는지 관찰한다.",
        "RSI가 상승하되 KRW 66,600 또는 KRW 68,000-69,000 저항대에서 70에 너무 빠르게 접근하지 않는지 확인한다.",
        "IR에서 AI, 물류 로봇, 스마트팩토리, 클라우드, 데이터센터 capex, backlog, 마진, 현금전환에 대한 구체 수치가 제시되는지 확인한다.",
        "OpenDART 공시에서 주요주주 변화, lock-up 위험, 물량 부담, 물질 계약이 명확해지는지 추적한다.",
        "064400.KS가 KRW 66,600 이상으로 종가 돌파하고 거래량이 최근 평균을 웃돌면 회복이 KRW 68,000-69,000으로 확장될 가능성이 커진다.",
        "실적 공시와 IR에서 AI, 클라우드, 스마트팩토리, 물류 자동화, 로봇, 데이터센터 관련 수주, 매출 전환, 마진 방어, 현금전환이 확인되면 중기 OVERWEIGHT 근거가 강화된다.",
        "MODEX 2026 냉동 물류 로봇 공개가 실제 주문 또는 글로벌 자동화 파이프라인으로 이어지면 산업 AI 확장성이 재평가될 수 있다.",
        "Dio AI 업무협약, Korean Air 관련 스마트팩토리 협력, Skilled AI 생태계 확대가 대기업 고객 기반의 산업 AI 수요로 연결되면 성장 서사가 강화된다.",
        "예상 PER 12.52배, 배당수익률 2.82%, ROE 17.34%, 현금 및 단기투자 약 KRW 1.68tn은 성장 옵션 대비 밸류에이션과 재무 완충력을 뒷받침한다.",
        "064400.KS가 KRW 62,000 아래로 종가 이탈해 단기 회복 구조가 깨지는 경우.",
        "KRW 66,600 돌파 시도가 실패하고 KRW 64,600 아래로 되밀려 50일 SMA 회복이 false breakout으로 확인되는 경우.",
        "실적 공시나 IR에서 AI, 로봇, 스마트팩토리, 클라우드, 데이터센터의 수주 전환이나 매출 인식이 부족하고 마진 압박이 확인되는 경우.",
        "매출채권 증가, 운전자본 악화, 약한 영업현금흐름으로 이익의 현금전환 품질이 훼손되는 경우.",
        "주요주주, lock-up, 잠재 매물 부담이 기관 수요로 흡수되지 못하고 가격을 압박하는 경우."
      ],
      "rationale": "Constructive AI, cloud, smart-factory thesis with valuation and balance sheet support, but setup is still developing just below 66600 resistance. Small existing exposure can be held, while adds require a confirmed close above resistance or multi-session support near 64600.",
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.62,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.108,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.056,
        "score_triggered": 0.1649
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "developing_setup",
        "breakout_not_confirmed",
        "volume_confirmation_required",
        "intraday_validation_missing",
        "resistance_nearby",
        "support_retest_alternative",
        "fundamental_confirmation_pending",
        "risk_levels_defined",
        "non_semiconductor_diversifier",
        "small_position_hold_now",
        "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.68,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0249,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0249,
      "trigger_conditions": [
        "316000-323000 위 종가 돌파와 898476주를 명확히 웃도는 거래량 확대",
        "286000-280000까지의 조정 후 지지 확인, 거래량 개선, 부정적 주문 뉴스 부재",
        "271000 이탈, 특히 260000 하향 이탈 시 위험 축소 신호",
        "확정 돌파 이후 333500 재시험 여부를 통한 모멘텀 검증",
        "IR, 공시, 뉴스에서 HBM4/HBM5 준비, 주문 잔고, 고객 확장이 확인되는 경우",
        "분기 실적에서 2025-12-31 둔화 이후 매출 재가속과 높은 영업이익률 유지가 확인되는 경우",
        "042700.KS의 HBM TC 본더 수요 확대와 HBM4/HBM5 장비 로드맵 확인",
        "신규 수주, 고객사 설비투자 가속, AI/HBM 패키징 투자와 연결된 실적 추정치 상향",
        "2026-04-10 IR 이후 주문 가시성, 고객 확대, 차세대 장비 준비에 대한 구체적 후속 확인",
        "316000-323000을 거래량 동반 종가 돌파해 333500 고점 재시험 가능성이 열리는 경우",
        "한국 HBM 공급망 핵심주에 대한 반도체 섹터 위험선호와 기관 및 ETF 수급 지속",
        "042700.KS가 260000 아래로 종가 이탈하고 260000-271000 지지대를 회복하지 못하는 경우",
        "다음 실적에서 2025-12-31 둔화 이후 매출 재가속 없이 부진이 이어지는 경우",
        "성장률 또는 마진 가정 하향으로 forward PER 프리미엄이 압축되는 경우",
        "Hanwha Semitech 등 경쟁사가 TC 본더 점유율, 가격 결정력, 핵심 고객 확보에서 가시적 진전을 보이는 경우",
        "HBM 설비투자 시점 지연, 고객 주문 지연, 또는 HBM 집중 서사가 부정적 심리로 전환되는 경우"
      ],
      "rationale": "HBM equipment thesis is attractive, but this is the most concentrated and volatile semiconductor-adjacent incremental idea in the list. Breakout is unconfirmed, trigger quality is the lowest among the batch, and beta/ATR argue for keeping it last until support or volume-backed resistance clearance is proven.",
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.56,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.132,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0574,
        "score_triggered": 0.1685
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_thesis_but_wait",
        "breakout_unconfirmed",
        "support_confirmation_needed",
        "volume_confirmation_missing",
        "existing_position_hold",
        "high_volatility_requires_small_size",
        "data_quality_flags_present",
        "semiconductor_concentration_risk",
        "lowest_trigger_quality",
        "high_fallback_count"
      ],
      "review_required": true,
      "trigger_type": "watch_only",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "012450.KS",
      "display_name": "한화에어로스페이스",
      "priority": 6,
      "confidence": 0.67,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.1298,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.1298,
      "trigger_conditions": [
        "1,559,000 위 거래량 동반 일봉 종가 확인 시 ADD 검토",
        "1,477,000을 지키는 조정, RSI 50 이상, MACD 히스토그램 안정화 확인 시 STARTER 검토",
        "1,427,000 부근 거래량가중평균 재시험에서 명확한 수요와 악재성 공시 부재 확인 시 단계적 진입 검토",
        "실적 발표와 기업설명회에서 마진 회복, 수주잔고 품질, 지속 가능한 현금창출 확인",
        "공급계약의 계약금액, 마진 구조, 납기, 통화 조건 후속 공시 확인",
        "1,341,000 아래 일봉 종가 발생 시 포트폴리오 태세 하향 검토",
        "2026-04-10 단일판매·공급계약 공시가 수주와 매출 가시성을 높였으며, 계약 규모·마진·납기·통화 조건 확인이 추가 상승 촉매가 될 수 있음",
        "2026-04-15에 공지된 실적 발표와 기업설명회에서 수주잔고의 질, 마진 회복, 지속 가능한 현금창출, 가이던스가 확인될 가능성",
        "1,530,000-1,559,000 저항권을 거래량 동반 일봉 종가로 돌파할 경우 기술적 재가속 확인",
        "K9/K9MH 해외 포병 조달 진전 또는 미국 현지화 속도 개선이 방산 성장 프리미엄을 높일 가능성",
        "기관 위험 선호와 KOSPI 강세가 대형 방산 주도주로의 자금 유입을 지속시킬 가능성",
        "1,477,000 방어 실패 후 1,427,000 부근 거래량가중평균으로 약세가 이어지는 경우",
        "1,341,000 부근 50일 단순이동평균 아래 일봉 종가로 중기 추세가 훼손되는 경우",
        "매출 성장에도 영업이익률 압박이 지속되는 실적 발표",
        "계약 공시의 경제성이 낮거나 납기 지연, 불리한 운전자본 조건, 약한 환위험 방어가 확인되는 경우",
        "미국 포병 시장에서 경쟁사가 현지화, 생산 준비, 조달 신뢰도에서 materially 앞선다는 증거가 강화되는 경우",
        "시장 위험 선호 반전 또는 지정학적 방산 프리미엄 축소로 밸류에이션 압축이 발생하는 경우"
      ],
      "rationale": "Medium-term thesis is constructive for Hanwha Aerospace and existing exposure can be held, but immediate add timing is not confirmed. Price remains above key moving averages and the portfolio stance is bullish/overweight, yet the action is explicitly WAIT because shares are near the 1,530,000-1,559,000 resistance zone with fading volume and softening MACD histogram. Actionability depends on a volume-backed daily close above 1,559,000 or a controlled pullback that holds 1,477,000-1,427,000 with demand confirmation.",
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "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.055,
        "score_triggered": 0.1625
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "held_position_core_hold",
        "wait_for_breakout_confirmation",
        "resistance_nearby",
        "volume_confirmation_missing",
        "momentum_softening",
        "explicit_risk_levels_defined",
        "event_confirmation_pending",
        "intraday_snapshot_missing"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "095340.KS",
      "display_name": "ISC",
      "priority": 7,
      "confidence": 0.67,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0379,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0379,
      "trigger_conditions": [
        "216,500원 방어 후 higher low 형성 여부",
        "239,000원 이상 일봉 종가 회복과 MACD 히스토그램 개선 동시 발생 여부",
        "248,000-250,000원 거래량 동반 회복 여부",
        "203,000원 근처 또는 그 아래 종가 발생 시 리스크 축소 필요 여부",
        "외국인·기관 수급이 순매수 누적으로 전환되는지 여부",
        "다음 실적 또는 공시에서 매출채권, 재고자산, 잉여현금흐름, 영업이익률 지속성이 확인되는지 여부",
        "공매도 과열 이후 가격 회복 시 숏커버링성 수급이 붙는지 여부",
        "095340.KS가 239,000원 위에서 일봉 종가를 회복하고 MACD 히스토그램이 중립 방향으로 개선됨",
        "248,000-250,000원 구간을 거래량과 함께 돌파해 VWMA 부근 매물대를 회복함",
        "AI 및 고성능 반도체 투자 사이클이 테스트 소켓 수요를 지속적으로 지지함",
        "다음 분기에도 매출 성장과 약 30.4% 수준의 높은 영업이익률이 유지됨",
        "Mirae Asset의 1,077,159주 지분 확대 이후 추가 장기성 기관 수요가 확인됨",
        "외국인·기관 수급이 혼재 국면에서 일관된 순매수로 전환됨",
        "IR 또는 공시를 통해 고객, 생산능력, 수요, 이익 가시성이 개선됨",
        "095340.KS가 203,000원 부근 50일 SMA 아래에서 종가를 형성함",
        "216,500원 지지선이 무너지고 반등 시도가 10일 EMA 아래에서 계속 실패함",
        "MACD 히스토그램 악화와 VWMA 하회가 지속되어 대량거래 이후 분배 가능성이 커짐",
        "영업이익률이 최근 30.4% 수준에서 materially 하락함",
        "매출 성장이 둔화되는 동시에 매출채권과 재고자산이 매출보다 빠르게 증가함",
        "공매도 압력, 외국인 순매도, 기관 차익실현이 긍정적 업황 뉴스에도 계속됨"
      ],
      "rationale": "Medium-term thesis is constructive for held ISC exposure due to revenue growth, high operating margin, net cash balance sheet, and institutional stake accumulation, but timing is not actionable yet. Current recommendation is HOLD/WAIT, with adds only after support above KRW 216,500, a daily close above KRW 239,000 with MACD improvement, and higher-quality confirmation on a volume-backed reclaim of KRW 248,000-250,000.",
      "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.76,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.108,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.055,
        "score_triggered": 0.1625
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_fundamental_thesis",
        "entry_action_wait",
        "technical_confirmation_missing",
        "explicit_breakout_levels_defined",
        "momentum_still_negative",
        "elevated_volatility_requires_scaled_sizing",
        "held_position_hold_not_add",
        "risk_levels_defined"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "034020.KS",
      "display_name": "두산에너빌리티",
      "priority": 8,
      "confidence": 0.64,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.1231,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.1231,
      "trigger_conditions": [
        "매수 가능 돌파: 034020.KS가 105,700원 위로 종가 마감하고 거래량이 5,470,474주 이상 유지되는지 확인",
        "추가 확인: 108,250원 위에서 최소 하루 이상 안착하고 후속 매수가 110,000-112,100원 방향으로 이어지는지 확인",
        "눌림 진입: 99,800-98,500원 구간에서 지지가 확인되고 반등 거래량과 장중 수급이 개선되는지 확인",
        "경고 신호: RSI가 60을 넘었는데도 105,700-108,250 저항 아래에서 정체되는지 확인",
        "기본 점검: 1Q26 영업이익, 순이익률, 이자비용, 영업현금흐름, 순차입금, 수주잔고와 에너빌리티 부문 성장 내용을 확인",
        "034020.KS 1Q26 실적이 매출 4조 1,511억원, 영업이익 2,105억원 기대에 부합하고 마진 개선을 확인하는 경우",
        "원전, SMR, 가스터빈, 전력 인프라 수주가 계약 규모, 마진 품질, 납기와 함께 구체적으로 공시되는 경우",
        "105,700원 위 종가와 5,470,474주 이상 거래량이 동반되고, 108,250원 위 안착으로 110,000-112,100원 재시험 가능성이 열리는 경우",
        "2025-12-31 운전자본 효과 이후에도 영업현금흐름과 자유현금흐름이 반복되고 순차입금 감소가 이어지는 경우",
        "2026-04-13 자기주식 취득 정정 공시가 실질적으로 주주친화적이라는 점이 확인되는 경우",
        "034020.KS가 98,500원 아래로 종가 이탈한 뒤 50일 SMA를 빠르게 회복하지 못하는 경우",
        "96,600원 이탈로 4월 반등 구조가 훼손되는 경우",
        "1Q26 실제 실적이 긍정적 전망을 밑돌거나 순이익률, 이자비용, 현금 전환율에서 품질이 약한 경우",
        "원전·SMR 서사가 기대에 머물고 실제 수주, 수주잔고 품질, 마진 가시성으로 연결되지 않는 경우",
        "KOSPI 또는 글로벌 원전·인프라 관련주의 위험회피 전환으로 테마 멀티플 압축이 발생하는 경우"
      ],
      "rationale": "Medium-term thesis is constructive for held 034020.KS, supported by price above key moving averages, positive MACD turn, expanded rebound volume, and expected 1Q26 earnings/catalysts tied to nuclear, SMR, gas turbine, and power infrastructure. Timing is not actionable now because the stated action is WAIT, price is near 105,700-108,250 resistance, volatility is high, and add exposure requires confirmation through a close above 105,700 with at least 5,470,474 shares or a successful pullback hold near 99,800-98,500.",
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.74,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.096,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0514,
        "score_triggered": 0.1535
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_trigger_defined",
        "resistance_nearby",
        "volume_confirmation_required",
        "pullback_support_alternative",
        "high_volatility_position_sizing",
        "fundamental_confirmation_pending",
        "intraday_snapshot_missing"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "058470.KQ",
      "display_name": "리노공업",
      "priority": 9,
      "confidence": 0.67,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0197,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0197,
      "trigger_conditions": [
        "058470.KQ의 116800 상회 일봉 종가와 최근 평균을 뚜렷하게 웃도는 거래량",
        "가격 강세와 함께 RSI가 60 위로 회복",
        "110000-106000 구간으로 조정될 때 매도 거래량이 감소하고 이후 더 강한 거래량으로 반등",
        "조정 이후 거래량가중이동평균과 10일 지수이동평균 위에서 종가 유지",
        "반도체 테스트 수요와 연결된 회사별 공시 또는 애널리스트 추정치 상향",
        "다음 실적에서 매출 안정화, 마진 회복력, 잉여현금흐름 품질 확인",
        "058470.KQ가 116800 위에서 평균 이상 거래량을 동반해 일봉 종가를 형성",
        "돌파 이후 120000, 127000 저항권을 향한 후속 상승과 거래량 확장",
        "다음 실적에서 2025-06 이후 둔화된 매출과 영업이익의 안정화 또는 재가속 확인",
        "construction-in-progress가 약 79.3 billion KRW에서 129.5 billion KRW로 증가한 점과 순유형자산 증가가 실제 가동률 및 매출 성장으로 연결되는 증거",
        "테스트 소켓 수요, 주요 고객, 목표가 상향, 자사주, 주주환원 개선 등 회사별 뉴스",
        "AI, 5G, 고성능 컴퓨팅, 첨단 패키징 관련 반도체 테스트 수요의 지속",
        "106000 아래 종가 이탈과 거래량 확대",
        "106000 이탈 이후 100000 지지 실패",
        "다음 분기에도 매출과 영업이익 감소가 이어지고 회복 신호가 부재",
        "마진 압박으로 프리미엄 밸류에이션 논리가 약화",
        "강한 시장 환경에서도 058470.KQ의 상대 약세가 지속",
        "고객 수요 둔화, 부정적 공시, 증설 투자 수익성 훼손을 시사하는 증거"
      ],
      "rationale": "Quality and medium-term trend remain constructive for held 리노공업, but the current setup is still developing. The plan explicitly avoids new buying inside the 111000-116800 range and requires confirmation via a volume-backed close above 116800 or a controlled 106000-110000 pullback with improving volume 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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "HOLD",
        "trigger_quality": 0.72,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.108,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0505,
        "score_triggered": 0.1512
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.38,
      "reason_codes": [
        "held_position_core_hold",
        "constructive_quality_trend",
        "entry_wait_not_confirmed",
        "requires_volume_breakout_above_116800",
        "support_rebound_alternative_106000_110000",
        "high_valuation_earnings_deceleration",
        "thin_company_specific_catalysts",
        "intraday_snapshot_missing"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "005380.KS",
      "display_name": "현대차",
      "priority": 10,
      "confidence": 0.65,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0456,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0456,
      "trigger_conditions": [
        "510000 위 종가와 867909주 대비 뚜렷한 거래량 확장",
        "489000-490000 눌림 지지 후 재상승 및 10일 EMA 489760.70 회복 유지",
        "RSI 55-60 상향 돌파와 MACD의 지속 개선",
        "525000 돌파 후 즉시 되밀리지 않고 안착하는지 여부",
        "482500 VWMA 또는 478500 최근 저점 하회 여부",
        "2026년 실적·가이던스에서 HEV 수익성, 마진 회복, 자유현금흐름 개선이 확인되는지 여부",
        "자율주행, Motional, AI·로보틱스 관련 뉴스가 단순 기대가 아니라 상업적 성과나 규제 진전으로 연결되는지 여부",
        "공시 부재가 해소되고 주주환원 확대 또는 애널리스트 추정치 상향이 확인되는지 여부",
        "005380.KS가 510000 위에서 종가를 형성하고 867909주 대비 명확한 거래량 확장을 동반해 50일 SMA 508176.94 저항 돌파를 확인하는 경우",
        "489000-490000 부근 눌림 이후 10일 EMA 489760.70 주변을 지키고 재상승하며 손익비가 개선되는 경우",
        "RSI가 55-60을 상향 돌파하고 MACD가 -3992.84에서 계속 개선되어 양전환 가능성을 높이는 경우",
        "HEV 수요와 믹스 개선이 2026년 실적 또는 가이던스에서 마진 회복으로 확인되는 경우",
        "US IONIQ 5 자율주행 확대, Motional 실행, DEEPX 협력 등 자율주행·AI·로보틱스 선택권이 상업적 또는 규제 진전으로 구체화되는 경우",
        "주주환원 확대, 애널리스트 추정치 상향, 대형 수출주·자동차 업종으로의 수급 회전이 valuation 재평가를 강화하는 경우",
        "005380.KS가 508000-510000 저항에서 반복적으로 실패하고 478000-482000 아래로 종가가 내려가는 경우",
        "482500 VWMA 부근 이탈 후 반등하지 못해 최근 매수 기반의 신뢰가 훼손되는 경우",
        "445500-450000 지지가 깨져 445500 저점 이후의 회복 구조가 무너지는 경우",
        "다음 실적에서 2025년 4분기 수준의 낮은 영업이익률과 현금흐름 부진이 지속되는 경우",
        "자유현금흐름이 운전자본 부담과 capex로 계속 깊은 음수를 기록해 주주환원 및 리레이팅 논리가 약화되는 경우",
        "Tesla 등 US EV·자율주행 경쟁, 가격 압박, 보조금·관세·환율 변화가 현대차의 점유율이나 수익성을 훼손하는 경우",
        "최근 상승이 공시·실적·판매·추정치 개선 없이 뉴스와 위험선호에만 의존한 것으로 드러나 거래량 후속 확인이 실패하는 경우"
      ],
      "rationale": "Hyundai Motor has a constructive medium-term overweight thesis and existing holding can be maintained, but the action timing is not confirmed. Price has recovered above short-term averages with improving RSI and MACD, yet it is still capped at the 508000-510000 resistance and 50-day SMA area, with volume not strong enough to validate a decisive trend change. New/additional buying should wait for a close above 510000 with clear volume expansion, or a controlled pullback and recovery around 489000-490000.",
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.62,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.34,
        "thesis_multiplier": 1.096,
        "timing_now": 0.136,
        "timing_triggered": 0.34,
        "score_now": 0.0419,
        "score_triggered": 0.1298
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.34,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "volume_confirmation_missing",
        "resistance_zone_active",
        "support_retest_alternative",
        "held_position_hold_not_add",
        "fundamental_quality_mixed",
        "intraday_snapshot_missing",
        "disclosure_confirmation_absent"
      ],
      "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.6,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0202,
      "action_if_triggered": "WATCH_TRIGGER",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0202,
      "trigger_conditions": [
        "116700~117500원에서 지지 반응이 나오고 거래량이 최근 410000주대를 의미 있게 상회한다.",
        "122000원 종가 회복과 거래량 확장이 동시에 나타나 starter 이후 추가 tranche 근거를 제공한다.",
        "124500원 최근 고점권에서 돌파 또는 거래량 없는 재차 실패가 확인된다.",
        "114300원 종가 이탈 여부를 첫 번째 downside confirmation으로 확인한다.",
        "112000~112200원 종가 이탈 여부를 중기 thesis deterioration 신호로 확인한다.",
        "정제마진, 국제유가, KRW 환율, 재고평가손익, capex funding, 다음 실적 발표 일정 업데이트를 추적한다.",
        "010950.KS가 122000원을 종가 기준으로 회복하고 거래량이 확장되며 124500원 재시험 구간에 진입한다.",
        "다음 분기 실적에서 2025-12-31의 영업이익 3719억 원, 순이익 2251억 원, 자유현금흐름 6134억 원 회복이 반복 가능하다는 점이 확인된다.",
        "정제마진, 국제유가 안정, KRW 조건이 재고평가손실 없이 이익 회복을 지지한다.",
        "단기차입금과 순차입금이 대규모 capex에도 추가로 감소한다.",
        "브랜드 수상, MY S-OIL, 품질 보증, 주유소 서비스 경쟁력이 내수 소매 방어력을 보조한다.",
        "010950.KS가 114300원 아래로 종가 이탈한 뒤 빠르게 회복하지 못한다.",
        "010950.KS가 112000~112200원 50일선 지지권 아래로 종가 이탈한다.",
        "다음 분기에서 영업손실 재발, 자유현금흐름 약화, 또는 운전자본 효과 반전이 확인된다.",
        "총차입금, 순차입금, 단기차입금이 capex 부담으로 다시 materially 증가한다.",
        "유가 하락이 재고평가손실과 에너지 섹터 자금 유출로 이어지고 정제마진 개선이 이를 상쇄하지 못한다."
      ],
      "rationale": "Constructive medium-term recovery thesis for held S-Oil position, supported by improved profitability, free cash flow, cash balance, lower short-term borrowings, and price still above key moving averages. Timing is not actionable yet because entry_action is WAIT, setup is DEVELOPING, price has pulled back from 122000 to 117500, momentum and volume have softened, and same-day/intraday confirmation is missing. Current posture is hold/watch; adding requires support confirmation near 116700-117500 with stronger volume or a close above 122000 on expanding volume.",
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.52,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.36,
        "thesis_multiplier": 1.072,
        "timing_now": 0.144,
        "timing_triggered": 0.36,
        "score_now": 0.0396,
        "score_triggered": 0.1241
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.36,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_signal",
        "developing_setup",
        "price_volume_confirmation_missing",
        "same_day_snapshot_missing",
        "support_or_breakout_trigger_required",
        "held_position_hold_not_add",
        "fundamental_recovery_needs_validation",
        "leverage_liquidity_risk"
      ],
      "review_required": true,
      "trigger_type": "watch_only",
      "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": 10,
      "HOLD": 1
    },
    "stance_distribution": {
      "BULLISH": 11
    },
    "entry_action_distribution": {
      "WAIT": 11
    },
    "avg_confidence": 0.6718181818181819,
    "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
  }
}