{
  "snapshot_id": "20260415T043549_kis_68944660-01",
  "report_date": "2026-04-15",
  "account_value_krw": 6152810,
  "recommended_cash_after_now_krw": 10,
  "recommended_cash_after_triggered_krw": 10,
  "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.1793,
      "action_if_triggered": "NONE",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.1793,
      "trigger_conditions": [
        "000660.KS가 968000-970000으로 되돌림을 보인 뒤 종가 기준 방어하고 거래량이 안정",
        "000660.KS가 1096000-1099000 위에서 종가 안착하고 거래량이 2769753주를 명확히 상회하며 가능하면 6709356주에 근접",
        "돌파 후 1096000-1099000을 재시험할 때 지지로 전환되는지 확인",
        "RSI가 과열권으로 접근하는데 가격이 신고가를 만들지 못하면 소진 위험으로 감시",
        "MACD가 지지 재확인 뒤 플러스 영역에서 재확장",
        "Q1 또는 IR 이후 2026 영업이익 추정치가 상향 지속되고 둔화되지 않음",
        "HBM, AI 추론용 메모리, DRAM 및 NAND 가격 관련 뉴스가 실제 실적 기대 상향으로 연결",
        "000660.KS의 Q1 2026 실적이 기록적 이익 기대를 확인하거나 초과",
        "IR 코멘트가 HBM 수요, AI 추론용 메모리 수요, 가격, 마진, capex 규율을 뒷받침",
        "HBM뿐 아니라 DRAM과 NAND 가격 강세가 지속",
        "외국인 매수와 AI 반도체 ETF 유입이 1100000 KRW 돌파 서사 이후에도 유지",
        "1096000-1099000 저항을 종가 기준으로 돌파하고 거래량이 2769753주를 크게 상회하며 가능하면 6709356주에 근접",
        "927000-929000 종가 이탈로 VWMA와 50일 SMA 지지 실패",
        "Q1 실적 또는 가이던스가 높아진 시장 기대에 미달",
        "HBM 또는 차세대 AI 메모리 수요 둔화, 가격 정점, 고객 채택 지연 징후",
        "capex 확대가 향후 공급 과잉이나 마진 압박 신호로 해석되기 시작",
        "US ITC, 수출통제, 중국 관련 반도체 규제가 투자 서사의 중심 위험으로 부상",
        "1096000-1099000 돌파 후 거래량 부진과 함께 저항대 아래로 빠르게 재진입"
      ],
      "rationale": "Highest near-term hold priority because the medium-term AI memory thesis remains strong and the existing position is material but still below single-name limits. No add is justified: timing is unconfirmed, resistance is nearby, volume confirmation is required, and the batch is fully WAIT/NO_TRADE with high fallback count.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "trigger_quality": 0.66,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.132,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0536,
        "score_triggered": 0.1591
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_thesis_waiting_for_confirmation",
        "held_position_hold_not_add",
        "resistance_nearby_volume_fading",
        "breakout_requires_close_and_volume",
        "support_retest_trigger_defined",
        "clear_risk_invalidation_level",
        "near_resistance",
        "volume_confirmation_required",
        "high_fallback_count",
        "cash_buffer_breach_no_new_trade"
      ],
      "review_required": true,
      "trigger_type": "watch_only",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "012450.KS",
      "display_name": "한화에어로스페이스",
      "priority": 2,
      "confidence": 0.69,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.2475,
      "action_if_triggered": "NONE",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.2475,
      "trigger_conditions": [
        "1530000~1550000 위 종가와 최근 4월 수준을 뚜렷하게 넘는 거래량 동반 여부",
        "1459000 부근 10일 EMA에서 낮은 매도 거래량으로 지지되는지 여부",
        "1413000 부근 VWMA가 장중 약세 후에도 종가 기준으로 방어되는지 여부",
        "MACD 히스토그램이 유지 또는 확대되는지, 반대로 가격이 1530000을 회복하지 못한 채 꺾이는지 여부",
        "RSI가 65~70에 접근할 때 가격이 신고가 또는 1655000 전고점권 재시험으로 이어지는지 여부",
        "폴란드·인도네시아 관련 방산 뉴스가 구체적 계약 규모, 일정, 상대방을 포함하는지 여부",
        "1332440 부근 50일선 이탈 또는 ATR이 이미 높은 수준에서 추가 확대되는지 여부",
        "012450.KS의 2026-04-01 및 2026-04-10 공급계약 공시가 구체적 계약금액, 마진, 납기, 원가 조건 측면에서 긍정적으로 확인되는 경우",
        "폴란드 또는 인도네시아 방산 외교 일정이 구체적 주문 규모, 상대방, 일정이 포함된 후속 계약으로 전환되는 경우",
        "다음 실적에서 2025-12 매출 8.42조 KRW 성장과 함께 영업이익률 안정 또는 개선이 확인되는 경우",
        "영업현금흐름 4.13조 KRW와 자유현금흐름 3.20조 KRW 개선이 운전자본 일회성이 아니라 반복 가능한 현금창출력으로 확인되는 경우",
        "1530000~1550000 위에서 최근 4월 수준을 뚜렷하게 넘는 거래량과 MACD 히스토그램 유지 또는 추가 확대가 동반되는 경우",
        "012450.KS가 1332440 부근 50일선을 확대 거래량으로 이탈하는 경우",
        "1413000 부근 VWMA 이탈과 동시에 매도 거래량 증가 및 MACD 히스토그램 약화가 나타나는 경우",
        "신규 공급계약에서 낮은 마진, 납기 지연, 불리한 원가 부담, 수출 승인 불확실성이 확인되는 경우",
        "2025-12 현금흐름 개선이 운전자본 효과에 그치고 이후 재고·매출채권 또는 총부채 부담이 악화되는 경우",
        "추가 유상증자, 불리한 자금조달, 규제 정정, 풍문 해명 공시가 희석 또는 지배구조 우려를 다시 키우는 경우",
        "코스피 강세에도 012450.KS가 반복적으로 상대약세를 보이며 방산 섹터 수급 이탈이 지속되는 경우"
      ],
      "rationale": "Constructive held position with trend, contract, and defense-export support, but it already carries the largest portfolio weight among the candidates. Keep high in the order for monitoring and risk management, while avoiding any increase until breakout or support-retest confirmation improves timing quality.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "trigger_quality": 0.66,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.12,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.053,
        "score_triggered": 0.1574
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_thesis_but_wait",
        "breakout_requires_volume_confirmation",
        "support_retest_alternative_trigger",
        "high_atr_timing_risk",
        "event_details_unconfirmed",
        "held_position_no_new_allocation",
        "large_existing_position",
        "cash_buffer_breach_no_new_trade"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "010950.KS",
      "display_name": "S-Oil",
      "priority": 3,
      "confidence": 0.68,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0387,
      "action_if_triggered": "NONE",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0387,
      "trigger_conditions": [
        "010950.KS가 KRW 124500 위로 일봉 마감하고 거래량이 최근 4월 범위를 명확히 상회하는지 확인",
        "KRW 116000-118000 조정 구간에서 지지되고 RSI가 중립 이상, MACD가 양호하게 유지되는지 확인",
        "Q1 2026 영업이익이 KRW 500bn 기대에 부합하거나 상회하는지 확인",
        "Q1 실적 이후 Q2 정제마진, 재고이익, 운전자본, 순차입금 관련 코멘트 확인",
        "National Pension 또는 다른 기관투자자 지분 변화 확인",
        "ATR이 현 수준에서 축소되어 손절과 포지션 관리가 더 명확해지는지 확인",
        "Q1 2026 영업이익이 KRW 500bn 수준 이상으로 확인되고 전년 대비 흑자 전환이 명확해지는 경우",
        "정제마진과 원유·제품 스프레드가 견조하게 유지되면서 수요 둔화나 정책 부담이 나타나지 않는 경우",
        "National Pension 지분 확대가 저PBR 및 가치 재평가 논리를 계속 지지하는 경우",
        "KRW 124500 상향 돌파가 최근 4월 거래량을 웃도는 거래량과 함께 확인되는 경우",
        "주가가 10일 EMA 약 KRW 116027과 50일 SMA 약 KRW 111480 위에서 안정적으로 유지되는 경우",
        "KRW 116000 일봉 종가 이탈과 MACD 히스토그램 둔화가 함께 나타나는 경우",
        "50일 SMA 부근 KRW 111500을 이탈해 단기 회복 구조가 실패하는 경우",
        "Q1 2026 실적이 KRW 500bn 영업이익 기대를 하회하거나 Q2 마진 약화 가이던스가 제시되는 경우",
        "유가 USD 100 이상 환경이 재고이익보다 수요 파괴, 운전자본 부담, 정책 리스크로 더 크게 작용하는 경우",
        "순차입금, 유동성, 자유현금흐름이 다시 악화되고 대규모 capex 부담이 확대되는 경우"
      ],
      "rationale": "Ranks ahead of lower-readiness growth names because it offers sector diversification and defined turnaround catalysts, with a small existing weight. Still, leverage, refining cyclicality, high ATR, and pending Q1 confirmation argue for HOLD only and no additional exposure.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "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.0514,
        "score_triggered": 0.1535
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_thesis_waiting_for_confirmation",
        "breakout_trigger_defined_not_met",
        "pullback_support_trigger_defined_not_met",
        "high_atr_post_spike_volatility",
        "held_position_hold_not_add",
        "fundamental_event_confirmation_pending",
        "clear_risk_invalidation_levels",
        "diversification_benefit",
        "small_existing_weight",
        "turnaround_confirmation_pending",
        "breakout_trigger_not_met",
        "cyclical_margin_risk",
        "cash_buffer_breach_no_new_trade"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "005930.KS",
      "display_name": "삼성전자",
      "priority": 4,
      "confidence": 0.67,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0671,
      "action_if_triggered": "NONE",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0671,
      "trigger_conditions": [
        "상방 진입 trigger: 005930.KS가 210500 위로 종가 마감하고 거래량이 최근 평균을 명확히 웃돌며 MACD 히스토그램이 재확대되는지 확인",
        "momentum trigger: RSI가 60을 넘고 가격이 10일 EMA 부근 196900 위에 머무는지 확인",
        "눌림 starter trigger: 196900-189800 구간에서 지지, 거래량 안정, 부정적 earnings 또는 semiconductor news 부재가 동시에 확인되는지 확인",
        "위험 축소 trigger: 196900 아래 종가와 RSI 50 하회가 동시에 발생하는지 확인",
        "hard risk trigger: 185087 아래 종가 또는 semiconductor news flow가 recovery에서 estimate cuts로 전환되는지 확인",
        "AI data center 수요와 memory 가격 회복이 DRAM, NAND, HBM 기대를 높이는 점",
        "2026-04-07 preliminary earnings와 향후 IR 세부 내용이 영업이익률 20%대 지속성을 확인할 가능성",
        "semiconductor export momentum과 March ICT export 개선이 memory cycle 회복 논리를 강화하는 점",
        "KOSPI risk appetite 회복 시 foreign 및 index-driven demand가 005930.KS로 유입될 가능성",
        "210500 위 종가와 거래량 증가가 확인되면 218000-223000 재시험 가능성이 열리는 점",
        "196900 아래 종가와 RSI 50 하회가 동시에 발생해 4월 rebound가 실패하는 경우",
        "189800 VWMA와 185087 50일 SMA를 순차적으로 이탈해 pullback이 deeper correction으로 바뀌는 경우",
        "다음 earnings 세부 내용에서 영업이익률이 20% 아래로 약화되거나 profit 증가에도 FCF가 악화되는 경우",
        "HBM 또는 advanced packaging 경쟁력이 SK hynix, TSMC-linked supply chain peers 대비 계속 실망스러운 경우",
        "labor, privacy, strike 관련 이슈가 생산 차질, ESG discount, 평판 리스크로 확대되는 경우"
      ],
      "rationale": "Large-cap semiconductor exposure is more liquid and fundamentally supported, but it ranks below SK Hynix due to weaker immediate momentum, fading volume, and an unmet 210500 breakout trigger. Existing exposure can be held, but semiconductor concentration argues against adding.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "trigger_quality": 0.78,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.36,
        "thesis_multiplier": 1.108,
        "timing_now": 0.144,
        "timing_triggered": 0.36,
        "score_now": 0.0473,
        "score_triggered": 0.1432
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.36,
      "reason_codes": [
        "bullish_thesis_waiting_for_confirmation",
        "breakout_level_not_reached",
        "volume_confirmation_missing",
        "momentum_not_reaccelerating",
        "held_position_manage_risk",
        "clear_risk_levels_defined",
        "starter_only_if_triggered",
        "semiconductor_concentration_risk",
        "cash_buffer_breach_no_new_trade"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "278470.KS",
      "display_name": "에이피알",
      "priority": 5,
      "confidence": 0.72,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0627,
      "action_if_triggered": "NONE",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0627,
      "trigger_conditions": [
        "KRW 356,000-365,000 조정 구간에서 종가 기준 지지와 안정된 거래량 확인 시 시작 포지션 검토",
        "KRW 408,500 위 종가 돌파와 286,905주를 뚜렷하게 넘는 거래량 확대, 가능하면 다음 거래일 후속 강세 또는 재시험 성공 확인",
        "KRW 393,000-408,500 부근에서 RSI 70 이상, 거래량 약화, 다음 종가 약세가 동시에 나타나면 경계 강화",
        "KRW 356,000 종가 이탈 시 단기 모멘텀 경고",
        "KRW 330,000-345,000 종가 이탈 시 수급 악화로 비중 축소",
        "Q1 공시에서 매출 성장률, 영업이익률, 마케팅 효율, 재고, 미국 실판매, 유럽 매출 기여 확인",
        "278470.KS Q1 실적이 높아진 시장 기대를 명확히 상회",
        "미국 오프라인 및 온라인 채널에서 반복 수요 기반 매출 성장 지속",
        "유럽 확장이 측정 가능한 매출 기여로 전환",
        "2026-03-31 기업가치 제고 공시의 실행 세부 내용 구체화",
        "실적 추정치 또는 목표주가 추가 상향이 실제 수치 개선으로 뒷받침",
        "KRW 408,500 상향 돌파가 강한 거래량과 후속 종가로 확인",
        "SK Securities 목표가 KRW 510,000 상향 이후 Q1 실적 또는 가이던스가 단순 부합에 그침",
        "판매마케팅비가 KRW 166.5 billion에서 KRW 255.5 billion으로 증가한 뒤 매출보다 빠르게 늘어 영업이익률을 압박",
        "재고가 KRW 165.5 billion 수준에서 다시 확대되어 할인 또는 채널 재고 위험을 키움",
        "미국 성장이 반복 소비 수요가 아니라 채널 채우기였다는 증거",
        "유럽 확장에 예상보다 큰 판촉비, 물류비, 유통 지원 비용이 필요",
        "KRW 310,000 결정적 종가 이탈"
      ],
      "rationale": "Despite the highest stated confidence, this is the most timing-sensitive candidate: price is extended, near resistance, close to overbought conditions, and volume has faded after a surge. Existing holding may remain under strict risk controls, but fresh capital should wait for a cleaner pullback or confirmed breakout.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "trigger_quality": 0.68,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.34,
        "thesis_multiplier": 1.156,
        "timing_now": 0.136,
        "timing_triggered": 0.34,
        "score_now": 0.0507,
        "score_triggered": 0.1517
      },
      "decision_source": "RULE+DEEP+CODEX",
      "timing_readiness": 0.34,
      "reason_codes": [
        "bullish_thesis_but_wait",
        "near_resistance",
        "overextended_from_moving_averages",
        "volume_confirmation_missing",
        "high_volatility_atr",
        "event_confirmation_pending",
        "held_position_risk_controls_defined",
        "cash_buffer_breach_no_new_trade"
      ],
      "review_required": true,
      "trigger_type": "watch_only",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "034020.KS",
      "display_name": "두산에너빌리티",
      "priority": 6,
      "confidence": 0.64,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.1134,
      "action_if_triggered": "NONE",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.1134,
      "trigger_conditions": [
        "103,000원 위 종가 안착과 최근 저거래 반등 대비 뚜렷한 거래량 증가",
        "MACD 히스토그램 양전환 또는 0선 근처 개선 지속과 100,000원 위 가격 유지",
        "98,100~98,700원 지지 확인 후 100,000원 회복 및 반등 거래량 증가",
        "106,300~109,600원 저항 재시험 시 거래량, 외국인·기관 수급, 원전 뉴스 동반 여부",
        "2026-04-13 접수번호 20260413002228 자기주식 취득 정정 공시의 규모, 시기, 조건 확인",
        "다음 분기 자유현금흐름, 순차입금, 영업마진이 2025년 4분기 개선을 반복하는지 확인",
        "034020.KS가 관련된 이집트 엘다바 또는 해외 원전 프로젝트에서 구체적 계약 규모, 귀속분, 납품 일정, 마진 정보가 확인되는 경우",
        "103,000원 위 종가 안착과 함께 1,746,075주를 단순히 넘는 수준이 아니라 최근 저거래 반등 대비 뚜렷한 거래량 증가가 동반되는 경우",
        "MACD 히스토그램이 양전환하고 100,000원 위 가격 유지가 확인되는 경우",
        "KOSPI 위험선호 회복 속에서 외국인·기관 수급이 원전·인프라 대형주로 유입되는 경우",
        "2026-04-13 자기주식 취득 정정 공시의 세부 내용이 실제 주가 지지력 있는 규모와 조건으로 확인되는 경우",
        "다음 실적에서 영업마진, 자유현금흐름, 순차입금 감소가 반복되는 경우",
        "98,100원 종가 이탈 후 50일선 98,142원과 10일 EMA 98,707원 부근을 빠르게 회복하지 못하는 경우",
        "95,000원 이탈로 중기 지지 구조가 훼손되는 경우",
        "원전 프로젝트 헤드라인이 034020.KS 귀속 계약 가치, 마진, 납품 일정으로 연결되지 않는 경우",
        "2025년 4분기 자유현금흐름 1.206조 원 개선이 운전자본 효과에 그치고 다음 분기에 반복되지 않는 경우",
        "순이자비용과 비영업손실이 영업이익을 계속 흡수해 최종 주주이익 개선이 지연되는 경우",
        "Forward PE 93배를 정당화할 수 있는 수주, 마진, 현금흐름 증거가 약화되는 경우"
      ],
      "rationale": "Medium-term thesis is constructive for held 034020.KS, supported by price above key moving averages, nuclear/infrastructure order expectations, improved Q4 free cash flow, and lower net debt. Timing is not actionable yet because the plan explicitly says to wait for confirmation: a close above 103,000 KRW with clear volume expansion and MACD histogram improvement, or a defended 98,100-98,700 KRW support retest followed by a 100,000 KRW reclaim. Current stance is hold/watch rather than add.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "trigger_quality": 0.76,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.084,
        "timing_now": 0.152,
        "timing_triggered": 0.38,
        "score_now": 0.0465,
        "score_triggered": 0.1413
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_for_confirmation",
        "breakout_level_defined",
        "volume_confirmation_required",
        "macd_not_confirmed",
        "support_retest_alternative",
        "held_position_hold",
        "risk_lines_defined",
        "valuation_and_volatility_limit_sizing"
      ],
      "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.63,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.1087,
      "action_if_triggered": "NONE",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.1087,
      "trigger_conditions": [
        "250,000-253,000을 최근 평균보다 높은 거래량으로 종가 회복한다.",
        "회복 다음 거래일에도 250,000 위를 유지하거나 장중 지지가 명확하게 확인된다.",
        "MACD 히스토그램 악화가 멈추고 양전환 방향으로 개선된다.",
        "RSI가 50 위에서 안정되고 가격이 10일 EMA 약 243,546 위를 유지한다.",
        "271,000을 강한 회전율로 돌파하면 추가 매수 후보로 격상한다.",
        "292,500을 장중 반락 없이 돌파하면 추세 재가속 확인으로 본다.",
        "CPO 테스트 소켓 수요, 고객 확보, 마진 지속성, 매출채권 회수, 재고 질에 대한 공시나 IR 확인이 나온다.",
        "240,000 이탈 또는 VWMA 부근 고거래량 분산 매도가 나오면 관찰 종목의 위험 경보로 전환한다.",
        "SOL AI반도체TOP2플러스 편입은 095340.KS에 패시브 및 테마 수급 유입 가능성을 만든다.",
        "AI 반도체, CPO, 광통신, 테스트 소켓 수요는 현재 시장이 선호하는 성장 테마와 맞닿아 있다.",
        "2025-12-31 기준 매출 72.33bn KRW, 영업이익 21.97bn KRW, 영업이익률 약 30.4%, 잉여현금흐름 18.16bn KRW는 단순 테마주가 아니라는 근거다.",
        "현금 및 단기투자 343.88bn KRW와 차입금 21.19bn KRW의 순현금 구조는 하방 완충력과 전략적 선택지를 제공한다.",
        "2026-04-14 반도체 섹터 위험 선호 개선은 095340.KS의 재상승 시도에 우호적 배경이 될 수 있다.",
        "240,000 이탈 후 반등이 약하면 조정이 단순 소화가 아니라 추세 약화로 전환될 가능성이 커진다.",
        "50일선 약 201,390 이탈은 중기 상승 구조를 훼손한다.",
        "CPO 및 테스트 소켓 기대가 다음 보고 주기에서 매출, 고객, 마진 가시성으로 연결되지 않으면 테마 프리미엄이 약해질 수 있다.",
        "매출채권 69.84bn KRW와 재고 25.01bn KRW가 추가로 늘고 현금 전환이 따라오지 않으면 이익의 질이 훼손된다.",
        "교환권 행사, 자기주식 처분, 지배구조 변화가 지속적 공급 부담이나 투자심리 약화로 이어지면 재평가 여지가 낮아진다."
      ],
      "rationale": "Medium-term ISC thesis is constructive on strong margins, free cash flow, net cash, AI/CPO/test-socket exposure, ETF inclusion, and supportive semiconductor risk appetite. Timing is not yet actionable because the plan explicitly says WAIT/NO_TRADE: price must reclaim 250,000-253,000 with stronger volume and hold above 250,000, with RSI/MACD improvement before a starter is justified. Existing holding can be maintained below normal size while 240,000 holds, but new/add exposure requires confirmation.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "trigger_quality": 0.7,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.36,
        "thesis_multiplier": 1.108,
        "timing_now": 0.144,
        "timing_triggered": 0.36,
        "score_now": 0.0439,
        "score_triggered": 0.1347
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.36,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_no_trade",
        "breakout_trigger_defined",
        "volume_confirmation_required",
        "momentum_not_confirmed",
        "held_core_position_only",
        "risk_levels_defined",
        "fundamental_catalysts_present",
        "data_quality_partial_fallbacks"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "058470.KQ",
      "display_name": "리노공업",
      "priority": 8,
      "confidence": 0.6,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0363,
      "action_if_triggered": "NONE",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0363,
      "trigger_conditions": [
        "058470.KQ가 116800 위에서 종가 마감하고 거래량이 1000000주를 초과하면 entry_action을 STARTER로 상향하되 첫 비중은 20%-25%로 제한한다",
        "058470.KQ가 116800 돌파 후 두 번째 종가도 해당 가격 위에서 유지하고 상대강도가 개선되면 33%까지 확대를 검토한다",
        "058470.KQ가 110000 부근으로 조정받은 뒤 105000-106000 위를 방어하고 113400을 회복하면 STARTER를 검토한다",
        "058470.KQ가 105000 아래에서 종가 마감하면 portfolio_stance를 NEUTRAL 쪽으로 낮추고 기존 위험을 감축한다",
        "거래량이 600000 아래에 머물며 가격이 116800 아래에서 정체되면 WAIT을 유지한다",
        "다음 실적에서 매출 반등과 마진 방어가 동시에 확인되면 setup_quality를 COMPELLING 쪽으로 상향 검토한다",
        "058470.KQ가 116800 위에서 종가 마감하고 거래량이 1000000주를 넘으며 KOSDAQ 대비 상대강도가 회복되는 경우",
        "116800 돌파 후 두 번째 종가가 해당 가격 위에서 유지되고 고거래량 반전 없이 127000 재시험 가능성이 높아지는 경우",
        "다음 분기 매출이 84759949280에서 반등하고 영업이익률이 과거 높은 수준에 가깝게 유지되는 경우",
        "2026-03-26 기업가치 제고 계획이 측정 가능한 주주환원, 자본효율 목표, 현금 활용 방안으로 구체화되는 경우",
        "KOSDAQ 및 반도체 부품 순환매가 최근 소외된 고품질 종목으로 확산되는 경우",
        "058470.KQ가 일봉 종가 기준 105000-106000 지지권을 이탈하는 경우",
        "116800 아래에서 반복적으로 실패하고 거래량이 줄며 KOSDAQ 대비 상대 약세가 지속되는 경우",
        "다음 분기 매출이 2025-06-30, 2025-09-30, 2025-12-31로 이어진 하락 추세를 멈추지 못하는 경우",
        "설비투자와 건설중인자산 증가가 매출 회복 없이 감가상각 부담, 마진 압박, 자본효율 저하로 연결되는 경우",
        "영업이익률 압박으로 forward PE 약 36의 프리미엄 밸류에이션이 정당화되지 못하는 경우",
        "기업가치 제고 또는 배당 관련 공시가 구체성 없이 시장 기대에 미달하는 경우"
      ],
      "rationale": "리노공업은 주요 이동평균 상회, MACD 회복, 과열이 아닌 RSI, 높은 수익성 및 재무 안정성으로 중기 thesis는 우호적이다. 그러나 현재가는 즉시 매수 구간이 아니며, 116800원 상향 종가 돌파와 1000000주 초과 거래량 및 상대강도 회복, 또는 110000원 부근 조정 후 105000-106000원 지지 확인이 필요하다. 보유분은 105000원 하회 전까지 유지하되 신규 증액은 확인 전 대기다.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "trigger_quality": 0.66,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.36,
        "thesis_multiplier": 1.108,
        "timing_now": 0.144,
        "timing_triggered": 0.36,
        "score_now": 0.0413,
        "score_triggered": 0.1283
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.36,
      "reason_codes": [
        "bullish_medium_term_trend",
        "entry_wait_for_confirmation",
        "volume_confirmation_missing",
        "relative_weakness_vs_kosdaq",
        "premium_valuation_requires_growth",
        "revenue_slowdown_unresolved",
        "support_invalidation_defined",
        "held_position_risk_managed"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "064400.KS",
      "display_name": "LG CNS",
      "priority": 9,
      "confidence": 0.6,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0202,
      "action_if_triggered": "NONE",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0202,
      "trigger_conditions": [
        "064400.KS가 63300 위에서 종가를 만들고 최근보다 높은 거래량을 동반하면 15%-25% 시험 진입 후보로 전환",
        "50D SMA 64832.36 위에서 1-2회 종가 유지 시 setup_quality를 COMPELLING에 가깝게 상향 검토",
        "200D SMA 65877.95 회복 시 중기 추세 복원 확인",
        "59680 부근 거래량가중평균과 59000-60000 방어 구간을 pullback에서 유지",
        "RSI가 50 위로 회복하고 MACD 본선이 0선 쪽으로 개선",
        "K-Edufine, 토큰증권, AI 인프라 관련 뉴스가 참여 가능성이나 과거 이력 언급이 아니라 실제 신규 매출로 연결되는지 확인",
        "2026-04-03 대량보유·최대주주·임원 보유 공시의 방향성이 매도 압력인지 안정적 보유인지 확인",
        "064400.KS의 차세대 K-Edufine 공공 시스템 참여 또는 수주 확정",
        "2026-04-01 단일판매·공급계약 공시의 금액, 상대방, 마진, 기간이 의미 있게 확인되는 경우",
        "2027년 2월 예정된 토큰증권 제도 시행을 앞두고 064400.KS가 직접 구현 파트너로 확인되는 경우",
        "FuriosaAI RNGD 기반 AI 인프라 서비스에서 SamsungSDS와 LG CNS의 상용 고객 채택 또는 성능 검증",
        "국민연금 지분 약 5.7% 수준의 안정 또는 증가와 기관 수급 유지",
        "다음 보고 기간에서 매출채권 회수와 운전자본 전환 개선 확인",
        "064400.KS가 59000-60000 방어 구간을 종가 기준으로 이탈한 뒤 55800도 종가 기준으로 하회",
        "63000-63300 재돌파에 반복 실패하고 MACD 히스토그램이 다시 음전환",
        "RSI가 50 아래에 머물고 MACD 본선이 0선 아래에서 추가 악화",
        "2026-04-01 계약 공시 세부 내용이 소규모, 저마진, 또는 불리한 조건으로 확인",
        "매출 증가에도 매출채권과 운전자본 유출이 다음 보고 기간에 계속 악화",
        "대량보유, 최대주주, 임원 또는 보호예수 관련 공시에서 의미 있는 매도 압력 확인"
      ],
      "rationale": "Medium-term thesis is constructive for LG CNS based on fundamentals, liquidity, valuation, dividend yield, and improving MACD pressure, but current timing is not actionable. Price remains below the 63000-63300 resistance zone, the 50D SMA, and the 200D SMA after a failed reclaim attempt. Existing small holding can be held with closing-basis risk controls, while any add or new tactical entry requires a close above 63300 with volume expansion and preferably follow-through above the 50D SMA.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 14,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "trigger_quality": 0.58,
        "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_fundamentals",
        "bullish_but_wait",
        "below_key_resistance",
        "below_moving_averages",
        "breakout_required",
        "volume_confirmation_required",
        "existing_position_hold_only",
        "closing_basis_risk_control",
        "data_quality_minor_gaps"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "005380.KS",
      "display_name": "현대차",
      "priority": 10,
      "confidence": 0.62,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0799,
      "action_if_triggered": "NONE",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0799,
      "trigger_conditions": [
        "005380.KS 종가가 484400 위이고 거래량이 최근 평균 이상이면 STARTER 검토",
        "005380.KS 종가가 508500 위에서 유지되면 ADD 또는 OVERWEIGHT 검토",
        "RSI가 50 위로 상승하고 MACD 개선이 지속되면 매수 주도권 확인",
        "005380.KS 종가가 445500 아래이면 방어적 전환 및 매매성 노출 EXIT 검토",
        "OpenDART 내부자 또는 주요 주주 공시에서 의미 있는 순매수·순매도 확인",
        "중동 해운, 수출 물량, 공급업체 화재 이후 생산 정상화 관련 업데이트 확인",
        "다음 실적에서 마진, 운전자본, 자유현금흐름 개선 여부 확인",
        "005380.KS가 484400 위에서 최근 평균을 웃도는 거래량으로 마감해 10일 EMA·VWMA 회복을 확인",
        "005380.KS가 508500 부근 50일 SMA를 회복하고 유지해 최근 거절 구간을 돌파",
        "RSI가 50 위로 올라서고 MACD 개선이 이어져 매수 주도권 확인",
        "Genesis 국내 누적 100만대가 프리미엄 믹스와 마진 방어 서사를 강화",
        "AI, 로보틱스, 소프트웨어 중심 차량, 미래 모빌리티 전략에 대한 투자자 후원이 확대",
        "다음 실적에서 영업마진 회복, 운전자본 정상화, 자유현금흐름 개선 확인",
        "KOSPI 대형주 위험선호 흐름과 지정학적 완화 기대가 유지",
        "005380.KS가 종가 기준 445500 아래로 이탈",
        "482700-484400 회복 실패 후 하락 거래량 확대",
        "508500 부근 50일 SMA에서 재차 거절되고 모멘텀 악화",
        "공급업체 화재 또는 중동 물류 이슈가 2분기 생산·배송·마진에 중대한 부담으로 확대",
        "영업마진 추가 악화 또는 또 한 번의 대규모 음의 자유현금흐름 발생",
        "forward earnings 하향으로 낮은 PER이 가치 함정으로 재평가",
        "Korea 대형주 위험선호 흐름 또는 지정학적 낙관론 반전"
      ],
      "rationale": "Constructive medium-term thesis for Hyundai Motor is supported by valuation, long-term trend support, Genesis momentum, future mobility optionality, and Korea large-cap risk appetite, but timing is not ready. Current price remains below the 10-day EMA/VWMA and 50-day SMA, RSI is still below 50, and volatility is elevated. Action is therefore HOLD/WAIT until a confirmed close above 484400 with above-average volume, with stronger confirmation only after sustained recovery above 508500.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "trigger_quality": 0.74,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.34,
        "thesis_multiplier": 1.072,
        "timing_now": 0.136,
        "timing_triggered": 0.34,
        "score_now": 0.0384,
        "score_triggered": 0.1211
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.34,
      "reason_codes": [
        "constructive_thesis_waiting_for_confirmation",
        "price_below_near_term_moving_averages",
        "rsi_below_50",
        "elevated_volatility",
        "clear_breakout_trigger_defined",
        "held_position_core_hold_not_add",
        "risk_invalidation_defined"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    },
    {
      "canonical_ticker": "042700.KS",
      "display_name": "한미반도체",
      "priority": 11,
      "confidence": 0.6,
      "action_now": "HOLD",
      "delta_krw_now": 0,
      "target_weight_now": 0.0462,
      "action_if_triggered": "NONE",
      "delta_krw_if_triggered": 0,
      "target_weight_if_triggered": 0.0462,
      "trigger_conditions": [
        "042700.KS 종가 286000원 상향 돌파 여부와 거래량 회복 여부",
        "2026-04-10 거래량 1087130주에 근접하거나 상회하는 매수세 유입 여부",
        "271000~274000원 구간 지지 확인 후 반등 강도",
        "300000원 회복 후 안착 여부",
        "321000원대 볼린저 상단 접근 시 매물 소화 여부",
        "257000원대 50일 SMA 방어 여부",
        "MACD 양수권 유지와 RSI 55~60 회복 여부",
        "OpenDART 신규 수주, IR 후속 자료, 2026년 실적 전망 업데이트 여부",
        "042700.KS가 286000원 위로 종가 돌파하고 거래량이 2026-04-10의 1087130주에 근접하거나 이를 상회하는 경우",
        "300000원 회복 후 안착하며 매물 소화가 확인되는 경우",
        "신규 수주, 고객사 확대, TC본더/HBM 장비 수요 확인 또는 2026년 실적 가이던스 상향",
        "기업설명회에서 수주잔고, 고객 투자 일정, 증설 회수 속도에 대한 구체적 설명이 제시되는 경우",
        "반도체 수출 증가와 SK하이닉스/HBM 투자 사이클 관련 우호적 데이터가 지속되는 경우",
        "042700.KS가 271000~274000원 단기 평균선 및 수급 구간을 종가 기준 이탈하고 빠르게 회복하지 못하는 경우",
        "257000원대 50일 SMA 하회가 지속되어 중기 상승 구조가 훼손되는 경우",
        "2025-12-31 매출 둔화가 일시적 매출 인식 문제가 아니라 신규 수주 둔화로 확인되는 경우",
        "PER 54배 수준의 프리미엄을 정당화할 신규 수주, 고객사 투자, 가이던스 개선이 나오지 않는 경우",
        "설비투자 증가가 고마진 매출 증가로 연결되지 않고 고정비 부담으로 전환되는 경우",
        "MACD 양수권 유지 실패와 RSI 55~60 회복 실패가 동반되며 반등 모멘텀이 약화되는 경우"
      ],
      "rationale": "Bullish medium-term thesis is supported by HBM/TC bonder cycle exposure, strong margins, cash position, and price still above key medium-term averages, but timing is not actionable yet. The plan explicitly calls for HOLD/WAIT because price rejected 286000 KRW resistance, volume contracted sharply, and any starter entry requires either a 286000 KRW close with volume recovery or confirmed support/rebound from 271000-274000 KRW.",
      "data_health": {
        "coverage_score": 0.67,
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4,
        "quality_flags": [
          "token_usage_unavailable"
        ],
        "trigger_quality": 0.73,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.34,
        "thesis_multiplier": 1.096,
        "timing_now": 0.136,
        "timing_triggered": 0.34,
        "score_now": 0.0379,
        "score_triggered": 0.1198
      },
      "decision_source": "RULE+DEEP",
      "timing_readiness": 0.34,
      "reason_codes": [
        "bullish_thesis_waiting_for_confirmation",
        "resistance_rejection_near_286000",
        "volume_contraction_after_high_volume_day",
        "price_above_key_averages_but_not_breakout",
        "starter_only_after_breakout_or_support_rebound",
        "valuation_requires_fundamental_confirmation",
        "held_position_hold_not_add"
      ],
      "review_required": true,
      "trigger_type": "breakout_confirmation",
      "gate_reasons": [
        "high_fallback_count"
      ],
      "sector": null
    }
  ],
  "portfolio_risks": [
    "High NO_TRADE concentration: 11/11 (100%).",
    "Legacy NO_TRADE concentration coexists with constructive stance/action signals; calibrate stance-action mapping.",
    "Wait-heavy constructive batch: WAIT 11/11 with BULLISH 11/11; review entry-action calibration.",
    "Constructive batch produced no BUY/OVERWEIGHT ratings; review rating calibration against stance and entry_action outputs.",
    "Account snapshot has insufficient deployable cash for the configured minimum trade.",
    "구성적이지만 즉시 실행 가능한 후보가 적음"
  ],
  "data_health_summary": {
    "decision_distribution": {
      "NO_TRADE": 11
    },
    "stance_distribution": {
      "BULLISH": 11
    },
    "entry_action_distribution": {
      "WAIT": 11
    },
    "avg_confidence": 0.649090909090909,
    "company_news_zero_ratio": 0.0,
    "snapshot_health": "CAPITAL_CONSTRAINED",
    "warning_flags": [
      "High NO_TRADE concentration: 11/11 (100%).",
      "Legacy NO_TRADE concentration coexists with constructive stance/action signals; calibrate stance-action mapping.",
      "Wait-heavy constructive batch: WAIT 11/11 with BULLISH 11/11; review entry-action calibration.",
      "Constructive batch produced no BUY/OVERWEIGHT ratings; review rating calibration against stance and entry_action outputs.",
      "Account snapshot has insufficient deployable cash for the configured minimum trade."
    ]
  }
}