{
  "candidates": [
    {
      "snapshot_id": "20260415T171319_kis_68944660-01",
      "instrument": {
        "broker_symbol": "000660",
        "canonical_ticker": "000660.KS",
        "yahoo_symbol": "000660.KS",
        "krx_code": "000660",
        "dart_corp_code": null,
        "display_name": "SK하이닉스",
        "exchange": "KRX",
        "country": "KR",
        "currency": "KRW"
      },
      "is_held": true,
      "market_value_krw": 1136000,
      "quantity": 1.0,
      "available_qty": 1.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.72,
        "time_horizon": "medium",
        "entry_logic": "000660.KS의 중기 배분 관점은 OVERWEIGHT로 유지한다. 공격적 분석가는 AI/HBM 수요, DRAM 및 NAND 가격 회복, 강한 현금창출, 순차입금 감소, MACD의 강한 개선을 근거로 리더십을 강조했고, 중립 분석가도 가격이 10일 EMA 993000, 50일 SMA 934700, VWAP 934600 위에 있으며 펀더멘털이 단순 서사가 아니라고 확인했다. 다만 보수적 분석가와 중립 분석가가 공통으로 지적했듯 2026-03-31 807000에서 2026-04-14 1103000까지 36.7% 반등했고 2026-04-15 장중 1158000 근처의 신고가가 보고되어 즉시 추격 매수의 보상 대비 위험은 낮다. 오늘의 실행은 WAIT이다. 신규 진입은 1128000 돌파 구간 위 종가와 4754545주를 넘는 거래량이 동시에 확인되거나, 1033000-1000000 조정 구간을 방어하고 10일 EMA 부근 993000 위에서 모멘텀이 안정될 때만 허용한다. 조건이 충족되면 소규모 starter는 정당화될 수 있으나, 조건 전에는 매수하지 않는다.",
        "exit_logic": "전술적 노출은 1000000 이탈 후 993000을 거래량 증가와 함께 깨면 축소하거나 청산한다. 50일 SMA 부근 934700이 무너지면 중기 추세 방어선이 훼손된 것으로 보고 포지션을 재평가한다. 다음 실적 또는 가이던스에서 HBM 수요, DRAM/NAND 가격, 출하, 마진이 약화되거나 자유현금흐름, 재고, 매출채권, 운전자본이 악화되어 이익의 질이 흔들리면 비중을 줄인다. 보수적 분석가가 지적한 2025-12-31 분기 capex 약 -12.25조 KRW, 운전자본 유출 약 -2.37조 KRW, 매출채권 변화 약 -3.71조 KRW, 재고 약 14.29조 KRW, 큰 규모의 unusual items -13.88조 KRW는 다음 보고서에서 반드시 확인해야 할 위험 신호다.",
        "position_sizing": "신규 자금은 정상 목표 비중보다 작게 시작하고 반드시 분할 진입한다. 첫 tranche는 돌파 확인 또는 지지 확인 이후에만 집행하며, 추가 매수는 진입 트리거 이후 가격이 유지되고 반도체 업종 폭이 동반될 때로 제한한다. 최근 평균 변동폭이 약 65221 KRW, 2026-04-14 종가 대비 약 5.9%로 크므로 포지션 크기는 일반적인 리더십 주식보다 보수적으로 둔다. 이미 보유 중인 계정은 중기 OVERWEIGHT 관점을 유지하되, 신고가 추격 갭에서는 증액하지 않는다.",
        "risk_limits": "전술 포지션은 진입가에서 최근 평균 변동폭 약 65221 KRW를 반영한 변동성 기반 손절을 사용한다. 934700은 중기 추세 방어선으로 취급한다. 실적, 투자자관계 공시, 메모리 가격 자료, 미국 정책 및 법적 이슈, 환율, 인플레이션, 미국 AI 반도체 대형주 움직임 전후에는 노출을 제한한다. 보수적 분석가가 강조한 200일 SMA 대비 약 94.9% 프리미엄, beta 약 1.751, 1470 KRW 환율 기준, 수입물가 월간 16% 상승 같은 거시 및 수급 리스크는 비중 확대를 늦추는 근거로 반영한다.",
        "catalysts": [
          "공격적 분석가가 강조한 AI 인프라 투자와 HBM 수요 지속이 000660.KS의 가격, 제품 믹스, 마진을 지지하는 경우",
          "DRAM과 NAND 가격 회복이 HBM 단일 서사를 넘어 이익 사이클을 넓히는 경우",
          "Korea Investment & Securities의 28% 이익 추정 상향 이후 추가 추정치 상향이 이어지는 경우",
          "2026-04-15 장중 신고가 이후에도 외국인과 기관 매수가 지속되고 1128000 위 돌파가 거래량으로 확인되는 경우",
          "2026-04-09 투자자관계 공시와 후속 회사 가이던스가 HBM, DRAM, NAND, 현금흐름에 대해 긍정적으로 유지되는 경우"
        ],
        "invalidators": [
          "HBM 고객 수요, 가격, 공급 능력이 높아진 기대에 미달하는 경우",
          "DRAM 또는 NAND 가격 회복이 실적 추정치 실현 전에 멈추거나 반전되는 경우",
          "재고, 매출채권, 운전자본 유출이 악화되어 보고이익과 현금흐름의 정합성이 약해지는 경우",
          "capex 확대가 향후 공급과잉이나 마진 압박으로 해석되기 시작하는 경우",
          "미국 ITC 특허 조사, 수출통제, 중국 노출, FX, 인플레이션 충격이 AI 메모리 펀더멘털보다 더 큰 주가 결정 요인이 되는 경우"
        ],
        "watchlist_triggers": [
          "강세: 000660.KS가 1128000 위에서 종가를 형성하고 거래량이 2026-04-14의 4754545주를 초과하면 starter 진입 또는 보유분 증액을 검토한다",
          "강세: 조정 시 1033000-1000000을 방어하고 10일 EMA 부근 993000 위에서 모멘텀이 안정되면 pullback starter를 검토한다",
          "강세 확인 보강: 돌파 또는 지지 확인이 반도체 업종 전반의 양호한 폭과 함께 나타나면 setup_quality를 COMPELLING으로 상향할 수 있다",
          "약세: 993000을 거래량 증가와 약한 업종 폭 속에 이탈하면 전술 노출을 줄인다",
          "약세: 50일 SMA 부근 934700이 무너지면 중기 OVERWEIGHT 근거를 재검토한다",
          "기본적 확인: 다음 실적 또는 가이던스에서 정상화 이익, 보고이익, 자유현금흐름, 재고, 매출채권이 함께 개선되는지 확인한다"
        ],
        "data_coverage": {
          "company_news_count": 4,
          "disclosures_count": 1,
          "social_source": "news_derived",
          "macro_items_count": 1
        }
      },
      "data_coverage": {
        "company_news_count": 4,
        "disclosures_count": 1,
        "social_source": "news_derived",
        "macro_items_count": 1
      },
      "quality_flags": [
        "token_usage_unavailable"
      ],
      "vendor_health": {
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4
      },
      "suggested_action_now": "HOLD",
      "suggested_action_if_triggered": "ADD_IF_TRIGGERED",
      "trigger_conditions": [
        "강세: 000660.KS가 1128000 위에서 종가를 형성하고 거래량이 2026-04-14의 4754545주를 초과하면 starter 진입 또는 보유분 증액을 검토한다",
        "강세: 조정 시 1033000-1000000을 방어하고 10일 EMA 부근 993000 위에서 모멘텀이 안정되면 pullback starter를 검토한다",
        "강세 확인 보강: 돌파 또는 지지 확인이 반도체 업종 전반의 양호한 폭과 함께 나타나면 setup_quality를 COMPELLING으로 상향할 수 있다",
        "약세: 993000을 거래량 증가와 약한 업종 폭 속에 이탈하면 전술 노출을 줄인다",
        "약세: 50일 SMA 부근 934700이 무너지면 중기 OVERWEIGHT 근거를 재검토한다",
        "기본적 확인: 다음 실적 또는 가이던스에서 정상화 이익, 보고이익, 자유현금흐름, 재고, 매출채권이 함께 개선되는지 확인한다",
        "공격적 분석가가 강조한 AI 인프라 투자와 HBM 수요 지속이 000660.KS의 가격, 제품 믹스, 마진을 지지하는 경우",
        "DRAM과 NAND 가격 회복이 HBM 단일 서사를 넘어 이익 사이클을 넓히는 경우",
        "Korea Investment & Securities의 28% 이익 추정 상향 이후 추가 추정치 상향이 이어지는 경우",
        "2026-04-15 장중 신고가 이후에도 외국인과 기관 매수가 지속되고 1128000 위 돌파가 거래량으로 확인되는 경우",
        "2026-04-09 투자자관계 공시와 후속 회사 가이던스가 HBM, DRAM, NAND, 현금흐름에 대해 긍정적으로 유지되는 경우",
        "HBM 고객 수요, 가격, 공급 능력이 높아진 기대에 미달하는 경우",
        "DRAM 또는 NAND 가격 회복이 실적 추정치 실현 전에 멈추거나 반전되는 경우",
        "재고, 매출채권, 운전자본 유출이 악화되어 보고이익과 현금흐름의 정합성이 약해지는 경우",
        "capex 확대가 향후 공급과잉이나 마진 압박으로 해석되기 시작하는 경우",
        "미국 ITC 특허 조사, 수출통제, 중국 노출, FX, 인플레이션 충격이 AI 메모리 펀더멘털보다 더 큰 주가 결정 요인이 되는 경우"
      ],
      "confidence": 0.72,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.76,
        "entry_readiness": 0.37,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다."
      },
      "decision_source": "RULE_ONLY_FALLBACK",
      "thesis_strength": 0.7788,
      "timing_readiness": 0.37,
      "reason_codes": [
        "bullish_thesis_intact",
        "timing_not_confirmed",
        "held_position_context",
        "high_fallback_count",
        "conditional_trigger_preferred",
        "semantic_judge_fallback"
      ],
      "review_required": true,
      "score_now": 0.061645965516799996,
      "score_triggered": 0.17911491379199998,
      "gate_reasons": [
        "high_fallback_count"
      ],
      "data_health": {
        "coverage_score": 0.7200000000000001,
        "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_ONLY_FALLBACK",
        "timing_readiness": 0.37,
        "thesis_multiplier": 1.1673,
        "timing_now": 0.148,
        "timing_triggered": 0.37
      },
      "broker_symbol": "000660",
      "canonical_ticker": "000660.KS",
      "display_name": "SK하이닉스"
    },
    {
      "snapshot_id": "20260415T171319_kis_68944660-01",
      "instrument": {
        "broker_symbol": "005380",
        "canonical_ticker": "005380.KS",
        "yahoo_symbol": "005380.KS",
        "krx_code": "005380",
        "dart_corp_code": null,
        "display_name": "현대차",
        "exchange": "KRX",
        "country": "KR",
        "currency": "KRW"
      },
      "is_held": true,
      "market_value_krw": 508000,
      "quantity": 1.0,
      "available_qty": 1.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.62,
        "time_horizon": "medium",
        "entry_logic": "005380.KS에 대한 최종 판단은 조건부 비중확대다. 공격적 분석가가 지적한 장기 200일선 상회, RSI 49.74로 과열 해소, MACD 히스토그램 양수 전환, 10일 EMA 485708 KRW 및 VWMA 481439 KRW 상회, Waymo/IONIQ 5 로보택시와 AI·로보틱스·SDV 서사는 투자 가능한 상승 논리를 만든다. 다만 보수적 분석가가 강조한 508000-510000 KRW 저항, 50일선 508531 KRW 하회, MACD -6176, ATR 약 27685 KRW, 최근 자유현금흐름 -7.2조 KRW와 2025년 12월 분기 영업현금흐름 -2.09조 KRW는 오늘 즉시 신규 매수할 만큼 확인된 셋업이 아님을 뜻한다. 따라서 중립 분석가의 균형안처럼 방향성은 상승 우위로 유지하되, 오늘의 실행은 WAIT다. 신규 진입 또는 추가 매수는 510000 KRW 위 일봉 종가와 1000000주 초과 거래량이 확인되거나, 481000-485000 KRW 지지 재확인과 RSI 50 상회 및 MACD 히스토그램 개선이 동반될 때만 허용한다.",
        "exit_logic": "기존 핵심 보유분은 481000-485000 KRW 지지대가 유지되는 동안 보유 가능하다. 해당 지지대 이탈 시 보수적 분석가의 지적처럼 변동성 확대와 자본 보호를 우선해 트레이딩 노출을 줄인다. 463000 KRW 아래 일봉 종가는 중립·트레이더 계획이 공통으로 제시한 근접 반등 셋업의 기술적 무효화로 보고 전술적 노출은 종료한다. 중기 OVERWEIGHT 판단은 다음 실적에서 영업마진·총마진 추가 악화, 영업현금흐름 및 자유현금흐름 부진 지속, 운전자본 유출 지속, 차입·금융비용·신용비용 악화, 로보택시·AI·로보틱스·SDV 상업화 진전 부재가 확인되면 재검토한다.",
        "position_sizing": "오늘은 신규 풀 포지션을 만들지 않는다. 510000 KRW 위 종가와 1000000주 초과 거래량으로 50일선 및 매물대 돌파가 확인되면 목표 배분의 약 25-40%만 1차로 시작한다. 이후 520000-545000 KRW 구간에서 가격이 버티고 거래량이 유지되며 MACD가 0선 쪽으로 개선될 때 2차 증액을 검토한다. 481000-485000 KRW 지지 확인 매수는 돌파 매수보다 더 작은 starter로 제한한다. 기존 보유자는 핵심 비중은 유지하되, 추가 매수는 확인 조건 전까지 보류한다. ATR이 약 27685 KRW로 종가 대비 약 5.6%이고 베타 1.576이므로 일반적인 OVERWEIGHT 최대치보다 낮은 단계적 비중을 적용한다.",
        "risk_limits": "주요 방어선은 481000-485000 KRW이며, 이탈 시 469000-473000 KRW 재시험 가능성을 반영해 트레이딩 노출을 축소한다. 463000 KRW 아래 종가는 전술적 손절 기준이다. ATR이 큰 만큼 너무 촘촘한 손절은 피하되, 463000 KRW까지 아무 조정 없이 버티는 방식도 피한다. 총차입금 176.5조 KRW, 순차입금 157.0조 KRW, Debt to Equity 138.3, 자유현금흐름 적자, 자동차 금융 노출, FX·금리·관세·미국 수요·중동 물류 및 운임 리스크를 고려해 단일 종목 집중은 제한한다.",
        "catalysts": [
          "005380.KS가 510000 KRW 위에서 일봉 종가를 형성하고 거래량이 1000000주를 넘기면 50일선 및 508000-510000 KRW 저항 돌파로 해석한다.",
          "481000-485000 KRW 지지대가 유지되고 RSI가 50 위로 회복하며 MACD 히스토그램 개선이 이어지면 지지 매수 셋업이 성립한다.",
          "Waymo/IONIQ 5 로보택시, Motional, 피지컬 AI, 로보틱스, SDV, 온디바이스 AI 칩 관련 상업화 이정표가 확인되면 공격적 분석가가 제시한 재평가 서사가 강화된다.",
          "다음 실적에서 2025년 12월 분기보다 영업마진과 총마진이 회복되면 보수적 분석가가 지적한 핵심 할인 요인이 완화된다.",
          "영업현금흐름과 자유현금흐름이 개선되고 운전자본 유출이 정상화되면 현금흐름 리스크가 줄어든다.",
          "협력사 차질에도 생산 안정이 유지되고 물류비, 운임, FX, 관세, 보조금, 하이브리드·EV 수요 믹스가 우호적으로 확인되면 중기 상승 논리가 강화된다."
        ],
        "invalidators": [
          "005380.KS가 508000-510000 KRW에서 재차 실패한 뒤 481000-485000 KRW 아래로 종가 이탈한다.",
          "463000 KRW 아래 일봉 종가가 발생해 최근 반등 구조와 전술적 진입 논리가 무효화된다.",
          "다음 실적에서 매출은 유지되지만 영업이익, 총마진, 영업마진이 추가로 악화된다.",
          "최근 12개월 자유현금흐름 -7.2조 KRW와 2025년 12월 분기 영업현금흐름 -2.09조 KRW 같은 현금흐름 부진이 정상화되지 않는다.",
          "운전자본 유출, 재고, 매출채권, 자동차 금융 신용비용, 차입 및 조달비용이 악화되어 주주환원이나 투자 여력을 압박한다.",
          "로보택시, AI, 로보틱스, EV·하이브리드, SDV 뉴스가 상업적 이정표 없이 서사에만 머물러 뉴스 소진과 밸류에이션 되돌림이 발생한다."
        ],
        "watchlist_triggers": [
          "510000 KRW 위 일봉 종가와 1000000주 초과 거래량: entry_action을 STARTER 또는 기존 보유자 ADD로 상향 검토한다.",
          "481000-485000 KRW 지지 유지, RSI 50 상회, MACD 히스토그램 개선 지속: 작은 starter를 검토한다.",
          "481000-485000 KRW 종가 이탈: 신규 진입 대기 유지 및 트레이딩 노출 축소를 검토한다.",
          "463000 KRW 아래 종가: 전술적 entry_action을 NONE 또는 EXIT로 전환한다.",
          "다음 실적 발표: 영업마진, 총마진, 영업현금흐름, 자유현금흐름, 운전자본, 재고, 매출채권, 자동차 금융 신용비용을 확인한다.",
          "임원 또는 주요주주 증권 보고 후속 공시: 행정적 신고인지 의미 있는 매도인지 구분한다.",
          "중동 해상 운송 차질, 운임, 미국 판매, KRW, 관세, 보조금, 하이브리드·EV 수요 믹스 변화가 수출 마진에 미치는 영향을 점검한다."
        ],
        "data_coverage": {
          "company_news_count": 4,
          "disclosures_count": 1,
          "social_source": "news_derived",
          "macro_items_count": 0
        }
      },
      "data_coverage": {
        "company_news_count": 4,
        "disclosures_count": 1,
        "social_source": "news_derived",
        "macro_items_count": 0
      },
      "quality_flags": [
        "token_usage_unavailable"
      ],
      "vendor_health": {
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4
      },
      "suggested_action_now": "HOLD",
      "suggested_action_if_triggered": "ADD_IF_TRIGGERED",
      "trigger_conditions": [
        "510000 KRW 위 일봉 종가와 1000000주 초과 거래량: entry_action을 STARTER 또는 기존 보유자 ADD로 상향 검토한다.",
        "481000-485000 KRW 지지 유지, RSI 50 상회, MACD 히스토그램 개선 지속: 작은 starter를 검토한다.",
        "481000-485000 KRW 종가 이탈: 신규 진입 대기 유지 및 트레이딩 노출 축소를 검토한다.",
        "463000 KRW 아래 종가: 전술적 entry_action을 NONE 또는 EXIT로 전환한다.",
        "다음 실적 발표: 영업마진, 총마진, 영업현금흐름, 자유현금흐름, 운전자본, 재고, 매출채권, 자동차 금융 신용비용을 확인한다.",
        "임원 또는 주요주주 증권 보고 후속 공시: 행정적 신고인지 의미 있는 매도인지 구분한다.",
        "중동 해상 운송 차질, 운임, 미국 판매, KRW, 관세, 보조금, 하이브리드·EV 수요 믹스 변화가 수출 마진에 미치는 영향을 점검한다.",
        "005380.KS가 510000 KRW 위에서 일봉 종가를 형성하고 거래량이 1000000주를 넘기면 50일선 및 508000-510000 KRW 저항 돌파로 해석한다.",
        "481000-485000 KRW 지지대가 유지되고 RSI가 50 위로 회복하며 MACD 히스토그램 개선이 이어지면 지지 매수 셋업이 성립한다.",
        "Waymo/IONIQ 5 로보택시, Motional, 피지컬 AI, 로보틱스, SDV, 온디바이스 AI 칩 관련 상업화 이정표가 확인되면 공격적 분석가가 제시한 재평가 서사가 강화된다.",
        "다음 실적에서 2025년 12월 분기보다 영업마진과 총마진이 회복되면 보수적 분석가가 지적한 핵심 할인 요인이 완화된다.",
        "영업현금흐름과 자유현금흐름이 개선되고 운전자본 유출이 정상화되면 현금흐름 리스크가 줄어든다.",
        "협력사 차질에도 생산 안정이 유지되고 물류비, 운임, FX, 관세, 보조금, 하이브리드·EV 수요 믹스가 우호적으로 확인되면 중기 상승 논리가 강화된다.",
        "005380.KS가 508000-510000 KRW에서 재차 실패한 뒤 481000-485000 KRW 아래로 종가 이탈한다.",
        "463000 KRW 아래 일봉 종가가 발생해 최근 반등 구조와 전술적 진입 논리가 무효화된다.",
        "다음 실적에서 매출은 유지되지만 영업이익, 총마진, 영업마진이 추가로 악화된다.",
        "최근 12개월 자유현금흐름 -7.2조 KRW와 2025년 12월 분기 영업현금흐름 -2.09조 KRW 같은 현금흐름 부진이 정상화되지 않는다.",
        "운전자본 유출, 재고, 매출채권, 자동차 금융 신용비용, 차입 및 조달비용이 악화되어 주주환원이나 투자 여력을 압박한다.",
        "로보택시, AI, 로보틱스, EV·하이브리드, SDV 뉴스가 상업적 이정표 없이 서사에만 머물러 뉴스 소진과 밸류에이션 되돌림이 발생한다."
      ],
      "confidence": 0.62,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.76,
        "entry_readiness": 0.37,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다."
      },
      "decision_source": "RULE_ONLY_FALLBACK",
      "thesis_strength": 0.7488,
      "timing_readiness": 0.37,
      "reason_codes": [
        "bullish_thesis_intact",
        "timing_not_confirmed",
        "held_position_context",
        "high_fallback_count",
        "conditional_trigger_preferred",
        "semantic_judge_fallback"
      ],
      "review_required": true,
      "score_now": 0.05074376929280001,
      "score_triggered": 0.15185942323200002,
      "gate_reasons": [
        "high_fallback_count"
      ],
      "data_health": {
        "coverage_score": 0.7200000000000001,
        "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_ONLY_FALLBACK",
        "timing_readiness": 0.37,
        "thesis_multiplier": 1.1493,
        "timing_now": 0.148,
        "timing_triggered": 0.37
      },
      "broker_symbol": "005380",
      "canonical_ticker": "005380.KS",
      "display_name": "현대차"
    },
    {
      "snapshot_id": "20260415T171319_kis_68944660-01",
      "instrument": {
        "broker_symbol": "005930",
        "canonical_ticker": "005930.KS",
        "yahoo_symbol": "005930.KS",
        "krx_code": "005930",
        "dart_corp_code": null,
        "display_name": "삼성전자",
        "exchange": "KRX",
        "country": "KR",
        "currency": "KRW"
      },
      "is_held": true,
      "market_value_krw": 844000,
      "quantity": 4.0,
      "available_qty": 4.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.68,
        "time_horizon": "medium",
        "entry_logic": "005930.KS에 대한 최종 판단은 중기 비중확대이나, 오늘 즉시 추격 매수할 자리는 아니다. 공격적 분석가가 지적한 것처럼 005930.KS는 10일 EMA 198640.40, VWMA 190762.90, 50일 SMA 185969, 200일 SMA 115125.47 위에 있고, MACD가 2026-04-02의 -193.81에서 2026-04-14의 5515.15로 회복했으며, 히스토그램도 -2587.84에서 +1736.91로 개선됐다. RSI 58.05도 과열권이 아니고, forward PER 7.48, 낮은 레버리지, 2025-12-31 분기 free cash flow 16040162000000, 현금 및 단기투자 125847114000000은 중기 투자 가능성을 뒷받침한다. 다만 보수적·중립적 분석가들이 강조한 대로 종가 206500은 아직 210500 돌파 조건과 216500-218000 이전 고점대를 회복하지 못했고, 반등 거래량도 약해졌다. 따라서 방향성은 BULLISH로 유지하되, 신규 자금은 210500 상향 돌파와 거래량 확대, 또는 198640-190762 지지대 방어 후 206500 재회복이 확인될 때까지 대기한다. 조건이 충족되면 소규모 starter는 정당화될 수 있으나, 현재는 확인 전 단계다.",
        "exit_logic": "기존 보유분은 005930.KS가 198640 부근 10일 EMA와 190762 부근 VWMA를 지키는 동안 유지한다. 198640 하향 이탈은 즉시 전량 축소 신호가 아니라 신규 추가 중단과 감시 강화 신호로 본다. 190762 아래로 종가가 밀리고 거래량이 증가하면 최근 평균 매입 기반이 훼손되는 것으로 보고 비중을 줄인다. 50일 SMA 185969를 지속적으로 이탈하면 중기 BULLISH 논리를 재검토한다. MACD 히스토그램이 다시 음전환하거나, IR·실적 발표에서 HBM, 메모리 가격, 영업이익률, free cash flow 회복에 대한 설명이 약하면 비중 축소를 우선한다.",
        "position_sizing": "OVERWEIGHT는 즉시 목표 비중을 모두 채우라는 의미가 아니라 단계적 비중확대 한도다. 기존 보유자는 위험 예산 안에서 비중확대 상태를 유지할 수 있지만, 210500 확인 전 공격적 추가 매수는 피한다. 신규 자금은 첫째, 198640-190762 지지대가 방어되고 206500을 재회복할 때 소규모 starter만 허용한다. 둘째, 210500을 거래량 증가와 함께 종가 돌파하면 더 큰 tranche를 추가한다. 셋째, 216500-218000 재시험에서 RSI가 과열되지 않고 모멘텀이 유지될 때만 추가 확대한다. ATR 10713.50이 가격의 약 5.2%로 높기 때문에 전체 노출은 변동성 축소 또는 돌파 확인 전까지 정상 목표보다 낮게 둔다.",
        "risk_limits": "ATR 10713.50을 기준으로 stop 거리와 tranche 크기를 산정한다. 1 ATR 수준의 일상 변동은 thesis 실패로 간주하지 않지만, 198640 아래에서는 추가 매수를 중단한다. 190762 하향 종가와 거래량 증가는 명확한 방어 전환 및 축소 신호다. 185969 지속 이탈은 중기 리스크 검토와 비중 재설정 조건이다. 보수적 분석가가 지적한 206500에서 190762까지 약 7.6%, 185969까지 약 9.9% 하락 위험을 감안해 과집중을 피한다. 주요 위험은 HBM 실행 지연, SK Hynix와의 경쟁, foundry 손실, CAPEX 부담, 메모리 가격 반전, KRW 및 한국 시장 위험, 글로벌 risk-off 충격이다.",
        "catalysts": [
          "005930.KS가 210500을 거래량 증가와 함께 종가 돌파해 216500-218000 재시험 가능성을 여는 경우.",
          "2026 Q1 세부 실적 또는 IR에서 메모리 가격, HBM 수요, 영업이익률 지속성이 확인되는 경우.",
          "AI 메모리 수요가 업종 전반의 기대가 아니라 Samsung Electronics의 HBM 또는 advanced memory 점유율 개선으로 연결된다는 증거가 나오는 경우.",
          "높은 CAPEX에도 free cash flow와 주주환원 여력이 유지된다는 신호가 확인되는 경우.",
          "AI 기반 모바일 및 TV 라인업이 ASP 또는 마진 방어에 기여한다는 추가 근거가 나오는 경우."
        ],
        "invalidators": [
          "190762 아래 종가 이탈 후 VWMA 지지권을 회복하지 못하는 경우.",
          "50일 SMA 185969를 지속적으로 하회하는 경우.",
          "HBM 또는 foundry 관련 코멘터리가 SK Hynix나 TSMC 대비 점유율 열위를 확인하는 경우.",
          "메모리 가격 또는 수요가 반전돼 forward PER 7.48의 저평가 논리가 약해지는 경우.",
          "재고, 매출채권, 부채, CAPEX 부담이 증가하는데 마진과 free cash flow 개선이 동반되지 않는 경우.",
          "210500 돌파 시도가 거래량 없이 실패하고 206500 아래에서 모멘텀이 약화되는 경우."
        ],
        "watchlist_triggers": [
          "005930.KS 일간 종가가 210500을 넘고 거래량이 최근 반등 평균을 상회하는지 확인한다.",
          "216500-218000 재시험 시 RSI가 상승하되 소진형 과열 신호를 보이지 않는지 확인한다.",
          "조정 시 198640-190762 지지대를 방어한 뒤 206500을 재회복하는지 확인한다.",
          "198640 하향 이탈 후 190762와 185969 테스트로 이어지는지 감시한다.",
          "IR에서 HBM qualification, 메모리 ASP 흐름, foundry 손실, CAPEX, buyback, dividend policy 관련 설명을 확인한다.",
          "MACD 히스토그램이 양의 영역을 유지하는지, 또는 다시 음전환하는지 추적한다."
        ],
        "data_coverage": {
          "company_news_count": 2,
          "disclosures_count": 6,
          "social_source": "news_derived",
          "macro_items_count": 0
        }
      },
      "data_coverage": {
        "company_news_count": 2,
        "disclosures_count": 6,
        "social_source": "news_derived",
        "macro_items_count": 0
      },
      "quality_flags": [
        "token_usage_unavailable"
      ],
      "vendor_health": {
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4
      },
      "suggested_action_now": "HOLD",
      "suggested_action_if_triggered": "ADD_IF_TRIGGERED",
      "trigger_conditions": [
        "005930.KS 일간 종가가 210500을 넘고 거래량이 최근 반등 평균을 상회하는지 확인한다.",
        "216500-218000 재시험 시 RSI가 상승하되 소진형 과열 신호를 보이지 않는지 확인한다.",
        "조정 시 198640-190762 지지대를 방어한 뒤 206500을 재회복하는지 확인한다.",
        "198640 하향 이탈 후 190762와 185969 테스트로 이어지는지 감시한다.",
        "IR에서 HBM qualification, 메모리 ASP 흐름, foundry 손실, CAPEX, buyback, dividend policy 관련 설명을 확인한다.",
        "MACD 히스토그램이 양의 영역을 유지하는지, 또는 다시 음전환하는지 추적한다.",
        "005930.KS가 210500을 거래량 증가와 함께 종가 돌파해 216500-218000 재시험 가능성을 여는 경우.",
        "2026 Q1 세부 실적 또는 IR에서 메모리 가격, HBM 수요, 영업이익률 지속성이 확인되는 경우.",
        "AI 메모리 수요가 업종 전반의 기대가 아니라 Samsung Electronics의 HBM 또는 advanced memory 점유율 개선으로 연결된다는 증거가 나오는 경우.",
        "높은 CAPEX에도 free cash flow와 주주환원 여력이 유지된다는 신호가 확인되는 경우.",
        "AI 기반 모바일 및 TV 라인업이 ASP 또는 마진 방어에 기여한다는 추가 근거가 나오는 경우.",
        "190762 아래 종가 이탈 후 VWMA 지지권을 회복하지 못하는 경우.",
        "50일 SMA 185969를 지속적으로 하회하는 경우.",
        "HBM 또는 foundry 관련 코멘터리가 SK Hynix나 TSMC 대비 점유율 열위를 확인하는 경우.",
        "메모리 가격 또는 수요가 반전돼 forward PER 7.48의 저평가 논리가 약해지는 경우.",
        "재고, 매출채권, 부채, CAPEX 부담이 증가하는데 마진과 free cash flow 개선이 동반되지 않는 경우.",
        "210500 돌파 시도가 거래량 없이 실패하고 206500 아래에서 모멘텀이 약화되는 경우."
      ],
      "confidence": 0.68,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.76,
        "entry_readiness": 0.37,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다."
      },
      "decision_source": "RULE_ONLY_FALLBACK",
      "thesis_strength": 0.7668,
      "timing_readiness": 0.37,
      "reason_codes": [
        "bullish_thesis_intact",
        "timing_not_confirmed",
        "held_position_context",
        "high_fallback_count",
        "conditional_trigger_preferred",
        "semantic_judge_fallback"
      ],
      "review_required": true,
      "score_now": 0.057248259891200005,
      "score_triggered": 0.16812064972800003,
      "gate_reasons": [
        "high_fallback_count"
      ],
      "data_health": {
        "coverage_score": 0.7200000000000001,
        "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_ONLY_FALLBACK",
        "timing_readiness": 0.37,
        "thesis_multiplier": 1.1601,
        "timing_now": 0.148,
        "timing_triggered": 0.37
      },
      "broker_symbol": "005930",
      "canonical_ticker": "005930.KS",
      "display_name": "삼성전자"
    },
    {
      "snapshot_id": "20260415T171319_kis_68944660-01",
      "instrument": {
        "broker_symbol": "010950",
        "canonical_ticker": "010950.KS",
        "yahoo_symbol": "010950.KS",
        "krx_code": "010950",
        "dart_corp_code": null,
        "display_name": "S-Oil",
        "exchange": "KRX",
        "country": "KR",
        "currency": "KRW"
      },
      "is_held": true,
      "market_value_krw": 235000,
      "quantity": 2.0,
      "available_qty": 2.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.64,
        "time_horizon": "medium",
        "entry_logic": "010950.KS는 중기 상승 논리가 유지되지만 오늘 즉시 추격 매수할 만큼 진입 확인은 완성되지 않았다. 공격적 분석가는 2026-04-14 종가 119100이 50일 이동평균 111858.62, 200일 이동평균 81354.46, 10일 지수이동평균 116585.40, 거래량가중평균 114045.28 위에 있고, MACD가 2026-04-03 -402.90에서 2026-04-14 2252.66으로 회복했으며 RSI 55.28로 과열이 아니라고 보았다. 이는 상승 추세와 이익 반등을 지지한다. 다만 보수적 분석가가 지적한 대로 2026-03-04 거래량 10800000주 초과와 고가 176551, 종가 126108의 비정상 급등 이후 119000-122000 공급 부담이 아직 해소되지 않았고, 2026-04-15 WTI 8% 하락 뉴스에 010950.KS가 장중 116700까지 밀린 점은 원유와 지정학 뉴스 민감도가 높다는 증거다. 따라서 기존 핵심 보유는 유지할 수 있으나 신규 또는 추가 진입은 122000을 평균 이상 거래량으로 종가 돌파하거나 114000-116000 조정 구간을 지키며 반등 거래량이 개선될 때까지 기다린다. 조건이 충족되면 소규모 시작 포지션은 정당화된다.",
        "exit_logic": "010950.KS가 111500-112000 지지 구간을 종가 기준으로 이탈하면 전술 노출을 축소하거나 청산한다. 특히 거래량 증가, RSI 50 하회, MACD 둔화가 함께 나타나면 4월 반등 실패로 해석한다. Q1 실적이 핵심 정제마진 개선보다 재고 이익이나 래그 효과에 주로 의존한 것으로 확인되거나, 원유와 지정학 프리미엄이 빠지는데 제품 스프레드가 이를 상쇄하지 못하면 OVERWEIGHT 논리를 재검토한다.",
        "position_sizing": "신규 진입은 확인 전까지 보류하고, 조건 충족 시에도 정상 배분보다 작은 시작 포지션만 허용한다. ATR이 약 7455 KRW로 가격의 약 6% 수준이므로 변동성을 낮게 보아서는 안 된다. 기존 보유자는 핵심 물량은 유지하되 122000 돌파 확인 또는 114000-116000 지지 확인 전에는 공격적 추가 매수를 피한다. 포지션은 1.5-2.0 ATR 불리한 움직임이 포트폴리오 허용 손실 안에 들어오도록 산정한다.",
        "risk_limits": "전술 위험 기준은 촘촘한 장중 손절보다 111500-112000 종가 지지 이탈에 둔다. 정제마진 급락, Q1 이익의 질 악화, KRW/USD 급변, WTI 또는 지정학 프리미엄 급반전이 동반되는 약세에는 물타기하지 않는다. 119000-122000 저항대 아래에서는 확인 없는 비중 확대를 제한한다.",
        "catalysts": [
          "010950.KS Q1 실적이 재고 이익이 아니라 핵심 정제마진 개선으로 예상치를 상회",
          "122000 위 평균 이상 거래량 동반 종가 돌파로 3월 공급 부담 흡수 확인",
          "원유 변동성에도 기준 정제마진과 제품 수요가 견조하게 유지",
          "영업현금흐름과 잉여현금흐름 개선, 순차입금 감소 지속",
          "국민연금 또는 기관 보유 공시에서 안정적이거나 증가한 노출 확인"
        ],
        "invalidators": [
          "111500-112000 지지 구간을 거래량 증가와 함께 종가 이탈",
          "RSI가 50 아래로 내려가고 MACD가 꺾이며 4월 반등 실패 신호 발생",
          "Q1 호실적이 일시적 재고 이익이나 래그 효과 중심이고 향후 정제마진 가이던스가 약함",
          "WTI 또는 지정학 프리미엄 반전으로 제품 스프레드 보강 없이 섹터 재평가 하락 반복",
          "설비투자와 운전자본 부담이 최근 잉여현금흐름 개선을 되돌림"
        ],
        "watchlist_triggers": [
          "010950.KS가 122000 위에서 평균 이상 거래량으로 종가 마감하면 entry_action을 STARTER 또는 ADD로 상향 검토",
          "114000-116000 조정 구간을 지키고 반등 거래량 또는 장중 수급이 개선되면 소규모 STARTER 검토",
          "111500 아래 종가 이탈 시 뉴스와 마진 환경에 따라 portfolio_stance를 NEUTRAL 또는 BEARISH로 하향",
          "Q1 실적 발표 때 영업이익을 재고 이익과 핵심 정제마진 기여로 분리해 판단",
          "WTI, 중동 협상 뉴스, KRW/USD, 기준 정제마진을 추적해 상승 논리 확인 또는 훼손 여부 점검"
        ],
        "data_coverage": {
          "company_news_count": 5,
          "disclosures_count": 1,
          "social_source": "news_derived",
          "macro_items_count": 0
        }
      },
      "data_coverage": {
        "company_news_count": 5,
        "disclosures_count": 1,
        "social_source": "news_derived",
        "macro_items_count": 0
      },
      "quality_flags": [
        "token_usage_unavailable"
      ],
      "vendor_health": {
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4
      },
      "suggested_action_now": "HOLD",
      "suggested_action_if_triggered": "ADD_IF_TRIGGERED",
      "trigger_conditions": [
        "010950.KS가 122000 위에서 평균 이상 거래량으로 종가 마감하면 entry_action을 STARTER 또는 ADD로 상향 검토",
        "114000-116000 조정 구간을 지키고 반등 거래량 또는 장중 수급이 개선되면 소규모 STARTER 검토",
        "111500 아래 종가 이탈 시 뉴스와 마진 환경에 따라 portfolio_stance를 NEUTRAL 또는 BEARISH로 하향",
        "Q1 실적 발표 때 영업이익을 재고 이익과 핵심 정제마진 기여로 분리해 판단",
        "WTI, 중동 협상 뉴스, KRW/USD, 기준 정제마진을 추적해 상승 논리 확인 또는 훼손 여부 점검",
        "010950.KS Q1 실적이 재고 이익이 아니라 핵심 정제마진 개선으로 예상치를 상회",
        "122000 위 평균 이상 거래량 동반 종가 돌파로 3월 공급 부담 흡수 확인",
        "원유 변동성에도 기준 정제마진과 제품 수요가 견조하게 유지",
        "영업현금흐름과 잉여현금흐름 개선, 순차입금 감소 지속",
        "국민연금 또는 기관 보유 공시에서 안정적이거나 증가한 노출 확인",
        "111500-112000 지지 구간을 거래량 증가와 함께 종가 이탈",
        "RSI가 50 아래로 내려가고 MACD가 꺾이며 4월 반등 실패 신호 발생",
        "Q1 호실적이 일시적 재고 이익이나 래그 효과 중심이고 향후 정제마진 가이던스가 약함",
        "WTI 또는 지정학 프리미엄 반전으로 제품 스프레드 보강 없이 섹터 재평가 하락 반복",
        "설비투자와 운전자본 부담이 최근 잉여현금흐름 개선을 되돌림"
      ],
      "confidence": 0.64,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.76,
        "entry_readiness": 0.37,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다."
      },
      "decision_source": "RULE_ONLY_FALLBACK",
      "thesis_strength": 0.7548,
      "timing_readiness": 0.37,
      "reason_codes": [
        "bullish_thesis_intact",
        "timing_not_confirmed",
        "held_position_context",
        "high_fallback_count",
        "conditional_trigger_preferred",
        "semantic_judge_fallback"
      ],
      "review_required": true,
      "score_now": 0.0528996571136,
      "score_triggered": 0.157249142784,
      "gate_reasons": [
        "high_fallback_count"
      ],
      "data_health": {
        "coverage_score": 0.7200000000000001,
        "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_ONLY_FALLBACK",
        "timing_readiness": 0.37,
        "thesis_multiplier": 1.1529,
        "timing_now": 0.148,
        "timing_triggered": 0.37
      },
      "broker_symbol": "010950",
      "canonical_ticker": "010950.KS",
      "display_name": "S-Oil"
    },
    {
      "snapshot_id": "20260415T171319_kis_68944660-01",
      "instrument": {
        "broker_symbol": "012450",
        "canonical_ticker": "012450.KS",
        "yahoo_symbol": "012450.KS",
        "krx_code": "012450",
        "dart_corp_code": null,
        "display_name": "한화에어로스페이스",
        "exchange": "KRX",
        "country": "KR",
        "currency": "KRW"
      },
      "is_held": true,
      "market_value_krw": 1509000,
      "quantity": 1.0,
      "available_qty": 1.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.72,
        "time_horizon": "medium",
        "entry_logic": "012450.KS에 대한 중기 배분 의견은 비중확대와 상승 방향을 유지한다. 공격적 분석가가 지적한 것처럼 2026-04-14 종가 KRW 1,523,000은 10일 지수이동평균 KRW 1,470,929, 50일 단순이동평균 KRW 1,337,140, 200일 단순이동평균 KRW 1,051,395 및 거래량가중평균 KRW 1,421,083 위에 있어 추세 정렬이 양호하고, RSI 약 60과 양의 MACD도 회복된 모멘텀을 뒷받침한다. 그러나 보수적·중립 분석가가 강조한 대로 주가는 KRW 1,559,000 저항에 매우 가깝고 KRW 1,655,000의 3월 고점 공급 구간도 남아 있으며, ATR이 약 KRW 86,611로 높아 현재가에서 추격 매수의 손익비는 충분하지 않다. 따라서 오늘 즉시 신규 진입하거나 추가 매수하지 않고 대기한다. 신규 또는 추가 진입은 두 조건 중 하나가 충족될 때만 정당화된다: KRW 1,450,000-1,470,000 지지권에서 매도 거래량이 줄고 RSI가 50 위를 유지하며 안정화되는 경우, 또는 KRW 1,559,000을 확대 거래량으로 종가 돌파하고 IR·실적·공시가 방산 마진, 수주잔고 질, 현금전환 또는 유럽·NATO 수주 전환을 함께 확인해 주는 경우다. 이 조건이 충족되면 소규모 시작 포지션은 가능하지만, 현재는 확인이 부족하다.",
        "exit_logic": "기존 보유분은 012450.KS가 KRW 1,450,000-1,470,000 지지권을 유지하고 RSI·MACD가 훼손되지 않는 한 유지한다. KRW 1,559,000-1,655,000 구간에 접근한다는 이유만으로 자동 축소하지는 않지만, 해당 구간에서 상승 거래량이 아닌 매도 거래량 증가와 명확한 거절이 나오면 과도한 비중은 줄인다. 종가가 KRW 1,451,000 아래로 내려간 뒤 KRW 1,470,000 부근 회복에 실패하면 단기 회복 구조가 약화된 것으로 보고 전술 비중을 축소하거나 청산한다. KRW 1,331,000-1,337,000의 50일선·중기 지지권 이탈은 중기 비중확대 논리 재평가 신호다. 다음 IR 또는 실적에서 마진 압박, 현금전환 약화, 불리한 계약 조건, 유럽·NATO 수주 전환 지연이 확인되면 투자 논리를 낮춘다.",
        "position_sizing": "기존 보유자는 통제된 비중확대를 유지할 수 있으나 1 ATR인 약 KRW 86,611, 가능하면 1-2 ATR 변동을 강제 매도 없이 견딜 수 있는 규모로 제한한다. 신규 자금은 확인 전 투입하지 않는다. 조건 충족 시에도 첫 진입은 작게 시작하고, 지지 확인 또는 거래량 동반 돌파 이후에만 단계적으로 추가한다. 보수적 분석가가 지적한 높은 변동성, 52주 고점 부근 위치, Forward PE 약 26, 현금흐름 반복성 미확인 리스크를 반영해 집중 포지션은 피한다.",
        "risk_limits": "타이트한 가격 손절보다 ATR을 반영한 위험관리를 적용한다. 단기 위험 기준은 KRW 1,451,000 아래 종가와 이후 KRW 1,470,000 회복 실패다. 이 경우 전술 비중을 줄인다. 중기 위험은 KRW 1,331,000-1,337,000 이탈에서 크게 상승한다. KRW 1,559,000-1,655,000 저항 구간에서는 확대 거래량과 IR·실적·공시의 질적 확인 없이 매수하지 않는다. 2026-03-04 장중 KRW 1,243,000-KRW 1,655,000의 극단적 변동이 있었던 만큼 돌파 매수도 소규모와 분할 원칙을 적용한다.",
        "catalysts": [
          "012450.KS IR 및 실적 발표에서 방산 마진, 수주잔고 질, 현금전환이 확인되는 경우",
          "2026-04-01 및 2026-04-10 공급계약 공시의 규모, 납기, 마진, 환율 조건이 우호적으로 구체화되는 경우",
          "30개국 NATO 대사 전략 대화 이후 유럽 방산 조달 또는 NATO 관련 수주 전환이 진전되는 경우",
          "KRW 1,559,000을 확대 거래량으로 종가 돌파해 KRW 1,655,000 재시험 가능성이 높아지는 경우",
          "정책금융 또는 은행권 지원이 수출 실행력, 생산능력 확장, 운전자본 부담 완화로 연결되는 경우"
        ],
        "invalidators": [
          "KRW 1,451,000 아래 종가 이후 KRW 1,470,000 회복 실패",
          "KRW 1,331,000-1,337,000 중기 지지권 및 50일선 구간 이탈",
          "IR 또는 실적에서 마진 압박, 현금전환 약화, 시장 기대에 못 미치는 계약 조건이 확인되는 경우",
          "최근 KRW 3.20조 자유현금흐름 개선이 약 KRW 3.06조의 운전자본 변동에 주로 의존했고 반복성이 낮다는 증거",
          "지정학적 긴장 완화 또는 방산주 순환매 이탈로 KOSPI 강세에도 상대 약세가 지속되는 경우"
        ],
        "watchlist_triggers": [
          "KRW 1,450,000-1,470,000 지지권 테스트에서 매도 거래량이 둔화되고 RSI가 50 위를 유지하는지 확인",
          "KRW 1,559,000 위 거래량 동반 일봉 종가 돌파 여부 확인",
          "KRW 1,559,000 부근 거절과 매도 거래량 증가가 동시에 나타나는지 확인",
          "2026-04-01 및 2026-04-10 공급계약의 규모, 일정, 마진, 환율 조건 추가 공시 확인",
          "다음 실적 또는 IR에서 영업마진, 수주잔고, 재고, 운전자본, 유럽 파이프라인 전환에 대한 해설 확인",
          "KRW 1,655,000 재시험 시 돌파 지속성 또는 공급 출회 여부 확인"
        ],
        "data_coverage": {
          "company_news_count": 2,
          "disclosures_count": 5,
          "social_source": "news_derived",
          "macro_items_count": 0
        }
      },
      "data_coverage": {
        "company_news_count": 2,
        "disclosures_count": 5,
        "social_source": "news_derived",
        "macro_items_count": 0
      },
      "quality_flags": [
        "token_usage_unavailable"
      ],
      "vendor_health": {
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4
      },
      "suggested_action_now": "HOLD",
      "suggested_action_if_triggered": "ADD_IF_TRIGGERED",
      "trigger_conditions": [
        "KRW 1,450,000-1,470,000 지지권 테스트에서 매도 거래량이 둔화되고 RSI가 50 위를 유지하는지 확인",
        "KRW 1,559,000 위 거래량 동반 일봉 종가 돌파 여부 확인",
        "KRW 1,559,000 부근 거절과 매도 거래량 증가가 동시에 나타나는지 확인",
        "2026-04-01 및 2026-04-10 공급계약의 규모, 일정, 마진, 환율 조건 추가 공시 확인",
        "다음 실적 또는 IR에서 영업마진, 수주잔고, 재고, 운전자본, 유럽 파이프라인 전환에 대한 해설 확인",
        "KRW 1,655,000 재시험 시 돌파 지속성 또는 공급 출회 여부 확인",
        "012450.KS IR 및 실적 발표에서 방산 마진, 수주잔고 질, 현금전환이 확인되는 경우",
        "2026-04-01 및 2026-04-10 공급계약 공시의 규모, 납기, 마진, 환율 조건이 우호적으로 구체화되는 경우",
        "30개국 NATO 대사 전략 대화 이후 유럽 방산 조달 또는 NATO 관련 수주 전환이 진전되는 경우",
        "KRW 1,559,000을 확대 거래량으로 종가 돌파해 KRW 1,655,000 재시험 가능성이 높아지는 경우",
        "정책금융 또는 은행권 지원이 수출 실행력, 생산능력 확장, 운전자본 부담 완화로 연결되는 경우",
        "KRW 1,451,000 아래 종가 이후 KRW 1,470,000 회복 실패",
        "KRW 1,331,000-1,337,000 중기 지지권 및 50일선 구간 이탈",
        "IR 또는 실적에서 마진 압박, 현금전환 약화, 시장 기대에 못 미치는 계약 조건이 확인되는 경우",
        "최근 KRW 3.20조 자유현금흐름 개선이 약 KRW 3.06조의 운전자본 변동에 주로 의존했고 반복성이 낮다는 증거",
        "지정학적 긴장 완화 또는 방산주 순환매 이탈로 KOSPI 강세에도 상대 약세가 지속되는 경우"
      ],
      "confidence": 0.72,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.76,
        "entry_readiness": 0.37,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다."
      },
      "decision_source": "RULE_ONLY_FALLBACK",
      "thesis_strength": 0.7788,
      "timing_readiness": 0.37,
      "reason_codes": [
        "bullish_thesis_intact",
        "timing_not_confirmed",
        "held_position_context",
        "high_fallback_count",
        "conditional_trigger_preferred",
        "semantic_judge_fallback"
      ],
      "review_required": true,
      "score_now": 0.061645965516799996,
      "score_triggered": 0.17911491379199998,
      "gate_reasons": [
        "high_fallback_count"
      ],
      "data_health": {
        "coverage_score": 0.7200000000000001,
        "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_ONLY_FALLBACK",
        "timing_readiness": 0.37,
        "thesis_multiplier": 1.1673,
        "timing_now": 0.148,
        "timing_triggered": 0.37
      },
      "broker_symbol": "012450",
      "canonical_ticker": "012450.KS",
      "display_name": "한화에어로스페이스"
    },
    {
      "snapshot_id": "20260415T171319_kis_68944660-01",
      "instrument": {
        "broker_symbol": "034020",
        "canonical_ticker": "034020.KS",
        "yahoo_symbol": "034020.KS",
        "krx_code": "034020",
        "dart_corp_code": null,
        "display_name": "두산에너빌리티",
        "exchange": "KRX",
        "country": "KR",
        "currency": "KRW"
      },
      "is_held": true,
      "market_value_krw": 833600,
      "quantity": 8.0,
      "available_qty": 8.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.66,
        "time_horizon": "medium",
        "entry_logic": "034020.KS에 대한 중기 방향성은 건설적이다. 공격적 분석가가 지적한 것처럼 4Q 매출 4.86조 KRW, 영업이익 2121억 KRW, 순이익 728억 KRW 전환, 영업현금흐름 1.397조 KRW, 자유현금흐름 1.206조 KRW, 순차입금 4.306조 KRW에서 2.728조 KRW로 감소한 점은 핵심 개선 신호다. 또한 2026-04-14 종가 99700 KRW가 10일 지수이동평균 98887.76 KRW, 50일 이동평균 98296 KRW, 200일 이동평균 79023 KRW, 거래량가중평균 97589 KRW 위에 있어 회복 구조는 유지된다. 다만 보수적 분석가와 중립 분석가의 지적처럼 101200-101700 KRW 저항이 반복되고, 최근 거래량 170만-190만 주가 과거 800만-1000만 주 모멘텀 구간보다 크게 낮으며, 예상 PER 약 97배와 낮은 이익률은 즉시 추격 매수 근거로 부족하다. 따라서 기존 보유자는 조건부 초과비중을 유지할 수 있으나, 오늘 신규 진입이나 추가 매수는 보류한다. 실행 가능한 진입은 101700 KRW 상향 종가 돌파와 거래량 확대가 동시에 확인되거나, 98200-98900 KRW 조정 구간에서 종가 기준 지지가 확인되고 반등 거래량이 개선될 때로 제한한다.",
        "exit_logic": "기존 노출은 97500 KRW 종가 이탈 시 즉시 위험 축소한다. 이 수준은 거래량가중평균과 50일선 회복의 신뢰가 깨지는 방어선이며, 이탈 시 93600-94900 KRW, 이후 91800 KRW까지 하방 위험이 커진다. 101700 KRW 돌파 후 거래량이 약하거나 빠르게 다시 101700 KRW 아래로 종가가 내려오면 허위 돌파로 보고 돌파 기반 추가분은 축소한다. 미국 원전, SMR, 가스터빈 수주 기대가 지연되거나 마진 개선을 동반한 수주잔고로 전환되지 못하는 경우, 또는 자사주 취득 정정 공시의 규모와 일정이 기대보다 약할 경우에도 투자 근거를 재평가한다.",
        "position_sizing": "신규 자금은 정상 비중보다 낮은 단계적 배분만 허용한다. 베타 1.832와 ATR 약 5.1%를 감안해 저항 부근 추격 매수는 피하고, 확인된 지지 반등 또는 고거래량 돌파 후 부분 진입한다. 기존 초과비중 보유자는 유지 가능하지만 97500 KRW 종가 이탈 시 빠르게 정상 또는 축소 비중으로 낮춘다. 추가 매수는 첫 확인 후 부분, 이후 103000-106000 KRW 재시험과 거래량 지속 여부를 보고 제한적으로 확대한다.",
        "risk_limits": "핵심 전술 방어선은 97500 KRW 종가 이탈이다. 종목의 일반 변동폭이 주당 약 5000 KRW 수준임을 감안하되, 지지 이탈을 중기 투자 논리로 방치하지 않는다. 예상 PER 약 97배, 영업이익률 약 3.4%, 순이익률 약 0.5%, ROE 약 1.7%, 높은 금융비용이 여전히 부담이므로 수주 가시성, 마진 전환, 반복 가능한 현금흐름이 확인되기 전까지 신규 비중은 보수적으로 제한한다. 시장 위험회피가 커질 경우 높은 베타 특성상 손실 확대 가능성을 우선 관리한다.",
        "catalysts": [
          "034020.KS의 미국 대형 원전 수주 진행 또는 계약 가시성에 대한 신뢰도 높은 확인",
          "SMR 또는 가스터빈 수주 확대가 이익 추정치 상향으로 연결되는 증거",
          "자사주 취득 정정 공시에서 의미 있는 규모, 일정, 실행 방식이 확인되는 경우",
          "101700 KRW 상향 종가 돌파와 최근 170만-190만 주 범위를 뚜렷하게 넘는 거래량 확대",
          "103000-106000 KRW 재시험 성공과 기관 또는 외국인 수급 개선",
          "4Q 자유현금흐름 개선이 운전자본 요인이 아니라 영업이익 기반으로 반복되는 증거"
        ],
        "invalidators": [
          "034020.KS가 97500 KRW를 종가 기준으로 이탈",
          "미국 원전, SMR, 가스터빈 수주 기대가 지연, 취소, 또는 저마진 수주로 확인",
          "자사주 취득 정정 내용이 기대보다 작은 규모, 느린 일정, 약한 실행 구조로 확인",
          "2026년 실적에서 낮은 마진, 분기 손실 재발, 운전자본 정상화 이후 현금흐름 반전이 나타남",
          "101700 KRW 돌파 후 거래량이 붙지 않고 빠르게 재이탈하는 허위 돌파",
          "KOSPI 위험선호가 약화되어 고베타 정책·에너지 인프라 종목 수급이 악화"
        ],
        "watchlist_triggers": [
          "034020.KS가 101700 KRW 위에서 종가를 형성하고 거래량이 최근 170만-190만 주 범위를 크게 초과",
          "98200-98900 KRW 조정 구간에서 종가 기준 지지 후 거래량이 개선되며 반등",
          "97500 KRW 종가 이탈 시 WAIT와 보유 편향에서 위험 축소로 전환",
          "OpenDART의 자사주 실행 조건 또는 수주잔고 관련 신규 공시",
          "4Q 현금흐름 강세가 영업이익 개선을 통해 반복되는지 확인되는 분기 지표",
          "101200-101700 KRW 접근 시 거래량이 여전히 부진하면 추가 매수 보류 또는 일부 위험 축소 검토"
        ],
        "data_coverage": {
          "company_news_count": 4,
          "disclosures_count": 1,
          "social_source": "news_derived",
          "macro_items_count": 1
        }
      },
      "data_coverage": {
        "company_news_count": 4,
        "disclosures_count": 1,
        "social_source": "news_derived",
        "macro_items_count": 1
      },
      "quality_flags": [
        "token_usage_unavailable"
      ],
      "vendor_health": {
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4
      },
      "suggested_action_now": "HOLD",
      "suggested_action_if_triggered": "ADD_IF_TRIGGERED",
      "trigger_conditions": [
        "034020.KS가 101700 KRW 위에서 종가를 형성하고 거래량이 최근 170만-190만 주 범위를 크게 초과",
        "98200-98900 KRW 조정 구간에서 종가 기준 지지 후 거래량이 개선되며 반등",
        "97500 KRW 종가 이탈 시 WAIT와 보유 편향에서 위험 축소로 전환",
        "OpenDART의 자사주 실행 조건 또는 수주잔고 관련 신규 공시",
        "4Q 현금흐름 강세가 영업이익 개선을 통해 반복되는지 확인되는 분기 지표",
        "101200-101700 KRW 접근 시 거래량이 여전히 부진하면 추가 매수 보류 또는 일부 위험 축소 검토",
        "034020.KS의 미국 대형 원전 수주 진행 또는 계약 가시성에 대한 신뢰도 높은 확인",
        "SMR 또는 가스터빈 수주 확대가 이익 추정치 상향으로 연결되는 증거",
        "자사주 취득 정정 공시에서 의미 있는 규모, 일정, 실행 방식이 확인되는 경우",
        "101700 KRW 상향 종가 돌파와 최근 170만-190만 주 범위를 뚜렷하게 넘는 거래량 확대",
        "103000-106000 KRW 재시험 성공과 기관 또는 외국인 수급 개선",
        "4Q 자유현금흐름 개선이 운전자본 요인이 아니라 영업이익 기반으로 반복되는 증거",
        "034020.KS가 97500 KRW를 종가 기준으로 이탈",
        "미국 원전, SMR, 가스터빈 수주 기대가 지연, 취소, 또는 저마진 수주로 확인",
        "자사주 취득 정정 내용이 기대보다 작은 규모, 느린 일정, 약한 실행 구조로 확인",
        "2026년 실적에서 낮은 마진, 분기 손실 재발, 운전자본 정상화 이후 현금흐름 반전이 나타남",
        "101700 KRW 돌파 후 거래량이 붙지 않고 빠르게 재이탈하는 허위 돌파",
        "KOSPI 위험선호가 약화되어 고베타 정책·에너지 인프라 종목 수급이 악화"
      ],
      "confidence": 0.66,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.76,
        "entry_readiness": 0.37,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다."
      },
      "decision_source": "RULE_ONLY_FALLBACK",
      "thesis_strength": 0.7608,
      "timing_readiness": 0.37,
      "reason_codes": [
        "bullish_thesis_intact",
        "timing_not_confirmed",
        "held_position_context",
        "high_fallback_count",
        "conditional_trigger_preferred",
        "semantic_judge_fallback"
      ],
      "review_required": true,
      "score_now": 0.05506782064640001,
      "score_triggered": 0.162669551616,
      "gate_reasons": [
        "high_fallback_count"
      ],
      "data_health": {
        "coverage_score": 0.7200000000000001,
        "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_ONLY_FALLBACK",
        "timing_readiness": 0.37,
        "thesis_multiplier": 1.1565,
        "timing_now": 0.148,
        "timing_triggered": 0.37
      },
      "broker_symbol": "034020",
      "canonical_ticker": "034020.KS",
      "display_name": "두산에너빌리티"
    },
    {
      "snapshot_id": "20260415T171319_kis_68944660-01",
      "instrument": {
        "broker_symbol": "042700",
        "canonical_ticker": "042700.KS",
        "yahoo_symbol": "042700.KS",
        "krx_code": "042700",
        "dart_corp_code": null,
        "display_name": "한미반도체",
        "exchange": "KRX",
        "country": "KR",
        "currency": "KRW"
      },
      "is_held": true,
      "market_value_krw": 295000,
      "quantity": 1.0,
      "available_qty": 1.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.64,
        "time_horizon": "medium",
        "entry_logic": "042700.KS는 AI/HBM 장비 대표성, 영업이익률 33.3%, 순이익률 37.1%, ROE 34.8%, ROA 20.6%, 현금성자산 2762억원과 총차입금 25억원 수준의 낮은 레버리지 때문에 중기 투자 매력은 유지된다. 다만 2026-04-14 유효 종가 284000은 10일 EMA 276423, 볼린저 중심선 279825, VWMA 270018을 회복했지만 286000 박스 상단과 290000-300000 안착은 아직 확정되지 않았다. 따라서 오늘은 추격 매수하지 않고 WAIT가 맞다. 진입은 276000-280000 지지 확인 후 매도 압력이 줄고 반등 품질이 개선될 때 소규모 starter를 허용하거나, 286000 위 종가 돌파가 최근 387276-558026주 범위를 의미 있게 웃도는 거래량과 함께 나오고 290000 위 되밀림이 제한될 때 허용한다. 300000 위 수용은 추가 증액 조건이지 즉시 과대 비중 전환 조건은 아니다.",
        "exit_logic": "기보유분은 276000 종가 이탈 시 단기 반등 구조가 훼손된 것으로 보고 축소한다. 270000 이탈은 VWMA와 전술 지지선 훼손으로 판단해 전술 노출을 컷한다. 252000 재시험 또는 이탈은 3월 말 이후 형성된 중기 베이스 훼손으로 보고 중기 bull case를 재검토한다. 다음 IR 또는 실적에서 HBM 장비 주문, 출하 시점, 재고와 재공품의 매출 전환, 고객 수요 가시성이 확인되지 않으면 투자 논리를 낮춘다.",
        "position_sizing": "확인 전 신규 매수는 하지 않는다. 조건이 충족될 때도 평균진폭 18696원, 종가 대비 약 6.6%의 변동성을 감안해 정상 core보다 작은 starter로 시작한다. 276000-280000 지지 확인 진입은 가장 작은 1차 트랜치로 제한하고, 286000 돌파와 290000 위 유지가 확인되면 1차 비중을 허용한다. 300000 위 수용과 거래량 유지, 또는 IR·실적에서 HBM 수요의 숫자 확인이 동반될 때만 단계적으로 증액한다.",
        "risk_limits": "042700.KS 총 노출은 기술적 확인과 유동성 개선 전까지 정상 core 비중보다 낮게 유지한다. 선행 PER 56.7배, 베타 2.245, 2025년 4분기 매출 830억원으로의 둔화, 낮아진 최근 거래량은 손실 속도가 빠를 수 있음을 뜻한다. 공매도 잔고 1조7973억원은 숏커버 연료가 될 수 있지만 확정 촉매 없이는 하락 압력 신호로도 작동할 수 있으므로 단독 bullish 근거로 쓰지 않는다. 일중 변동성 안에 너무 촘촘한 손절을 두지 말고 276000, 270000, 252000의 구조적 가격선을 기준으로 관리한다.",
        "catalysts": [
          "042700.KS가 276000-280000을 방어한 뒤 286000 위로 종가 돌파하고 거래량이 최근 387276-558026주 범위를 의미 있게 상회한다.",
          "290000-300000 구간에서 되밀림이 제한되고 가격 수용이 확인되어 2026-03~2026-04 박스권 조정이 상방으로 해소된다.",
          "IR 또는 다음 실적에서 HBM 장비 수요, 주문 가시성, 출하 일정, 고객 수요, 재고와 재공품의 매출 전환이 확인된다.",
          "AI/HBM 가치사슬과 글로벌 반도체 위험 선호가 유지되어 고마진 장비주에 대한 프리미엄 밸류에이션이 지속된다.",
          "회사별 긍정 뉴스나 수주 가시성이 공매도 잔고 1조7973억원의 일부 숏커버를 유발한다."
        ],
        "invalidators": [
          "042700.KS가 276000을 종가 기준으로 이탈해 10일 EMA와 볼린저 중심선 회복 논리가 약화된다.",
          "270000을 거래량 증가와 함께 이탈해 VWMA 부근 전술 지지선이 훼손된다.",
          "252000을 재시험하거나 이탈해 3월 말 이후의 post-correction base가 무너진다.",
          "다음 실적에서 매출과 영업이익 둔화가 이어지고 주문 회복, 출하 타이밍, 재고의 매출 전환 설명이 부족하다.",
          "HBM/AI 반도체 심리가 반전되거나 고객 집중, 주문 지연, 높은 밸류에이션 부담이 주된 내러티브가 된다."
        ],
        "watchlist_triggers": [
          "286000 돌파의 종가 품질과 거래량이 단순 558026주 상회에 그치는지, 의미 있는 거래대금 증가를 동반하는지 확인한다.",
          "290000-300000 구간에서 안착하는지 또는 박스 상단 실패 돌파로 되밀리는지 관찰한다.",
          "276000-280000 지지 테스트에서 10일 EMA 276423과 볼린저 중심선 279825 부근 매수세가 유지되는지 본다.",
          "거래량이 최근 387276-558026주 수준에 머무는지, 2월 말 급등기 600만-670만주와는 차이가 크다는 점을 감안해 돌파 신뢰도를 조정한다.",
          "2026-04-10 IR 관련 후속 발언, 다음 실적, HBM 장비 주문·출하·고객 수요·재고 전환 데이터를 확인한다.",
          "공매도 잔고가 숏커버로 줄어드는지, 아니면 고평가와 실적 둔화 우려에 따른 추가 압력으로 남는지 추적한다."
        ],
        "data_coverage": {
          "company_news_count": 5,
          "disclosures_count": 2,
          "social_source": "news_derived",
          "macro_items_count": 0
        }
      },
      "data_coverage": {
        "company_news_count": 5,
        "disclosures_count": 2,
        "social_source": "news_derived",
        "macro_items_count": 0
      },
      "quality_flags": [
        "token_usage_unavailable"
      ],
      "vendor_health": {
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4
      },
      "suggested_action_now": "HOLD",
      "suggested_action_if_triggered": "ADD_IF_TRIGGERED",
      "trigger_conditions": [
        "286000 돌파의 종가 품질과 거래량이 단순 558026주 상회에 그치는지, 의미 있는 거래대금 증가를 동반하는지 확인한다.",
        "290000-300000 구간에서 안착하는지 또는 박스 상단 실패 돌파로 되밀리는지 관찰한다.",
        "276000-280000 지지 테스트에서 10일 EMA 276423과 볼린저 중심선 279825 부근 매수세가 유지되는지 본다.",
        "거래량이 최근 387276-558026주 수준에 머무는지, 2월 말 급등기 600만-670만주와는 차이가 크다는 점을 감안해 돌파 신뢰도를 조정한다.",
        "2026-04-10 IR 관련 후속 발언, 다음 실적, HBM 장비 주문·출하·고객 수요·재고 전환 데이터를 확인한다.",
        "공매도 잔고가 숏커버로 줄어드는지, 아니면 고평가와 실적 둔화 우려에 따른 추가 압력으로 남는지 추적한다.",
        "042700.KS가 276000-280000을 방어한 뒤 286000 위로 종가 돌파하고 거래량이 최근 387276-558026주 범위를 의미 있게 상회한다.",
        "290000-300000 구간에서 되밀림이 제한되고 가격 수용이 확인되어 2026-03~2026-04 박스권 조정이 상방으로 해소된다.",
        "IR 또는 다음 실적에서 HBM 장비 수요, 주문 가시성, 출하 일정, 고객 수요, 재고와 재공품의 매출 전환이 확인된다.",
        "AI/HBM 가치사슬과 글로벌 반도체 위험 선호가 유지되어 고마진 장비주에 대한 프리미엄 밸류에이션이 지속된다.",
        "회사별 긍정 뉴스나 수주 가시성이 공매도 잔고 1조7973억원의 일부 숏커버를 유발한다.",
        "042700.KS가 276000을 종가 기준으로 이탈해 10일 EMA와 볼린저 중심선 회복 논리가 약화된다.",
        "270000을 거래량 증가와 함께 이탈해 VWMA 부근 전술 지지선이 훼손된다.",
        "252000을 재시험하거나 이탈해 3월 말 이후의 post-correction base가 무너진다.",
        "다음 실적에서 매출과 영업이익 둔화가 이어지고 주문 회복, 출하 타이밍, 재고의 매출 전환 설명이 부족하다.",
        "HBM/AI 반도체 심리가 반전되거나 고객 집중, 주문 지연, 높은 밸류에이션 부담이 주된 내러티브가 된다."
      ],
      "confidence": 0.64,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.76,
        "entry_readiness": 0.37,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다."
      },
      "decision_source": "RULE_ONLY_FALLBACK",
      "thesis_strength": 0.7548,
      "timing_readiness": 0.37,
      "reason_codes": [
        "bullish_thesis_intact",
        "timing_not_confirmed",
        "held_position_context",
        "high_fallback_count",
        "conditional_trigger_preferred",
        "semantic_judge_fallback"
      ],
      "review_required": true,
      "score_now": 0.0528996571136,
      "score_triggered": 0.157249142784,
      "gate_reasons": [
        "high_fallback_count"
      ],
      "data_health": {
        "coverage_score": 0.7200000000000001,
        "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_ONLY_FALLBACK",
        "timing_readiness": 0.37,
        "thesis_multiplier": 1.1529,
        "timing_now": 0.148,
        "timing_triggered": 0.37
      },
      "broker_symbol": "042700",
      "canonical_ticker": "042700.KS",
      "display_name": "한미반도체"
    },
    {
      "snapshot_id": "20260415T171319_kis_68944660-01",
      "instrument": {
        "broker_symbol": "058470",
        "canonical_ticker": "058470.KQ",
        "yahoo_symbol": "058470.KQ",
        "krx_code": "058470",
        "dart_corp_code": null,
        "display_name": "리노공업",
        "exchange": "KOSDAQ",
        "country": "KR",
        "currency": "KRW"
      },
      "is_held": true,
      "market_value_krw": 225600,
      "quantity": 2.0,
      "available_qty": 2.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.66,
        "time_horizon": "medium",
        "entry_logic": "058470.KQ는 중기 투자 관점에서 유지할 만한 우량 회복 후보지만, 오늘 즉시 추격 매수할 자리는 아니다. 공격적 분석이 지적한 대로 2026-04-14 종가 111600원은 10일 EMA 110323.89원, VWMA 107649.78원, 50일 SMA 105872원, 200일 SMA 66276.99원을 모두 상회하고, MACD가 4월 2일 -389.02에서 4월 14일 2037.97로 회복했으며 RSI 53.49는 과열이 아닌 중립권이다. 또한 영업이익률 약 47.6%, 매출총이익률 약 51.9%, 현금 및 단기투자 4552억원대, 차입금 1억원대, 양의 잉여현금흐름은 프리미엄을 뒷받침한다. 다만 보수적·중립적 분석이 강조한 선행 P/E 약 36배, 2025년 6월 이후 매출과 영업이익 둔화, 외국인 734억원 순매도, 116800-117300원 저항권 앞 거래량 감소, 최근 7일 공시 부재 때문에 신규 진입은 확인이 필요하다. 따라서 방향성은 BULLISH, 기존 보유는 OVERWEIGHT 유지 가능, 즉시 행동은 WAIT이다. 117300원 상향 돌파와 거래량 확대가 동시에 나오거나 107600-110300원 눌림에서 지지를 확인하고 10일 EMA와 VWMA를 회복할 때만 작은 starter가 정당화된다.",
        "exit_logic": "기존 보유분은 058470.KQ가 105000-106000원 지지대를 종가 기준으로 유지하는 동안 보유한다. 110000원을 종가로 이탈하거나 117300원 부근에서 반복적으로 거절되고 거래량이 줄어들면 일부 축소한다. 돌파 매수 후 다시 110000원 또는 10일 EMA 아래로 밀리면 실패한 돌파로 보고 추가 매수를 중단한다. 105000원 아래 종가가 나오면 4월 반등 구조와 50일선 지지 시나리오가 훼손된 것으로 보고 방어 전환 또는 청산한다. 이후 하방은 103200원과 99100원 재시험 가능성을 열어둔다.",
        "position_sizing": "ATR 7017.89원, 종가 대비 약 6%의 변동성을 감안해 평소보다 낮은 비중으로 운용한다. 기존 보유자는 중간 수준의 OVERWEIGHT는 유지할 수 있으나, 저항 돌파나 눌림 지지 확인 전까지 정상 비중 이상의 추가 확대는 피한다. 신규 자금은 조건 충족 시에만 분할로 접근한다. 117300원 거래량 동반 돌파 또는 107600-110300원 지지 확인 후 starter를 넣고, 이후 110000원과 10일 EMA를 지키며 거래량이 따라올 때만 추가한다. 다음 실적에서 매출 재가속이 확인되기 전에는 펀더멘털 확인 전 비중 확대를 제한한다.",
        "risk_limits": "핵심 방어선은 105000-106000원 종가 이탈이다. 그 전 단계에서 110000원 종가 이탈은 단기 모멘텀 약화의 조기 경고로 보고 신규 진입을 멈추거나 일부 축소한다. 107600원 VWMA 부근을 지키지 못하면 눌림 매수 시나리오를 보류한다. 117300원 돌파가 거래량 없이 나오거나 돌파 직후 되밀리면 추격을 금지한다. 변동성이 크므로 손절은 장중 흔들림보다 종가 기준으로 판단하되, 고평가 상태에서 다음 실적이 매출과 영업이익 회복을 보여주지 못하면 밸류에이션 압축 위험을 반영해 비중을 낮춘다.",
        "catalysts": [
          "058470.KQ가 116800-117300원 저항을 거래량 확대와 함께 종가 기준 돌파",
          "4월 13-14일 거래량 578766주와 591983주를 뚜렷하게 넘는 수급 회복",
          "RSI가 60 위로 회복하고 MACD 히스토그램이 409.42에서 재확대",
          "반도체 업종 심리 개선 지속과 AI 메모리·테스트 부품 수요 기대 강화",
          "다음 분기 실적에서 2025년 6월 이후 둔화된 매출과 영업이익의 재가속 확인",
          "건설중인자산 792.9억원에서 1295.0억원 증가와 순유형자산 확대가 수익성 있는 증설로 연결된다는 증거",
          "외국인 734억원 순매도 이후 매도 둔화 또는 순매수 전환"
        ],
        "invalidators": [
          "105000-106000원 종가 이탈로 50일 SMA 부근 지지와 4월 반등 구조 훼손",
          "110000원 종가 이탈 뒤 10일 EMA 회복 실패",
          "RSI가 50 아래로 하락하고 MACD 히스토그램이 음전환",
          "116800-117300원에서 반복적으로 거절되고 거래량이 계속 감소",
          "다음 실적에서 매출과 영업이익 둔화가 이어져 선행 P/E 약 36배 부담이 커지는 경우",
          "외국인 매도가 지속되는 가운데 반도체 동종주 대비 상대 성과가 약화",
          "개별 공시나 수주·마진·가동률 개선 신호 없이 거시 위험선호만으로 상승한 뒤 되돌림 발생"
        ],
        "watchlist_triggers": [
          "117300원 위 종가와 최근 4월 13-14일 거래량 578766-591983주를 웃도는 거래량 동반",
          "107600-110300원 구간 눌림 이후 10일 EMA 110323.89원과 VWMA 107649.78원 재상회",
          "RSI 60 상향 돌파와 MACD 히스토그램 재확대",
          "110000원 종가 이탈 시 단기 모멘텀 약화 경고",
          "105000-106000원 접근 시 기존 보유 위험 축소 여부 점검",
          "공식 공시 또는 실적 발표에서 주문, 마진 방어, 설비 가동률, 매출 재가속 확인",
          "외국인 순매도 둔화 또는 순매수 전환 확인"
        ],
        "data_coverage": {
          "company_news_count": 3,
          "disclosures_count": 0,
          "social_source": "news_derived",
          "macro_items_count": 1
        }
      },
      "data_coverage": {
        "company_news_count": 3,
        "disclosures_count": 0,
        "social_source": "news_derived",
        "macro_items_count": 1
      },
      "quality_flags": [
        "token_usage_unavailable"
      ],
      "vendor_health": {
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 5
      },
      "suggested_action_now": "HOLD",
      "suggested_action_if_triggered": "ADD_IF_TRIGGERED",
      "trigger_conditions": [
        "117300원 위 종가와 최근 4월 13-14일 거래량 578766-591983주를 웃도는 거래량 동반",
        "107600-110300원 구간 눌림 이후 10일 EMA 110323.89원과 VWMA 107649.78원 재상회",
        "RSI 60 상향 돌파와 MACD 히스토그램 재확대",
        "110000원 종가 이탈 시 단기 모멘텀 약화 경고",
        "105000-106000원 접근 시 기존 보유 위험 축소 여부 점검",
        "공식 공시 또는 실적 발표에서 주문, 마진 방어, 설비 가동률, 매출 재가속 확인",
        "외국인 순매도 둔화 또는 순매수 전환 확인",
        "058470.KQ가 116800-117300원 저항을 거래량 확대와 함께 종가 기준 돌파",
        "4월 13-14일 거래량 578766주와 591983주를 뚜렷하게 넘는 수급 회복",
        "RSI가 60 위로 회복하고 MACD 히스토그램이 409.42에서 재확대",
        "반도체 업종 심리 개선 지속과 AI 메모리·테스트 부품 수요 기대 강화",
        "다음 분기 실적에서 2025년 6월 이후 둔화된 매출과 영업이익의 재가속 확인",
        "건설중인자산 792.9억원에서 1295.0억원 증가와 순유형자산 확대가 수익성 있는 증설로 연결된다는 증거",
        "외국인 734억원 순매도 이후 매도 둔화 또는 순매수 전환",
        "105000-106000원 종가 이탈로 50일 SMA 부근 지지와 4월 반등 구조 훼손",
        "110000원 종가 이탈 뒤 10일 EMA 회복 실패",
        "RSI가 50 아래로 하락하고 MACD 히스토그램이 음전환",
        "116800-117300원에서 반복적으로 거절되고 거래량이 계속 감소",
        "다음 실적에서 매출과 영업이익 둔화가 이어져 선행 P/E 약 36배 부담이 커지는 경우",
        "외국인 매도가 지속되는 가운데 반도체 동종주 대비 상대 성과가 약화",
        "개별 공시나 수주·마진·가동률 개선 신호 없이 거시 위험선호만으로 상승한 뒤 되돌림 발생"
      ],
      "confidence": 0.66,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.71,
        "entry_readiness": 0.37,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다."
      },
      "decision_source": "RULE_ONLY_FALLBACK",
      "thesis_strength": 0.7608,
      "timing_readiness": 0.37,
      "reason_codes": [
        "bullish_thesis_intact",
        "timing_not_confirmed",
        "held_position_context",
        "high_fallback_count",
        "conditional_trigger_preferred",
        "semantic_judge_fallback"
      ],
      "review_required": true,
      "score_now": 0.0505492219904,
      "score_triggered": 0.151373054976,
      "gate_reasons": [
        "high_fallback_count"
      ],
      "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.71,
        "decision_source": "RULE_ONLY_FALLBACK",
        "timing_readiness": 0.37,
        "thesis_multiplier": 1.1565,
        "timing_now": 0.148,
        "timing_triggered": 0.37
      },
      "broker_symbol": "058470",
      "canonical_ticker": "058470.KQ",
      "display_name": "리노공업"
    },
    {
      "snapshot_id": "20260415T171319_kis_68944660-01",
      "instrument": {
        "broker_symbol": "064400",
        "canonical_ticker": "064400.KS",
        "yahoo_symbol": "064400.KS",
        "krx_code": "064400",
        "dart_corp_code": null,
        "display_name": "LG CNS",
        "exchange": "KRX",
        "country": "KR",
        "currency": "KRW"
      },
      "is_held": true,
      "market_value_krw": 131400,
      "quantity": 2.0,
      "available_qty": 2.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.64,
        "time_horizon": "medium",
        "entry_logic": "064400.KS는 중기 배분 관점에서 비중 확대 후보로 유지한다. 공격적 분석가가 강조한 TTM 매출 약 KRW 6.13조, 영업이익률 10.95%, ROE 17.34%, 유동비율 2.131, 현금 및 단기투자 KRW 1.68조, Forward PE 12.1배, 배당수익률 2.98%는 투자 가능한 기본 체력을 뒷받침한다. 또한 Modex 2026의 냉동창고 모바일 셔틀, Paris Baguette 미국 공장 계약, 2026-04-01 공급계약 공시 2건은 북미 물류 자동화 옵션을 만든다. 다만 보수적·중립 분석가의 지적처럼 2026-04-14 종가 KRW 62,000은 KRW 63,300 돌파 기준과 50일선 KRW 64,713, 200일선 KRW 65,791 아래에 있고, MACD는 -896.73으로 아직 음수이며, 2026-04-14 거래량 279,402주는 2026-04-09 반등 거래량 748,764주보다 크게 낮다. 따라서 방향성은 BULLISH이나 오늘 즉시 추격 매수하지 않고 WAIT가 맞다. KRW 63,300 종가 돌파와 거래량 회복, 이후 지지 확인이 나오면 소규모 진입을 허용하고, KRW 64,700~65,800 회복과 지지 전환이 확인되면 추가 배정을 검토한다. KRW 60,800~60,000 재테스트가 지지되고 RSI와 거래량이 개선될 때만 방어적 starter가 정당화된다.",
        "exit_logic": "기존 보유자는 064400.KS가 KRW 60,800~60,000 지지대를 유지하고 수주·뉴스 파이프라인이 훼손되지 않는 동안 핵심 보유를 유지한다. KRW 64,700~65,800은 50일선과 200일선 저항대이므로, 거래량 확장 없이 접근하면 일부 차익 실현 또는 리밸런싱을 우선한다. 종가 기준 KRW 59,500 이탈, KRW 60,000 지지 실패, 지지 이탈 시 매도 거래량 증가, MACD 재악화와 함께 KRW 63,300 아래 반복 실패가 나타나면 감축 또는 청산한다. 계약 규모·마진·반복 매출 기여가 미미하거나 다음 실적에서 매출채권 부담으로 영업현금흐름이 악화되면 투자 논리를 재검토한다.",
        "position_sizing": "확인 전 신규 풀사이즈 진입은 금지한다. KRW 63,300 종가 돌파와 최근 평균을 웃도는 거래량, 눌림 지지가 확인되면 정상 위험 예산의 1/4~1/3로 시작한다. KRW 64,700과 KRW 65,800을 거래량과 함께 회복하고 그 구간이 지지로 전환되면 추가 1/3을 검토한다. 계약 경제성, 반복 매출, 다음 분기 현금 전환 개선이 확인될 때만 잔여 비중 확대를 고려한다. ATR이 약 KRW 2,943, 주가 대비 약 4.7%로 높으므로 레버리지는 피하고 손절 폭은 과도하게 좁히지 않는다.",
        "risk_limits": "종가 기준 KRW 59,500 이탈은 강한 방어 행동 기준으로 둔다. KRW 60,000 아래 종가는 즉시 노출 재검토 및 감축 기준이며, KRW 60,800~60,000 지지 확인 없이 KRW 63,300 아래에서 추가 매수하지 않는다. 변동성, 거래량 둔화, 미공개 계약 규모·마진, 2025년 12월 분기 매출채권 변화 -KRW 5,234억, 2026-04-03 지분 관련 공시의 수급 불확실성을 반영해 단일 종목 위험은 보수적으로 제한한다.",
        "catalysts": [
          "064400.KS가 KRW 63,300을 종가 기준 돌파하고 거래량이 최근 평균을 웃돈 뒤 눌림에서 지지 확인.",
          "KRW 64,700과 KRW 65,800을 거래량 증가와 함께 회복해 50일선·200일선 저항대를 지지대로 전환.",
          "Paris Baguette 미국 공장 계약의 규모, 마진, 구축 일정, 유지보수 또는 소프트웨어 반복 매출 구조 공개.",
          "모바일 셔틀 또는 콜드체인 물류 자동화에서 비LG·북미 고객 추가 수주 확인.",
          "다음 분기 실적에서 매출 성장, 영업이익률 안정, 영업현금흐름 회복이 함께 확인.",
          "2026-04-03 최대주주·임원·주요주주 지분 공시가 의미 있는 오버행이나 매물 압박이 아님이 확인."
        ],
        "invalidators": [
          "종가 기준 KRW 59,500 이탈 또는 KRW 60,800~60,000 지지대 재테스트 실패.",
          "상승 시 거래량이 계속 약하고 KRW 63,300~64,700 구간에서 반복적으로 거절.",
          "MACD 개선이 멈추고 RSI가 55~60 구간으로 확장되지 못한 채 재하락.",
          "공급계약과 Paris Baguette 미국 공장 프로젝트가 소규모, 저마진, 긴 회수 기간, 2026년 실적 기여 제한으로 확인.",
          "매출채권 증가와 운전자본 부담으로 영업현금흐름이 이익을 따라가지 못함.",
          "주요주주, 보호예수, 기관 물량 또는 지분 공시 관련 공급이 지속적인 매도 압력으로 확인."
        ],
        "watchlist_triggers": [
          "KRW 63,300 종가 돌파와 최근 평균 이상 거래량 동반.",
          "KRW 64,700 위 일봉 종가 후 성공적인 눌림 지지 확인.",
          "KRW 65,800 돌파와 거래량 확장으로 200일선 회복 확인.",
          "RSI가 55~60 구간으로 확장되고 MACD가 양수권 전환에 접근.",
          "상승일 거래량이 2026-04-14의 279,402주를 넘고, 가능하면 2026-04-09의 748,764주에 근접 또는 초과.",
          "KRW 60,800~60,000 재테스트에서 KRW 59,500 종가 이탈 없이 지지 확인.",
          "2026-04-01 공급계약 2건과 Paris Baguette 미국 공장 자동화 프로젝트의 정량 정보 공개."
        ],
        "data_coverage": {
          "company_news_count": 2,
          "disclosures_count": 5,
          "social_source": "news_derived",
          "macro_items_count": 5
        }
      },
      "data_coverage": {
        "company_news_count": 2,
        "disclosures_count": 5,
        "social_source": "news_derived",
        "macro_items_count": 5
      },
      "quality_flags": [
        "token_usage_unavailable"
      ],
      "vendor_health": {
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4
      },
      "suggested_action_now": "HOLD",
      "suggested_action_if_triggered": "ADD_IF_TRIGGERED",
      "trigger_conditions": [
        "KRW 63,300 종가 돌파와 최근 평균 이상 거래량 동반.",
        "KRW 64,700 위 일봉 종가 후 성공적인 눌림 지지 확인.",
        "KRW 65,800 돌파와 거래량 확장으로 200일선 회복 확인.",
        "RSI가 55~60 구간으로 확장되고 MACD가 양수권 전환에 접근.",
        "상승일 거래량이 2026-04-14의 279,402주를 넘고, 가능하면 2026-04-09의 748,764주에 근접 또는 초과.",
        "KRW 60,800~60,000 재테스트에서 KRW 59,500 종가 이탈 없이 지지 확인.",
        "2026-04-01 공급계약 2건과 Paris Baguette 미국 공장 자동화 프로젝트의 정량 정보 공개.",
        "064400.KS가 KRW 63,300을 종가 기준 돌파하고 거래량이 최근 평균을 웃돈 뒤 눌림에서 지지 확인.",
        "KRW 64,700과 KRW 65,800을 거래량 증가와 함께 회복해 50일선·200일선 저항대를 지지대로 전환.",
        "Paris Baguette 미국 공장 계약의 규모, 마진, 구축 일정, 유지보수 또는 소프트웨어 반복 매출 구조 공개.",
        "모바일 셔틀 또는 콜드체인 물류 자동화에서 비LG·북미 고객 추가 수주 확인.",
        "다음 분기 실적에서 매출 성장, 영업이익률 안정, 영업현금흐름 회복이 함께 확인.",
        "2026-04-03 최대주주·임원·주요주주 지분 공시가 의미 있는 오버행이나 매물 압박이 아님이 확인.",
        "종가 기준 KRW 59,500 이탈 또는 KRW 60,800~60,000 지지대 재테스트 실패.",
        "상승 시 거래량이 계속 약하고 KRW 63,300~64,700 구간에서 반복적으로 거절.",
        "MACD 개선이 멈추고 RSI가 55~60 구간으로 확장되지 못한 채 재하락.",
        "공급계약과 Paris Baguette 미국 공장 프로젝트가 소규모, 저마진, 긴 회수 기간, 2026년 실적 기여 제한으로 확인.",
        "매출채권 증가와 운전자본 부담으로 영업현금흐름이 이익을 따라가지 못함.",
        "주요주주, 보호예수, 기관 물량 또는 지분 공시 관련 공급이 지속적인 매도 압력으로 확인."
      ],
      "confidence": 0.64,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.76,
        "entry_readiness": 0.37,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다."
      },
      "decision_source": "RULE_ONLY_FALLBACK",
      "thesis_strength": 0.7548,
      "timing_readiness": 0.37,
      "reason_codes": [
        "bullish_thesis_intact",
        "timing_not_confirmed",
        "held_position_context",
        "high_fallback_count",
        "conditional_trigger_preferred",
        "semantic_judge_fallback"
      ],
      "review_required": true,
      "score_now": 0.0528996571136,
      "score_triggered": 0.157249142784,
      "gate_reasons": [
        "high_fallback_count"
      ],
      "data_health": {
        "coverage_score": 0.7200000000000001,
        "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_ONLY_FALLBACK",
        "timing_readiness": 0.37,
        "thesis_multiplier": 1.1529,
        "timing_now": 0.148,
        "timing_triggered": 0.37
      },
      "broker_symbol": "064400",
      "canonical_ticker": "064400.KS",
      "display_name": "LG CNS"
    },
    {
      "snapshot_id": "20260415T171319_kis_68944660-01",
      "instrument": {
        "broker_symbol": "095340",
        "canonical_ticker": "095340.KS",
        "yahoo_symbol": "095340.KS",
        "krx_code": "095340",
        "dart_corp_code": null,
        "display_name": "ISC",
        "exchange": "KRX",
        "country": "KR",
        "currency": "KRW"
      },
      "is_held": true,
      "market_value_krw": 449000,
      "quantity": 2.0,
      "available_qty": 2.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.64,
        "time_horizon": "medium",
        "entry_logic": "095340.KS는 매출 약 KRW 72.3 billion, 영업이익 약 KRW 22.0 billion, 영업이익률 약 30.4%, 자유현금흐름 약 KRW 18.2 billion, 현금 및 단기투자 KRW 343.9 billion 대비 총부채 약 KRW 21.2 billion이라는 근거로 중기 투자 매력은 유지된다. 다만 오늘 즉시 신규 진입 또는 추가 매수는 보류한다. 주가는 10일 지수이동평균 약 KRW 239,810 아래에 있고, MACD 히스토그램은 약 -4,868로 악화되었으며, RSI는 50 부근을 회복하지 못했고, 2026-04-10 거래량 2,081,327주 이후 외국인 순매도 약 KRW 175.8 billion 및 공매도 과열 신호가 남아 있다. KRW 239,800-240,000 회복, RSI 50 상회, MACD 히스토그램 축소, 패닉성이 줄어든 거래량이 확인될 때 신규 자금 투입을 검토한다. KRW 216,600 부근 하단 밴드 또는 KRW 203,000 지지권 재시험에서 변동성과 매도 압력이 완화되면 공격적 계좌에 한해 매우 작은 초기 포지션은 정당화될 수 있으나, 현재는 조건 미충족이다.",
        "exit_logic": "기존 보유자는 중기 상승 논리가 유지되는 동안 중간 규모 핵심 포지션만 유지한다. 반등이 KRW 239,800-240,000 아래에서 반복적으로 막히고 거래량이 매도 우위로 커지면 일부 축소한다. 095340.KS가 50일 단순이동평균 부근인 KRW 203,000을 종가 기준으로 뚜렷하게 이탈하고 MACD 히스토그램 악화가 이어지면 강한 위험 축소를 실행한다. AI, HBM, CPO, 테스트 소켓 수요 기대가 실적이나 현금전환으로 확인되지 않거나 매출 둔화와 매출채권 및 재고 증가가 함께 나타나면 중기 논리 자체를 재검토한다.",
        "position_sizing": "신규 자금은 대기한다. 기존 보유자는 과거 급등 구간에서 비중이 커졌다면 정상보다 낮은 위험 예산으로 조정하고, 중간 규모 핵심 보유만 유지한다. 진입 조건이 충족되면 ATR 약 KRW 24,290, 주가 대비 약 11% 수준의 변동성을 반영해 평소보다 작은 초기 포지션으로 시작한다. KRW 240,000 회복 후 지지 확인, RSI 50 이상 유지, MACD 히스토그램 개선, 거래량 질 개선이 이어질 때만 단계적으로 확대한다.",
        "risk_limits": "095340.KS의 단일 종목 위험은 정상보다 낮게 유지한다. KRW 240,000 회복 전에는 KRW 257,000-271,000 반등을 추격하지 않는다. KRW 203,000 종가 이탈은 강제 위험 축소 기준으로 둔다. 외국인 순매도, 공매도 과열, 2026-04-10과 같은 비정상 거래량이 재발하는 날에는 추가 매수를 금지한다. 하단 밴드 접근은 매수 신호가 아니라 관찰 구간으로 취급한다.",
        "catalysts": [
          "AI 서버, HBM, 첨단 패키징, CPO 테스트 소켓 수요가 095340.KS의 매출 성장과 높은 이익률 지속으로 연결되는 경우",
          "SOL AI Semiconductor TOP2 Plus ETF 편입에 따른 테마 및 수급성 매수 유입",
          "다음 실적에서 2025-12-31 분기 강세가 일회성이 아니고 매출채권 및 재고가 건전하다는 확인",
          "KRW 239,800-240,000 회복과 함께 공매도 포지션이 되돌려지며 단기 숏커버링이 발생하는 경우"
        ],
        "invalidators": [
          "095340.KS가 KRW 203,000 부근 50일 단순이동평균 지지권을 종가 기준으로 이탈하고 빠르게 회복하지 못하는 경우",
          "긍정적인 반도체 섹터 흐름에도 외국인 매도와 공매도 압력이 지속되는 경우",
          "매출 성장이 둔화되는 동시에 매출채권 또는 재고가 계속 증가해 현금전환 우려가 커지는 경우",
          "AI, HBM, CPO 기대가 이미 주가에 반영된 상태에서 회사별 공시나 실적 확인이 나오지 않는 경우"
        ],
        "watchlist_triggers": [
          "KRW 239,800-240,000 위 종가 회복, RSI 50 상회, MACD 히스토그램 0을 향한 축소",
          "2026-04-10 거래량 2,081,327주보다 낮고 안정된 거래량으로 KRW 216,600 부근 볼린저 하단 회복",
          "KRW 203,000 지지 재시험 시 장중 흐름 개선, 변동성 축소, 외국인 매도 완화 확인",
          "KRW 257,000-271,000 재진입 시 거래량이 패닉성 추격이 아니라 건전한 누적 매수로 확인",
          "AI 반도체, HBM, CPO, 테스트 소켓 고객 수요를 확인하는 신규 공시 또는 실적 가이던스"
        ],
        "data_coverage": {
          "company_news_count": 5,
          "disclosures_count": 0,
          "social_source": "news_derived",
          "macro_items_count": 0
        }
      },
      "data_coverage": {
        "company_news_count": 5,
        "disclosures_count": 0,
        "social_source": "news_derived",
        "macro_items_count": 0
      },
      "quality_flags": [
        "token_usage_unavailable"
      ],
      "vendor_health": {
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 5
      },
      "suggested_action_now": "HOLD",
      "suggested_action_if_triggered": "ADD_IF_TRIGGERED",
      "trigger_conditions": [
        "KRW 239,800-240,000 위 종가 회복, RSI 50 상회, MACD 히스토그램 0을 향한 축소",
        "2026-04-10 거래량 2,081,327주보다 낮고 안정된 거래량으로 KRW 216,600 부근 볼린저 하단 회복",
        "KRW 203,000 지지 재시험 시 장중 흐름 개선, 변동성 축소, 외국인 매도 완화 확인",
        "KRW 257,000-271,000 재진입 시 거래량이 패닉성 추격이 아니라 건전한 누적 매수로 확인",
        "AI 반도체, HBM, CPO, 테스트 소켓 고객 수요를 확인하는 신규 공시 또는 실적 가이던스",
        "AI 서버, HBM, 첨단 패키징, CPO 테스트 소켓 수요가 095340.KS의 매출 성장과 높은 이익률 지속으로 연결되는 경우",
        "SOL AI Semiconductor TOP2 Plus ETF 편입에 따른 테마 및 수급성 매수 유입",
        "다음 실적에서 2025-12-31 분기 강세가 일회성이 아니고 매출채권 및 재고가 건전하다는 확인",
        "KRW 239,800-240,000 회복과 함께 공매도 포지션이 되돌려지며 단기 숏커버링이 발생하는 경우",
        "095340.KS가 KRW 203,000 부근 50일 단순이동평균 지지권을 종가 기준으로 이탈하고 빠르게 회복하지 못하는 경우",
        "긍정적인 반도체 섹터 흐름에도 외국인 매도와 공매도 압력이 지속되는 경우",
        "매출 성장이 둔화되는 동시에 매출채권 또는 재고가 계속 증가해 현금전환 우려가 커지는 경우",
        "AI, HBM, CPO 기대가 이미 주가에 반영된 상태에서 회사별 공시나 실적 확인이 나오지 않는 경우"
      ],
      "confidence": 0.64,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다.",
      "trigger_profile": {
        "primary_trigger_type": "event_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.71,
        "entry_readiness": 0.33,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다."
      },
      "decision_source": "RULE_ONLY_FALLBACK",
      "thesis_strength": 0.7548,
      "timing_readiness": 0.33,
      "reason_codes": [
        "bullish_thesis_intact",
        "timing_not_confirmed",
        "held_position_context",
        "high_fallback_count",
        "conditional_trigger_preferred",
        "semantic_judge_fallback"
      ],
      "review_required": true,
      "score_now": 0.0422038820864,
      "score_triggered": 0.130509705216,
      "gate_reasons": [
        "high_fallback_count"
      ],
      "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.71,
        "decision_source": "RULE_ONLY_FALLBACK",
        "timing_readiness": 0.33,
        "thesis_multiplier": 1.1529,
        "timing_now": 0.132,
        "timing_triggered": 0.33
      },
      "broker_symbol": "095340",
      "canonical_ticker": "095340.KS",
      "display_name": "ISC"
    },
    {
      "snapshot_id": "20260415T171319_kis_68944660-01",
      "instrument": {
        "broker_symbol": "278470",
        "canonical_ticker": "278470.KS",
        "yahoo_symbol": "278470.KS",
        "krx_code": "278470",
        "dart_corp_code": null,
        "display_name": "에이피알",
        "exchange": "KRX",
        "country": "KR",
        "currency": "KRW"
      },
      "is_held": true,
      "market_value_krw": 413000,
      "quantity": 1.0,
      "available_qty": 1.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.64,
        "time_horizon": "medium",
        "entry_logic": "278470.KS에 대한 중기 방향성은 우호적으로 유지한다. 공격적 분석가가 지적한 2025년 강한 성장, 영업이익률 23.788%, 순이익률 18.965%, ROE 75.3%, 순이익을 웃도는 잉여현금흐름, 해외 성장 기대, 외국인 순매수 보도, 50일 평균 312686원과 200일 평균 241874원 위의 추세는 투자 가능한 상승 논리를 뒷받침한다. 다만 보수적·중립적 분석가가 지적한 대로 2026-04-14 종가 386000원은 50일 평균보다 크게 높고, ATR 24625원은 종가 대비 6.38%로 진입 오류 비용이 크며, 399500원에서 386000원으로 밀린 고점권 대량거래는 추격매수에 불리하다. 따라서 기존 보유는 유지 가능하지만 오늘 신규 진입은 대기한다. 매수 가능한 조건은 362000-351500원이 낮은 거래량으로 지지되고 RSI가 50 위를 유지하는 눌림목, 또는 399500원 종가 돌파와 286905주를 뚜렷하게 넘는 거래량 및 후속 매물 소화 확인이다.",
        "exit_logic": "기존 보유자는 278470.KS가 10일 EMA 부근인 362000원 위를 유지하고 해외 매출 성장, 높은 마진, 강한 현금흐름 논리가 훼손되지 않는 한 중기 비중을 유지한다. 362000원을 거래량 증가와 함께 종가 이탈하면 전술 비중을 줄이고, VWMA 부근 351500원까지 실패하면 단순 조정이 아니라 리스크 재평가 구간으로 전환한다. 다음 실적에서 미국·유럽 매출 성장 둔화, 마케팅 비용 증가에 따른 영업이익률 압박, 재고와 매출채권 질 악화가 확인되면 중기 OVERWEIGHT 근거를 낮춘다.",
        "position_sizing": "OVERWEIGHT는 전면 공격 비중이 아니라 제한적 초과비중으로 운용한다. ATR이 6.38%이고 주가가 50일 평균보다 크게 위에 있으므로 신규 자금은 확인 신호 이후 starter tranche만 허용하며, 지지 방어 또는 399500원 돌파 유지가 확인될 때만 단계적으로 늘린다. 기존 보유자는 유지하되 고점권 뉴스 집중 구간에서 공격적 추가 매수는 금지한다.",
        "risk_limits": "한 번의 정상 ATR 변동으로 강제 청산되지 않도록 여유를 두되, 포트폴리오 손실 한도는 작은 초기 비중으로 통제한다. 핵심 가격선은 362000원, 351500원, 312700원이다. 386000원 아래 고거래량 약세에는 추가 매수하지 않고, 399500원 돌파가 실패하거나 돌파 후 후속 거래일에 매물이 소화되지 않으면 모멘텀 진입을 보류한다. 장중 PER 51.79배와 동일업종 PER 38.60배 대비 프리미엄은 선행 PER 24.45배와 실적 상향이 실제로 확인될 때만 정당화된다고 본다.",
        "catalysts": [
          "278470.KS의 다음 실적에서 미국과 유럽 중심 해외 매출 성장이 지속되는 것",
          "코첼라, medicube 글로벌 노출, BLACKPINK 리사 방문 효과가 실제 판매, 반복 구매, 플랫폼 순위 개선으로 전환되는 증거",
          "DB Securities 목표주가 500000원 상향처럼 해외 성장률 재평가와 이익 추정 상향을 뒷받침하는 추가 증권사 업데이트",
          "외국인과 기관 수요가 이어지며 고점권 거래량을 소화하는 흐름",
          "399500원 종가 돌파와 286905주를 뚜렷하게 넘는 거래량이 동반되는 모멘텀 확인"
        ],
        "invalidators": [
          "362000원 부근 10일 EMA를 거래량 증가와 함께 종가 이탈",
          "351500원 부근 VWMA 실패 후 분산성 매도가 이어지는 흐름",
          "다음 실적에서 마케팅 비용이 매출보다 빠르게 증가해 영업이익률이 압박되는 경우",
          "재고와 매출채권 증가가 해외 sell-through 둔화 또는 채널 재고 부담으로 해석되는 경우",
          "news_derived 감성에 집중된 브랜드 이벤트가 미국·유럽 매출 성장이나 아마존 성과로 연결되지 않는 경우"
        ],
        "watchlist_triggers": [
          "눌림목 매수 후보: 362000-351500원 구간 지지, 거래량 감소, RSI 50 이상 유지",
          "모멘텀 후보: 399500원 종가 돌파, 거래량 286905주를 뚜렷하게 상회, 다음 거래일 매물 소화",
          "위험 축소: 362000원 종가 이탈과 거래량 증가",
          "리스크 재평가: 351500원 VWMA 이탈 후 추가 약세",
          "기본적 확인: 다음 분기 해외 매출 성장, 영업이익률, 재고와 매출채권 질이 프리미엄 밸류에이션을 지지"
        ],
        "data_coverage": {
          "company_news_count": 4,
          "disclosures_count": 1,
          "social_source": "news_derived",
          "macro_items_count": 0
        }
      },
      "data_coverage": {
        "company_news_count": 4,
        "disclosures_count": 1,
        "social_source": "news_derived",
        "macro_items_count": 0
      },
      "quality_flags": [
        "token_usage_unavailable"
      ],
      "vendor_health": {
        "vendor_calls": {
          "yfinance": 15,
          "naver": 3,
          "ecos": 1,
          "opendart": 1,
          "alpha_vantage": 2
        },
        "fallback_count": 4
      },
      "suggested_action_now": "HOLD",
      "suggested_action_if_triggered": "ADD_IF_TRIGGERED",
      "trigger_conditions": [
        "눌림목 매수 후보: 362000-351500원 구간 지지, 거래량 감소, RSI 50 이상 유지",
        "모멘텀 후보: 399500원 종가 돌파, 거래량 286905주를 뚜렷하게 상회, 다음 거래일 매물 소화",
        "위험 축소: 362000원 종가 이탈과 거래량 증가",
        "리스크 재평가: 351500원 VWMA 이탈 후 추가 약세",
        "기본적 확인: 다음 분기 해외 매출 성장, 영업이익률, 재고와 매출채권 질이 프리미엄 밸류에이션을 지지",
        "278470.KS의 다음 실적에서 미국과 유럽 중심 해외 매출 성장이 지속되는 것",
        "코첼라, medicube 글로벌 노출, BLACKPINK 리사 방문 효과가 실제 판매, 반복 구매, 플랫폼 순위 개선으로 전환되는 증거",
        "DB Securities 목표주가 500000원 상향처럼 해외 성장률 재평가와 이익 추정 상향을 뒷받침하는 추가 증권사 업데이트",
        "외국인과 기관 수요가 이어지며 고점권 거래량을 소화하는 흐름",
        "399500원 종가 돌파와 286905주를 뚜렷하게 넘는 거래량이 동반되는 모멘텀 확인",
        "362000원 부근 10일 EMA를 거래량 증가와 함께 종가 이탈",
        "351500원 부근 VWMA 실패 후 분산성 매도가 이어지는 흐름",
        "다음 실적에서 마케팅 비용이 매출보다 빠르게 증가해 영업이익률이 압박되는 경우",
        "재고와 매출채권 증가가 해외 sell-through 둔화 또는 채널 재고 부담으로 해석되는 경우",
        "news_derived 감성에 집중된 브랜드 이벤트가 미국·유럽 매출 성장이나 아마존 성과로 연결되지 않는 경우"
      ],
      "confidence": 0.64,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.76,
        "entry_readiness": 0.37,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "논지는 우호적이지만 아직 실행 타이밍 확인이 부족해 조건부 후보로 두는 편이 안전합니다."
      },
      "decision_source": "RULE_ONLY_FALLBACK",
      "thesis_strength": 0.7548,
      "timing_readiness": 0.37,
      "reason_codes": [
        "bullish_thesis_intact",
        "timing_not_confirmed",
        "held_position_context",
        "high_fallback_count",
        "conditional_trigger_preferred",
        "semantic_judge_fallback"
      ],
      "review_required": true,
      "score_now": 0.0528996571136,
      "score_triggered": 0.157249142784,
      "gate_reasons": [
        "high_fallback_count"
      ],
      "data_health": {
        "coverage_score": 0.7200000000000001,
        "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_ONLY_FALLBACK",
        "timing_readiness": 0.37,
        "thesis_multiplier": 1.1529,
        "timing_now": 0.148,
        "timing_triggered": 0.37
      },
      "broker_symbol": "278470",
      "canonical_ticker": "278470.KS",
      "display_name": "에이피알"
    }
  ]
}