{
  "candidates": [
    {
      "snapshot_id": "20260416T165022_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": 1155000,
      "quantity": 1.0,
      "available_qty": 1.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.69,
        "time_horizon": "medium",
        "entry_logic": "000660.KS에 대한 중기 배분 관점은 여전히 우호적이다. 공격적 분석가가 지적한 것처럼 2026-04-15 기준 10 EMA 1019152, 50 SMA 940248, 200 SMA 570454가 모두 우상향이고, MACD가 2026-04-07 -10148에서 2026-04-15 39669로 급반전했으며 히스토그램도 -10022에서 22392로 확대되어 모멘텀 재가속이 확인된다. 또한 중립적 분석가가 강조한 매출 32.8조원, 영업이익 19.2조원, 영업이익률 58.4%, 영업활동현금흐름 20.9조원, 자유현금흐름 8.6조원, 순부채 13.3조원에서 7.3조원으로 감소한 점은 HBM과 메모리 사이클 개선이 실제 이익과 현금흐름으로 연결되고 있음을 뒷받침한다. 다만 보수적 분석가의 지적처럼 주가는 849000 저점권에서 1100000 부근까지 빠르게 회복했고 ATR 65562로 정상 변동폭이 크며, 1100000은 직전 고가권 저항이다. 따라서 오늘 즉시 추격 매수하지 않고 WAIT한다. 신규 진입은 1100000 위 종가 안착, 거래량 확장, 다음 거래일 재이탈 방어가 함께 확인될 때 소규모 초기 진입을 허용하거나, 더 선호되는 방식으로 1000000-1020000 눌림에서 10 EMA 부근 매수세가 확인될 때 시작한다. 기존 보유자는 중기 우위를 인정해 보유 및 조건부 비중확대 관점을 유지하되, 1100000 부근에서 공격적으로 추가하지 않는다.",
        "exit_logic": "000660.KS가 10 EMA 1019152 부근을 종가로 이탈한 뒤 빠르게 회복하지 못하면 신규 매수를 중단하고 단기 경고로 본다. 1000000을 거래량 증가와 함께 하회하면 기존 노출 일부를 줄인다. 940000-950000의 50 SMA 940248 및 VWMA 947191 지지 구간을 지속적으로 이탈하면 중기 기술적 논리가 훼손된 것으로 보고 강한 감축 또는 퇴출한다. 실적 또는 IR에서 HBM 수요, 가격, 고마진 제품 믹스, DRAM·NAND 가격, CAPEX 대비 현금흐름 회수, 재고와 매출채권 관리가 기대에 못 미치면 상승 논리를 재평가하고 방어적으로 전환한다.",
        "position_sizing": "신규 자금은 확인 전까지 투입하지 않는다. 1100000 위 안착과 거래량 확장이 확인되면 전체 목표 비중의 작은 일부만 초기 진입하고, 다음 거래일 지지 유지와 모멘텀 지속을 확인한 뒤 단계적으로 늘린다. 1000000-1020000 눌림에서 10 EMA 부근 매수세가 확인되는 경우가 더 우선되는 진입이며, 이때도 한 번에 크게 사지 않고 첫 진입은 작게 시작한다. 기존 중기 보유자는 OVERWEIGHT 관점을 유지할 수 있지만 1100000 저항 부근에서는 신규 추가보다 이익 보호와 재진입 여력 확보를 우선한다.",
        "risk_limits": "000660.KS는 베타 1.751과 ATR 65562로 변동성이 높으므로 단일 진입 규모를 제한한다. 진입 후 정상 변동은 대략 1 ATR 범위까지 감안하되, 1000000 부근에서 매수세가 확인되지 않으면 빠르게 노출을 재평가한다. 10 EMA 이탈 후 회복 실패는 경고, 1000000 하회와 거래량 증가는 부분 감축, 940000-950000 이탈은 중기 지지 훼손으로 강한 감축 또는 퇴출 기준이다. CAPEX -12.2조원, 매출채권 18.2조원, 재고 14.3조원 증가처럼 현금흐름 민감도를 높이는 항목은 실적 검증 전까지 포지션 확대를 제한하는 요인으로 반영한다.",
        "catalysts": [
          "HBM 수요와 AI 서버 메모리 주문이 시장 기대보다 강하게 유지되는 경우",
          "DRAM 및 NAND 가격 상승이 다음 보고 기간까지 이어지는 경우",
          "향후 IR 또는 실적 코멘트에서 고마진 제품 믹스, HBM 수요 가시성, 가격 결정력이 확인되는 경우",
          "SK hynix 고유 가이던스와 삼성전자 메모리 사이클 읽기를 바탕으로 추가 이익 추정치 상향이 나오는 경우",
          "KRX 대형 반도체로 자금 유입이 지속되고 글로벌 기술주 위험선호가 유지되는 경우",
          "1100000 위 종가 안착, 거래량 확장, 다음 거래일 지지 방어가 동시에 나타나는 경우"
        ],
        "invalidators": [
          "000660.KS가 1100000 부근에서 재차 거절된 뒤 1000000을 지키지 못하는 경우",
          "940000-950000의 50 SMA 및 VWMA 지지 구간을 지속적으로 이탈하는 경우",
          "HBM 출하, 가격, 마진 코멘트가 높아진 기대에 미달하는 경우",
          "CAPEX 확대가 충분한 수요 가시성 없이 자유현금흐름을 압박하는 경우",
          "재고, 매출채권, 비경상 항목이 악화되어 이익의 질을 훼손하는 경우",
          "미국 ITC, 수출통제, 지정학 리스크가 매출 또는 밸류에이션에 실질적 부담으로 확대되는 경우",
          "RSI가 70에 접근하거나 초과하는 동시에 MACD 히스토그램이 둔화되어 상승 탄력이 약해지는 경우"
        ],
        "watchlist_triggers": [
          "1100000 위 종가 안착과 거래량 확장, 다음 거래일 재이탈 방어가 확인되면 소규모 초기 진입 검토",
          "1000000-1020000 눌림에서 10 EMA 부근 매수세와 장중 수요 개선이 확인되면 선호 진입 검토",
          "10 EMA 1019152 부근 종가 이탈 후 회복 실패 시 신규 매수 중단",
          "1000000 하회와 거래량 확대 시 기존 노출 일부 감축 검토",
          "940000-950000 지지 구간 테스트 시 중기 thesis 유지 여부와 강한 감축 여부 결정",
          "다음 실적 또는 IR에서 HBM 믹스, 메모리 가격, CAPEX, 재고, 매출채권, 자유현금흐름 확인",
          "RSI 70 근접 또는 초과와 MACD 히스토그램 둔화가 동시에 나타나면 차익 보호 검토"
        ],
        "data_coverage": {
          "company_news_count": 4,
          "disclosures_count": 3,
          "social_source": "news_derived",
          "macro_items_count": 1
        }
      },
      "data_coverage": {
        "company_news_count": 4,
        "disclosures_count": 3,
        "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": [
        "1100000 위 종가 안착과 거래량 확장, 다음 거래일 재이탈 방어가 확인되면 소규모 초기 진입 검토",
        "1000000-1020000 눌림에서 10 EMA 부근 매수세와 장중 수요 개선이 확인되면 선호 진입 검토",
        "10 EMA 1019152 부근 종가 이탈 후 회복 실패 시 신규 매수 중단",
        "1000000 하회와 거래량 확대 시 기존 노출 일부 감축 검토",
        "940000-950000 지지 구간 테스트 시 중기 thesis 유지 여부와 강한 감축 여부 결정",
        "다음 실적 또는 IR에서 HBM 믹스, 메모리 가격, CAPEX, 재고, 매출채권, 자유현금흐름 확인",
        "RSI 70 근접 또는 초과와 MACD 히스토그램 둔화가 동시에 나타나면 차익 보호 검토",
        "HBM 수요와 AI 서버 메모리 주문이 시장 기대보다 강하게 유지되는 경우",
        "DRAM 및 NAND 가격 상승이 다음 보고 기간까지 이어지는 경우",
        "향후 IR 또는 실적 코멘트에서 고마진 제품 믹스, HBM 수요 가시성, 가격 결정력이 확인되는 경우",
        "SK hynix 고유 가이던스와 삼성전자 메모리 사이클 읽기를 바탕으로 추가 이익 추정치 상향이 나오는 경우",
        "KRX 대형 반도체로 자금 유입이 지속되고 글로벌 기술주 위험선호가 유지되는 경우",
        "1100000 위 종가 안착, 거래량 확장, 다음 거래일 지지 방어가 동시에 나타나는 경우",
        "000660.KS가 1100000 부근에서 재차 거절된 뒤 1000000을 지키지 못하는 경우",
        "940000-950000의 50 SMA 및 VWMA 지지 구간을 지속적으로 이탈하는 경우",
        "HBM 출하, 가격, 마진 코멘트가 높아진 기대에 미달하는 경우",
        "CAPEX 확대가 충분한 수요 가시성 없이 자유현금흐름을 압박하는 경우",
        "재고, 매출채권, 비경상 항목이 악화되어 이익의 질을 훼손하는 경우",
        "미국 ITC, 수출통제, 지정학 리스크가 매출 또는 밸류에이션에 실질적 부담으로 확대되는 경우",
        "RSI가 70에 접근하거나 초과하는 동시에 MACD 히스토그램이 둔화되어 상승 탄력이 약해지는 경우"
      ],
      "confidence": 0.69,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "SK하이닉스의 중기 논리는 HBM/메모리 사이클, 강한 이익·현금흐름, 우상향 이동평균과 MACD 개선으로 건설적이다. 그러나 현재 행동은 HOLD/WAIT이며, 1100000 저항 부근 급반등 이후 즉시 추격 매수보다 1100000 위 종가 안착과 거래량 확장, 다음 거래일 지지 확인 또는 1000000-1020000 눌림 지지 확인이 필요하다.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.72,
        "entry_readiness": 0.38,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "SK하이닉스의 중기 논리는 HBM/메모리 사이클, 강한 이익·현금흐름, 우상향 이동평균과 MACD 개선으로 건설적이다. 그러나 현재 행동은 HOLD/WAIT이며, 1100000 저항 부근 급반등 이후 즉시 추격 매수보다 1100000 위 종가 안착과 거래량 확장, 다음 거래일 지지 확인 또는 1000000-1020000 눌림 지지 확인이 필요하다."
      },
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.74,
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "resistance_near_1100000",
        "pullback_entry_alternative",
        "high_volatility_atr",
        "held_position_hold_not_add",
        "risk_levels_defined"
      ],
      "review_required": true,
      "score_now": 0.05911004672000001,
      "score_triggered": 0.1727751168,
      "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.72,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.144,
        "timing_now": 0.152,
        "timing_triggered": 0.38
      },
      "broker_symbol": "000660",
      "canonical_ticker": "000660.KS",
      "display_name": "SK하이닉스"
    },
    {
      "snapshot_id": "20260416T165022_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": 534000,
      "quantity": 1.0,
      "available_qty": 1.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.65,
        "time_horizon": "medium",
        "entry_logic": "005380.KS는 중기적으로 비중확대 가능한 우호적 구조를 유지하지만, 오늘 즉시 추격 매수할 정도로 진입 신호가 완성되지는 않았다. 공격적 분석이 지적한 것처럼 445500 저점 이후 2026-04-13 478500, 2026-04-14 491500, 2026-04-15 508000으로 회복했고, 종가가 10일 EMA 489760.70 및 VWMA 482563.48 위에 있으며 RSI가 38.83에서 53.25로, MACD가 -11876.52에서 -3992.84로 개선된 점은 반등 구조를 뒷받침한다. 다만 보수적·중립적 분석이 강조한 대로 508000은 50일 SMA 508176.94와 508000-510000 저항에 막힌 위치이고, 2026-04-15 거래량 867909주는 추세 전환을 압도적으로 확인할 수준은 아니다. 따라서 방향성은 BULLISH, 기존 보유는 유지 가능, 신규 자금은 510000 위 종가와 뚜렷한 거래량 확장 또는 489000-490000 눌림 후 재상승 확인 전까지 WAIT가 적절하다.",
        "exit_logic": "기존 보유분은 005380.KS가 478000-482000 구간 위에서 종가 기준으로 버티는 동안 유지한다. 510000 돌파 시도 후 거래량이 약하거나 510000을 빠르게 재이탈하면 신규 진입을 취소하거나 추가 매수를 보류한다. 482500 VWMA 부근 하회는 비중 축소 검토 신호, 478000 하회 종가는 회복 시나리오 훼손으로 보고 방어적으로 축소한다. 445500-450000 지지 실패는 고변동성 회복 구간이 무너지는 명확한 무효화로 보고 핵심 포지션을 정리한다. 상승 시 525000은 1차 부분 차익 및 리스크 재평가 구간이며, 530000-545000은 거래량, RSI 55-60 이상, MACD 추가 개선이 동반될 때만 추가 목표로 인정한다.",
        "position_sizing": "신규 자금은 확인 전 투입하지 않는다. 510000 위 종가와 867909주 대비 명확한 거래량 확장이 확인되거나, 489000-490000 눌림 이후 해당 구간을 회복하면 정상 비중보다 작은 starter만 허용한다. 이후 RSI가 55-60을 상향 통과하고 MACD가 양전환 방향으로 계속 개선되며 거래량이 유지될 때 단계적으로 증액한다. ATR이 약 27671-27672 KRW로 높고, 2025년 4분기 마진 둔화와 자유현금흐름 약화가 남아 있으므로 초기 포지션은 보통보다 작게 유지한다.",
        "risk_limits": "종가 기준 리스크 관리를 우선한다. 482000 하회는 경고가 아니라 실제 비중 축소 검토 신호, 478000 하회는 위험 축소 기준, 445500-450000 하회는 회복 thesis 무효화 기준이다. 뉴스나 2026-04-16의 5-6%대 급등 보도에 따른 갭 상승은 종가와 거래량 확인 없이 추격하지 않는다. 2025년 4분기 영업이익률 약 3.6%, 자유현금흐름 -5.94조원, 2025년 각 분기 음수 자유현금흐름, 순부채 157.0조원 및 총부채 176.5조원은 리레이팅을 제한할 수 있는 핵심 위험이다. HEV, 자율주행, AI·로보틱스 기대는 인정하되 공시와 실적 확인 전에는 기대 기반 랠리의 되돌림 위험을 함께 관리한다.",
        "catalysts": [
          "005380.KS가 510000 위에서 종가를 형성하고 867909주 대비 명확한 거래량 확장을 동반해 50일 SMA 508176.94 저항 돌파를 확인하는 경우",
          "489000-490000 부근 눌림 이후 10일 EMA 489760.70 주변을 지키고 재상승하며 손익비가 개선되는 경우",
          "RSI가 55-60을 상향 돌파하고 MACD가 -3992.84에서 계속 개선되어 양전환 가능성을 높이는 경우",
          "HEV 수요와 믹스 개선이 2026년 실적 또는 가이던스에서 마진 회복으로 확인되는 경우",
          "US IONIQ 5 자율주행 확대, Motional 실행, DEEPX 협력 등 자율주행·AI·로보틱스 선택권이 상업적 또는 규제 진전으로 구체화되는 경우",
          "주주환원 확대, 애널리스트 추정치 상향, 대형 수출주·자동차 업종으로의 수급 회전이 valuation 재평가를 강화하는 경우"
        ],
        "invalidators": [
          "005380.KS가 508000-510000 저항에서 반복적으로 실패하고 478000-482000 아래로 종가가 내려가는 경우",
          "482500 VWMA 부근 이탈 후 반등하지 못해 최근 매수 기반의 신뢰가 훼손되는 경우",
          "445500-450000 지지가 깨져 445500 저점 이후의 회복 구조가 무너지는 경우",
          "다음 실적에서 2025년 4분기 수준의 낮은 영업이익률과 현금흐름 부진이 지속되는 경우",
          "자유현금흐름이 운전자본 부담과 capex로 계속 깊은 음수를 기록해 주주환원 및 리레이팅 논리가 약화되는 경우",
          "Tesla 등 US EV·자율주행 경쟁, 가격 압박, 보조금·관세·환율 변화가 현대차의 점유율이나 수익성을 훼손하는 경우",
          "최근 상승이 공시·실적·판매·추정치 개선 없이 뉴스와 위험선호에만 의존한 것으로 드러나 거래량 후속 확인이 실패하는 경우"
        ],
        "watchlist_triggers": [
          "510000 위 종가와 867909주 대비 뚜렷한 거래량 확장",
          "489000-490000 눌림 지지 후 재상승 및 10일 EMA 489760.70 회복 유지",
          "RSI 55-60 상향 돌파와 MACD의 지속 개선",
          "525000 돌파 후 즉시 되밀리지 않고 안착하는지 여부",
          "482500 VWMA 또는 478500 최근 저점 하회 여부",
          "2026년 실적·가이던스에서 HEV 수익성, 마진 회복, 자유현금흐름 개선이 확인되는지 여부",
          "자율주행, Motional, AI·로보틱스 관련 뉴스가 단순 기대가 아니라 상업적 성과나 규제 진전으로 연결되는지 여부",
          "공시 부재가 해소되고 주주환원 확대 또는 애널리스트 추정치 상향이 확인되는지 여부"
        ],
        "data_coverage": {
          "company_news_count": 2,
          "disclosures_count": 0,
          "social_source": "news_derived",
          "macro_items_count": 1
        }
      },
      "data_coverage": {
        "company_news_count": 2,
        "disclosures_count": 0,
        "social_source": "news_derived",
        "macro_items_count": 1
      },
      "quality_flags": [
        "token_usage_unavailable",
        "intraday_snapshot_missing_same_day"
      ],
      "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": [
        "510000 위 종가와 867909주 대비 뚜렷한 거래량 확장",
        "489000-490000 눌림 지지 후 재상승 및 10일 EMA 489760.70 회복 유지",
        "RSI 55-60 상향 돌파와 MACD의 지속 개선",
        "525000 돌파 후 즉시 되밀리지 않고 안착하는지 여부",
        "482500 VWMA 또는 478500 최근 저점 하회 여부",
        "2026년 실적·가이던스에서 HEV 수익성, 마진 회복, 자유현금흐름 개선이 확인되는지 여부",
        "자율주행, Motional, AI·로보틱스 관련 뉴스가 단순 기대가 아니라 상업적 성과나 규제 진전으로 연결되는지 여부",
        "공시 부재가 해소되고 주주환원 확대 또는 애널리스트 추정치 상향이 확인되는지 여부",
        "005380.KS가 510000 위에서 종가를 형성하고 867909주 대비 명확한 거래량 확장을 동반해 50일 SMA 508176.94 저항 돌파를 확인하는 경우",
        "489000-490000 부근 눌림 이후 10일 EMA 489760.70 주변을 지키고 재상승하며 손익비가 개선되는 경우",
        "RSI가 55-60을 상향 돌파하고 MACD가 -3992.84에서 계속 개선되어 양전환 가능성을 높이는 경우",
        "HEV 수요와 믹스 개선이 2026년 실적 또는 가이던스에서 마진 회복으로 확인되는 경우",
        "US IONIQ 5 자율주행 확대, Motional 실행, DEEPX 협력 등 자율주행·AI·로보틱스 선택권이 상업적 또는 규제 진전으로 구체화되는 경우",
        "주주환원 확대, 애널리스트 추정치 상향, 대형 수출주·자동차 업종으로의 수급 회전이 valuation 재평가를 강화하는 경우",
        "005380.KS가 508000-510000 저항에서 반복적으로 실패하고 478000-482000 아래로 종가가 내려가는 경우",
        "482500 VWMA 부근 이탈 후 반등하지 못해 최근 매수 기반의 신뢰가 훼손되는 경우",
        "445500-450000 지지가 깨져 445500 저점 이후의 회복 구조가 무너지는 경우",
        "다음 실적에서 2025년 4분기 수준의 낮은 영업이익률과 현금흐름 부진이 지속되는 경우",
        "자유현금흐름이 운전자본 부담과 capex로 계속 깊은 음수를 기록해 주주환원 및 리레이팅 논리가 약화되는 경우",
        "Tesla 등 US EV·자율주행 경쟁, 가격 압박, 보조금·관세·환율 변화가 현대차의 점유율이나 수익성을 훼손하는 경우",
        "최근 상승이 공시·실적·판매·추정치 개선 없이 뉴스와 위험선호에만 의존한 것으로 드러나 거래량 후속 확인이 실패하는 경우"
      ],
      "confidence": 0.65,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "Constructive medium-term Hyundai Motor thesis remains intact for an existing hold, supported by rebound momentum above the 10-day EMA/VWMA, improving RSI/MACD, HEV/autonomous optionality, and valuation re-rating potential. Timing is not yet actionable for adding because price is still pinned near the 508000-510000 resistance and 50-day SMA zone without decisive volume confirmation. Best action is hold/watch, with add only after a close above 510000 on clear volume expansion or a controlled 489000-490000 pullback and reclaim.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.58,
        "entry_readiness": 0.38,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "Constructive medium-term Hyundai Motor thesis remains intact for an existing hold, supported by rebound momentum above the 10-day EMA/VWMA, improving RSI/MACD, HEV/autonomous optionality, and valuation re-rating potential. Timing is not yet actionable for adding because price is still pinned near the 508000-510000 resistance and 50-day SMA zone without decisive volume confirmation. Best action is hold/watch, with add only after a close above 510000 on clear volume expansion or a controlled 489000-490000 pullback and reclaim."
      },
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.66,
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_explicit",
        "breakout_not_confirmed",
        "volume_confirmation_missing",
        "held_position_supports_hold",
        "resistance_near_510000",
        "pullback_reclaim_alternative",
        "fundamental_quality_mixed",
        "data_quality_intraday_missing"
      ],
      "review_required": true,
      "score_now": 0.048040652800000014,
      "score_triggered": 0.145101632,
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.58,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.096,
        "timing_now": 0.152,
        "timing_triggered": 0.38
      },
      "broker_symbol": "005380",
      "canonical_ticker": "005380.KS",
      "display_name": "현대차"
    },
    {
      "snapshot_id": "20260416T165022_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": 1305000,
      "quantity": 6.0,
      "available_qty": 6.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.72,
        "time_horizon": "medium",
        "entry_logic": "005930.KS의 중기 방향성은 우호적이므로 legacy rating은 OVERWEIGHT로 유지한다. 세 분석가가 공통으로 인정한 핵심 근거는 2026-04-15 종가 211000이 10일 EMA 200888, 50일선 186975, VWMA 192802 위에 있고 MACD가 2026-04-02 -193.8에서 2026-04-15 6191.7로 회복했다는 점이다. 펀더멘털도 2025-12-31 분기 영업이익 20.07조 KRW, 영업이익률 약 21.4%, FCF 16.04조 KRW, 현금 및 단기투자 125.85조 KRW로 회복세와 재무 여력이 확인된다. 다만 보수적·중립적 분석가가 지적한 대로 현재 가격은 214500~215500 단기 저항 바로 아래이고, 219000~223000은 2026-02 말 고점 이후 2026-03-04 저가 171900까지 급락했던 매물대다. 또한 2026-04-09 거래량 42320839주가 하락일에 발생했고 이후 2026-04-14~2026-04-15 거래량은 약 2367만~2409만 주로 재유입 확인이 아직 제한적이다. 따라서 방향성은 BULLISH이나 오늘 즉시 추격 매수는 하지 않고, 005930.KS가 215500 위에서 종가 안착하고 최근 평균 이상 거래량을 동반하거나 200000~201000 및 10일 EMA 부근 눌림에서 지지가 확인될 때 starter를 허용한다.",
        "exit_logic": "215500 돌파 실패 후 200000을 종가 기준 이탈하면 신규 진입은 계속 보류하고 기존 전술 비중은 축소한다. 192800 부근 VWMA 종가 이탈은 단기 수급 훼손으로 보고 tactical exposure를 줄이며, 186975 부근 50일선 종가 이탈은 중기 OVERWEIGHT 논리 재검토 기준으로 삼는다. 219000~223000 저항권 접근 시 거래량이 약하거나 장대 음봉·반전 캔들이 나오면 일부 차익 실현을 우선한다. 다음 실적에서 2025-12-31 분기 영업이익 20.07조 KRW 수준의 지속성이 약해지거나 재고 증가가 가격 약세·출하 둔화로 연결되면 HOLD 이하로 낮춘다.",
        "position_sizing": "현재 setup_quality는 DEVELOPING이므로 확인 전 full position은 부적절하다. ATR 10591, 종가 대비 약 5%의 고변동성을 감안해 215500 위 종가와 평균 이상 거래량이 확인될 경우 정상 목표 비중의 35~45% starter만 허용한다. 200000~201000 눌림 지지 확인 시에는 30~40% 범위에서 분할 진입한다. 219000~223000 매물대가 거래량을 동반해 흡수되고 종가가 안정되면 60~75%까지 단계적으로 증액할 수 있다. 100% 목표 비중은 다음 실적에서 영업이익률 20%대 유지, FCF 개선, 재고 회전 악화 부재, HBM 또는 파운드리 경쟁력 개선, 외국인 수급 회복이 함께 확인될 때까지 유보한다.",
        "risk_limits": "과도하게 좁은 손절은 ATR 10591 수준의 정상 변동성에 흔들릴 수 있으므로 피한다. 대신 200000 이탈, 192800 VWMA 이탈, 186975 50일선 이탈을 단계별 위험 축소 기준으로 사용한다. 재고가 2025-09-30 50.33조 KRW에서 2025-12-31 52.64조 KRW로 증가했고 총부채도 16.67조 KRW에서 25.24조 KRW로 늘어난 점은 감시해야 한다. 메모리 가격 둔화, 외국인 순매도 확대, 미국 기술주 조정, TSMC 및 SK하이닉스 대비 HBM·파운드리 경쟁력 격차 확대가 동시에 나타나면 OVERWEIGHT를 방어적으로 낮춘다. 215500 돌파 시에도 거래량의 질이 약하거나 219000 부근에서 매물이 강하면 추가 매수하지 않는다.",
        "catalysts": [
          "005930.KS가 215500 위에서 종가 안착하고 최근 평균 이상 거래량을 동반",
          "219000~223000 매물대를 강한 거래량으로 흡수하고 52주 고점권 재돌파 확인",
          "AI 메모리, HBM, DRAM 가격 강세가 다음 실적 가시성으로 연결",
          "영업이익률 20%대 유지와 FCF 개선 지속",
          "HBM 점유율, 파운드리 수주, 첨단 공정 경쟁력 개선 증거 확인",
          "외국인 순매수 재유입과 KOSPI 기술주 위험선호 회복"
        ],
        "invalidators": [
          "005930.KS가 186975 50일선 아래로 종가 이탈",
          "다음 실적에서 2025-12-31 분기 영업이익 20.07조 KRW 수준이 지속 가능하지 않다는 증거 확인",
          "재고 증가가 출하 둔화 또는 메모리 가격 약세로 연결",
          "TSMC 및 SK하이닉스 대비 HBM, 파운드리, 첨단공정 경쟁력 격차 확대",
          "외국인 순매도 심화와 미국 기술주 조정이 동시에 발생",
          "AI 반도체 기대와 목표주가 상향 뉴스가 실적 개선 없이 선반영으로 끝남"
        ],
        "watchlist_triggers": [
          "215500 위 종가 안착 여부와 돌파일 거래량의 질",
          "219000~223000 저항권에서 매물 흡수 또는 실패 여부",
          "200000~201000 및 10일 EMA 부근 눌림 지지 확인",
          "192800 VWMA 종가 이탈 여부",
          "186975 50일선 종가 이탈 여부",
          "2026-04-09 하락 거래량 42320839주 이후 거래량 재유입 여부",
          "메모리 가격, HBM 수주, 파운드리 신규 수주, 재고 회전 관련 다음 실적 코멘트",
          "OpenDART 지분 변동 공시의 규모와 사유",
          "외국인 순매수 지속 여부와 KOSPI 기술주 수급"
        ],
        "data_coverage": {
          "company_news_count": 4,
          "disclosures_count": 2,
          "social_source": "news_derived",
          "macro_items_count": 1
        }
      },
      "data_coverage": {
        "company_news_count": 4,
        "disclosures_count": 2,
        "social_source": "news_derived",
        "macro_items_count": 1
      },
      "quality_flags": [
        "token_usage_unavailable",
        "intraday_snapshot_missing_same_day"
      ],
      "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": [
        "215500 위 종가 안착 여부와 돌파일 거래량의 질",
        "219000~223000 저항권에서 매물 흡수 또는 실패 여부",
        "200000~201000 및 10일 EMA 부근 눌림 지지 확인",
        "192800 VWMA 종가 이탈 여부",
        "186975 50일선 종가 이탈 여부",
        "2026-04-09 하락 거래량 42320839주 이후 거래량 재유입 여부",
        "메모리 가격, HBM 수주, 파운드리 신규 수주, 재고 회전 관련 다음 실적 코멘트",
        "OpenDART 지분 변동 공시의 규모와 사유",
        "외국인 순매수 지속 여부와 KOSPI 기술주 수급",
        "005930.KS가 215500 위에서 종가 안착하고 최근 평균 이상 거래량을 동반",
        "219000~223000 매물대를 강한 거래량으로 흡수하고 52주 고점권 재돌파 확인",
        "AI 메모리, HBM, DRAM 가격 강세가 다음 실적 가시성으로 연결",
        "영업이익률 20%대 유지와 FCF 개선 지속",
        "HBM 점유율, 파운드리 수주, 첨단 공정 경쟁력 개선 증거 확인",
        "외국인 순매수 재유입과 KOSPI 기술주 위험선호 회복",
        "005930.KS가 186975 50일선 아래로 종가 이탈",
        "다음 실적에서 2025-12-31 분기 영업이익 20.07조 KRW 수준이 지속 가능하지 않다는 증거 확인",
        "재고 증가가 출하 둔화 또는 메모리 가격 약세로 연결",
        "TSMC 및 SK하이닉스 대비 HBM, 파운드리, 첨단공정 경쟁력 격차 확대",
        "외국인 순매도 심화와 미국 기술주 조정이 동시에 발생",
        "AI 반도체 기대와 목표주가 상향 뉴스가 실적 개선 없이 선반영으로 끝남"
      ],
      "confidence": 0.72,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "Samsung Electronics has a constructive medium-term thesis supported by improving profitability, strong cash flow, large liquidity, price above key moving averages, and MACD recovery. However, the action is not ready now: the stock is just below 214500-215500 resistance, faces heavier supply at 219000-223000, and volume confirmation after the prior high-volume down day remains incomplete. Current semantic action is HOLD, with ADD only after a close above 215500 on above-average volume or confirmed support on a pullback near 200000-201000/10-day EMA.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.64,
        "entry_readiness": 0.38,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "Samsung Electronics has a constructive medium-term thesis supported by improving profitability, strong cash flow, large liquidity, price above key moving averages, and MACD recovery. However, the action is not ready now: the stock is just below 214500-215500 resistance, faces heavier supply at 219000-223000, and volume confirmation after the prior high-volume down day remains incomplete. Current semantic action is HOLD, with ADD only after a close above 215500 on above-average volume or confirmed support on a pullback near 200000-201000/10-day EMA."
      },
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait",
        "developing_setup",
        "near_resistance",
        "volume_confirmation_missing",
        "add_only_if_triggered",
        "held_position_hold_now",
        "intraday_snapshot_missing"
      ],
      "review_required": true,
      "score_now": 0.06135838208,
      "score_triggered": 0.17839595519999998,
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.64,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.132,
        "timing_now": 0.152,
        "timing_triggered": 0.38
      },
      "broker_symbol": "005930",
      "canonical_ticker": "005930.KS",
      "display_name": "삼성전자"
    },
    {
      "snapshot_id": "20260416T165022_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": 236200,
      "quantity": 2.0,
      "available_qty": 2.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.6,
        "time_horizon": "medium",
        "entry_logic": "010950.KS의 중기 방향성은 긍정적이지만, 오늘 즉시 신규 진입할 만큼 가격·거래량 확인은 부족하다. 공격적 분석가가 지적한 대로 2025-12-31 분기 영업이익은 3719억 원으로 직전 분기 2292억 원에서 개선됐고, 순이익은 2251억 원으로 확대됐으며, 자유현금흐름은 6134억 원 플러스로 전환됐다. 현금성 자산 1.83조 원 증가와 단기차입금 3.19조 원에서 2.50조 원으로 감소한 점도 회복 논리를 뒷받침한다. 또한 117500원은 50일선 112208.83원과 200일선 81635.41원 위에 있어 중기 상승 구조가 훼손됐다고 보기 어렵다. 다만 보수적·중립적 분석가가 지적한 것처럼 자유현금흐름 개선에는 운전자본 변화 1.42조 원과 유동부채 증가 효과가 포함되어 지속성 검증이 필요하고, 주가는 122000원에서 117500원으로 밀렸으며 MACD 히스토그램은 1134.54에서 775.48로 둔화됐다. 거래량도 844806주, 550835주, 623589주 이후 410000주대까지 줄었고 2026-04-16 유효 일봉 신호가 없어 실행은 대기한다. 116700~117500원 지지 확인과 410000주를 의미 있게 넘는 거래량 회복, 또는 122000원 종가 회복과 거래량 확장이 확인되면 작은 starter는 정당화될 수 있다.",
        "exit_logic": "기존 010950.KS 보유분은 114300원 VWMA·4월 저점권 위에 있는 동안 유지하되, 114300원 종가 이탈 후 빠른 회복이나 거래량 개선이 없으면 감축한다. 112000~112200원 50일선 지지권 종가 이탈은 중기 추세와 회복 논리 훼손으로 보고 신규 매수를 중단하며 매도 또는 전면 재평가한다. 122000~124500원 구간에서 거래량 확장 없이 반복적으로 막히면 부분 차익 실현 또는 손절 기준 상향이 필요하다.",
        "position_sizing": "신규 자금은 정상 핵심 비중보다 작게, 단계적으로만 투입한다. ATR이 약 7216 KRW로 최근 종가의 약 6.1%라서 116700~117500원 지지 확인 시에도 정상 목표 비중의 25~33% 수준 starter만 허용한다. 122000원 종가 회복과 거래량 확장이 뒤따를 때 다음 tranche를 검토한다. 기존 보유자는 중간 수준의 노출은 유지할 수 있지만, 추가 매수는 확인 전까지 보류한다.",
        "risk_limits": "114300원 이탈은 경고가 아니라 감축 검토 신호로 취급한다. 112000~112200원 이탈은 hard stop 또는 thesis reassessment 기준이다. 총차입금 7.91조 원, 순차입금 5.70조 원, 유동비율 0.706, 운전자본 -3.60조 원이라는 취약성을 감안해 정제마진, 유가, KRW, 운전자본, 자유현금흐름, 단기차입금 중 하나라도 악화되면 평균단가 낮추기를 금지한다. 2026-04-16 일봉·장중 스냅샷 부재 때문에 실시간 가격, 거래량, 호가 유동성 확인 전에는 비중을 늘리지 않는다.",
        "catalysts": [
          "010950.KS가 122000원을 종가 기준으로 회복하고 거래량이 확장되며 124500원 재시험 구간에 진입한다.",
          "다음 분기 실적에서 2025-12-31의 영업이익 3719억 원, 순이익 2251억 원, 자유현금흐름 6134억 원 회복이 반복 가능하다는 점이 확인된다.",
          "정제마진, 국제유가 안정, KRW 조건이 재고평가손실 없이 이익 회복을 지지한다.",
          "단기차입금과 순차입금이 대규모 capex에도 추가로 감소한다.",
          "브랜드 수상, MY S-OIL, 품질 보증, 주유소 서비스 경쟁력이 내수 소매 방어력을 보조한다."
        ],
        "invalidators": [
          "010950.KS가 114300원 아래로 종가 이탈한 뒤 빠르게 회복하지 못한다.",
          "010950.KS가 112000~112200원 50일선 지지권 아래로 종가 이탈한다.",
          "다음 분기에서 영업손실 재발, 자유현금흐름 약화, 또는 운전자본 효과 반전이 확인된다.",
          "총차입금, 순차입금, 단기차입금이 capex 부담으로 다시 materially 증가한다.",
          "유가 하락이 재고평가손실과 에너지 섹터 자금 유출로 이어지고 정제마진 개선이 이를 상쇄하지 못한다."
        ],
        "watchlist_triggers": [
          "116700~117500원에서 지지 반응이 나오고 거래량이 최근 410000주대를 의미 있게 상회한다.",
          "122000원 종가 회복과 거래량 확장이 동시에 나타나 starter 이후 추가 tranche 근거를 제공한다.",
          "124500원 최근 고점권에서 돌파 또는 거래량 없는 재차 실패가 확인된다.",
          "114300원 종가 이탈 여부를 첫 번째 downside confirmation으로 확인한다.",
          "112000~112200원 종가 이탈 여부를 중기 thesis deterioration 신호로 확인한다.",
          "정제마진, 국제유가, KRW 환율, 재고평가손익, capex funding, 다음 실적 발표 일정 업데이트를 추적한다."
        ],
        "data_coverage": {
          "company_news_count": 4,
          "disclosures_count": 0,
          "social_source": "news_derived",
          "macro_items_count": 1
        }
      },
      "data_coverage": {
        "company_news_count": 4,
        "disclosures_count": 0,
        "social_source": "news_derived",
        "macro_items_count": 1
      },
      "quality_flags": [
        "token_usage_unavailable",
        "intraday_snapshot_missing_same_day"
      ],
      "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": [
        "116700~117500원에서 지지 반응이 나오고 거래량이 최근 410000주대를 의미 있게 상회한다.",
        "122000원 종가 회복과 거래량 확장이 동시에 나타나 starter 이후 추가 tranche 근거를 제공한다.",
        "124500원 최근 고점권에서 돌파 또는 거래량 없는 재차 실패가 확인된다.",
        "114300원 종가 이탈 여부를 첫 번째 downside confirmation으로 확인한다.",
        "112000~112200원 종가 이탈 여부를 중기 thesis deterioration 신호로 확인한다.",
        "정제마진, 국제유가, KRW 환율, 재고평가손익, capex funding, 다음 실적 발표 일정 업데이트를 추적한다.",
        "010950.KS가 122000원을 종가 기준으로 회복하고 거래량이 확장되며 124500원 재시험 구간에 진입한다.",
        "다음 분기 실적에서 2025-12-31의 영업이익 3719억 원, 순이익 2251억 원, 자유현금흐름 6134억 원 회복이 반복 가능하다는 점이 확인된다.",
        "정제마진, 국제유가 안정, KRW 조건이 재고평가손실 없이 이익 회복을 지지한다.",
        "단기차입금과 순차입금이 대규모 capex에도 추가로 감소한다.",
        "브랜드 수상, MY S-OIL, 품질 보증, 주유소 서비스 경쟁력이 내수 소매 방어력을 보조한다.",
        "010950.KS가 114300원 아래로 종가 이탈한 뒤 빠르게 회복하지 못한다.",
        "010950.KS가 112000~112200원 50일선 지지권 아래로 종가 이탈한다.",
        "다음 분기에서 영업손실 재발, 자유현금흐름 약화, 또는 운전자본 효과 반전이 확인된다.",
        "총차입금, 순차입금, 단기차입금이 capex 부담으로 다시 materially 증가한다.",
        "유가 하락이 재고평가손실과 에너지 섹터 자금 유출로 이어지고 정제마진 개선이 이를 상쇄하지 못한다."
      ],
      "confidence": 0.6,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "S-Oil has a constructive medium-term recovery thesis supported by improved quarterly profit, free cash flow, liquidity, lower short-term borrowings, and price remaining above key moving averages. However, the action is explicitly WAIT/HOLD because the stock has pulled back from 122000 to 117500, momentum and volume have softened, and same-day daily/intraday confirmation is missing. Adding exposure should wait for support confirmation near 116700-117500 with stronger volume or a close back above 122000 with volume expansion.",
      "trigger_profile": {
        "primary_trigger_type": "watch_only",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.66,
        "entry_readiness": 0.34,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "S-Oil has a constructive medium-term recovery thesis supported by improved quarterly profit, free cash flow, liquidity, lower short-term borrowings, and price remaining above key moving averages. However, the action is explicitly WAIT/HOLD because the stock has pulled back from 122000 to 117500, momentum and volume have softened, and same-day daily/intraday confirmation is missing. Adding exposure should wait for support confirmation near 116700-117500 with stronger volume or a close back above 122000 with volume expansion."
      },
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.62,
      "timing_readiness": 0.34,
      "reason_codes": [
        "constructive_recovery_thesis",
        "entry_wait_state",
        "price_volume_confirmation_missing",
        "support_or_breakout_trigger_required",
        "same_day_snapshot_missing",
        "working_capital_quality_risk",
        "debt_and_liquidity_risk"
      ],
      "review_required": true,
      "score_now": 0.03688670720000001,
      "score_triggered": 0.11721676800000001,
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.66,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.34,
        "thesis_multiplier": 1.072,
        "timing_now": 0.136,
        "timing_triggered": 0.34
      },
      "broker_symbol": "010950",
      "canonical_ticker": "010950.KS",
      "display_name": "S-Oil"
    },
    {
      "snapshot_id": "20260416T165022_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": 1519000,
      "quantity": 1.0,
      "available_qty": 1.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.67,
        "time_horizon": "medium",
        "entry_logic": "012450.KS의 중기 배분 의견은 OVERWEIGHT로 유지한다. 공격적 분석가가 지적했듯 최신 종가 1,509,000은 10일 지수이동평균 약 1,477,851, 거래량가중평균 약 1,427,640, 50일 단순이동평균 약 1,341,320 위에 있어 추세가 훼손되지 않았고, RSI 58.74와 양의 MACD는 상승 추세가 아직 살아 있음을 보여준다. 다만 보수적·중립 분석가의 지적처럼 가격은 1,530,000-1,559,000 저항권에 가깝고, 거래량은 153,464로 감소했으며, MACD 히스토그램은 11,707.02에서 9,120.56으로 둔화되었다. 따라서 방향성은 BULLISH지만 오늘 즉시 추격 매수하지 않고 WAIT한다. 신규 진입은 1,559,000 위의 거래량 동반 일봉 종가 확인, 또는 1,477,000-1,427,000 구간의 질서 있는 조정과 수요 확인 후에만 정당화된다. 조건이 충족되면 소규모 STARTER는 가능하다.",
        "exit_logic": "기존 보유분은 1,477,000 부근 10일 지수이동평균을 종가로 이탈한 뒤 빠르게 회복하지 못하면 일부 축소한다. 1,427,000 부근 거래량가중평균을 하향 이탈하면 최근 매수자 지지가 약해진 것으로 보고 추가 매수는 중단한다. 1,341,000 부근 50일 단순이동평균 아래 일봉 종가는 중기 추세 훼손 신호이므로 포트폴리오 태세를 재검토하고 방어적 축소 또는 청산 검토로 전환한다. 실적 발표와 기업설명회에서 매출 성장에도 영업이익률 압박이 지속되거나, 2026-04-10 공급계약의 수익성·납기·운전자본 조건이 불리하거나, 최근 자유현금흐름이 일회성 운전자본 효과에 과도하게 의존한 것으로 확인되면 투자 논리를 낮춘다.",
        "position_sizing": "기존 보유자는 핵심 비중을 유지하되 저항권 돌파 전 공격적 증액은 피한다. 신규 자금은 정상 비중보다 작게 시작한다. 1,559,000 위 거래량 동반 종가가 확인되면 제한적 STARTER 또는 기존 보유분의 부분 ADD를 검토한다. 조정 진입은 1,477,000을 방어하고 RSI가 50 위에서 유지되며 MACD 히스토그램이 안정될 때만 단계적으로 집행한다. 1,427,000 부근 재시험은 명확한 수요와 악재성 공시 부재가 확인될 때만 더 작은 규모로 검토한다. ATR이 약 5.5%로 크고 실적, 공시, 방산 지정학 뉴스에 따른 갭 위험이 있어 초기 비중은 보수적으로 제한한다.",
        "risk_limits": "1,477,000 아래에서는 가격이 해당 구간을 회복하고 거래량이 개선되기 전까지 추가 매수를 금지한다. 단기 위험 기준은 최근 종가에서 약 1 ATR 아래인 1,425,000 부근으로 둔다. 중기 투자 논리의 핵심 위험선은 50일 단순이동평균 부근 1,341,000이다. 1,559,000 돌파 시 거래량이 동반되지 않으면 추격하지 않는다. KOSPI 위험 선호가 급격히 약화되거나, 방산 프리미엄이 축소되거나, 공시가 수익성·현금흐름 가정을 훼손하면 즉시 비중과 등급을 재평가한다.",
        "catalysts": [
          "2026-04-10 단일판매·공급계약 공시가 수주와 매출 가시성을 높였으며, 계약 규모·마진·납기·통화 조건 확인이 추가 상승 촉매가 될 수 있음",
          "2026-04-15에 공지된 실적 발표와 기업설명회에서 수주잔고의 질, 마진 회복, 지속 가능한 현금창출, 가이던스가 확인될 가능성",
          "1,530,000-1,559,000 저항권을 거래량 동반 일봉 종가로 돌파할 경우 기술적 재가속 확인",
          "K9/K9MH 해외 포병 조달 진전 또는 미국 현지화 속도 개선이 방산 성장 프리미엄을 높일 가능성",
          "기관 위험 선호와 KOSPI 강세가 대형 방산 주도주로의 자금 유입을 지속시킬 가능성"
        ],
        "invalidators": [
          "1,477,000 방어 실패 후 1,427,000 부근 거래량가중평균으로 약세가 이어지는 경우",
          "1,341,000 부근 50일 단순이동평균 아래 일봉 종가로 중기 추세가 훼손되는 경우",
          "매출 성장에도 영업이익률 압박이 지속되는 실적 발표",
          "계약 공시의 경제성이 낮거나 납기 지연, 불리한 운전자본 조건, 약한 환위험 방어가 확인되는 경우",
          "미국 포병 시장에서 경쟁사가 현지화, 생산 준비, 조달 신뢰도에서 materially 앞선다는 증거가 강화되는 경우",
          "시장 위험 선호 반전 또는 지정학적 방산 프리미엄 축소로 밸류에이션 압축이 발생하는 경우"
        ],
        "watchlist_triggers": [
          "1,559,000 위 거래량 동반 일봉 종가 확인 시 ADD 검토",
          "1,477,000을 지키는 조정, RSI 50 이상, MACD 히스토그램 안정화 확인 시 STARTER 검토",
          "1,427,000 부근 거래량가중평균 재시험에서 명확한 수요와 악재성 공시 부재 확인 시 단계적 진입 검토",
          "실적 발표와 기업설명회에서 마진 회복, 수주잔고 품질, 지속 가능한 현금창출 확인",
          "공급계약의 계약금액, 마진 구조, 납기, 통화 조건 후속 공시 확인",
          "1,341,000 아래 일봉 종가 발생 시 포트폴리오 태세 하향 검토"
        ],
        "data_coverage": {
          "company_news_count": 2,
          "disclosures_count": 5,
          "social_source": "news_derived",
          "macro_items_count": 1
        }
      },
      "data_coverage": {
        "company_news_count": 2,
        "disclosures_count": 5,
        "social_source": "news_derived",
        "macro_items_count": 1
      },
      "quality_flags": [
        "token_usage_unavailable",
        "intraday_snapshot_missing_same_day"
      ],
      "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": [
        "1,559,000 위 거래량 동반 일봉 종가 확인 시 ADD 검토",
        "1,477,000을 지키는 조정, RSI 50 이상, MACD 히스토그램 안정화 확인 시 STARTER 검토",
        "1,427,000 부근 거래량가중평균 재시험에서 명확한 수요와 악재성 공시 부재 확인 시 단계적 진입 검토",
        "실적 발표와 기업설명회에서 마진 회복, 수주잔고 품질, 지속 가능한 현금창출 확인",
        "공급계약의 계약금액, 마진 구조, 납기, 통화 조건 후속 공시 확인",
        "1,341,000 아래 일봉 종가 발생 시 포트폴리오 태세 하향 검토",
        "2026-04-10 단일판매·공급계약 공시가 수주와 매출 가시성을 높였으며, 계약 규모·마진·납기·통화 조건 확인이 추가 상승 촉매가 될 수 있음",
        "2026-04-15에 공지된 실적 발표와 기업설명회에서 수주잔고의 질, 마진 회복, 지속 가능한 현금창출, 가이던스가 확인될 가능성",
        "1,530,000-1,559,000 저항권을 거래량 동반 일봉 종가로 돌파할 경우 기술적 재가속 확인",
        "K9/K9MH 해외 포병 조달 진전 또는 미국 현지화 속도 개선이 방산 성장 프리미엄을 높일 가능성",
        "기관 위험 선호와 KOSPI 강세가 대형 방산 주도주로의 자금 유입을 지속시킬 가능성",
        "1,477,000 방어 실패 후 1,427,000 부근 거래량가중평균으로 약세가 이어지는 경우",
        "1,341,000 부근 50일 단순이동평균 아래 일봉 종가로 중기 추세가 훼손되는 경우",
        "매출 성장에도 영업이익률 압박이 지속되는 실적 발표",
        "계약 공시의 경제성이 낮거나 납기 지연, 불리한 운전자본 조건, 약한 환위험 방어가 확인되는 경우",
        "미국 포병 시장에서 경쟁사가 현지화, 생산 준비, 조달 신뢰도에서 materially 앞선다는 증거가 강화되는 경우",
        "시장 위험 선호 반전 또는 지정학적 방산 프리미엄 축소로 밸류에이션 압축이 발생하는 경우"
      ],
      "confidence": 0.67,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "Medium-term thesis is constructive for Hanwha Aerospace and supports holding existing exposure, but execution timing is not yet confirmed. Price remains above key trend supports and the plan identifies clear add triggers, especially a volume-backed daily close above 1,559,000 or a controlled pullback holding support. Because current action is WAIT/HOLD, price is near resistance, volume has faded, and momentum is softening, this is not immediately actionable for adding.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.72,
        "entry_readiness": 0.38,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "Medium-term thesis is constructive for Hanwha Aerospace and supports holding existing exposure, but execution timing is not yet confirmed. Price remains above key trend supports and the plan identifies clear add triggers, especially a volume-backed daily close above 1,559,000 or a controlled pullback holding support. Because current action is WAIT/HOLD, price is near resistance, volume has faded, and momentum is softening, this is not immediately actionable for adding."
      },
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "held_position_hold_now",
        "entry_wait_not_actionable",
        "breakout_trigger_defined",
        "near_resistance_zone",
        "volume_confirmation_missing",
        "momentum_softening",
        "event_details_pending",
        "intraday_snapshot_missing"
      ],
      "review_required": true,
      "score_now": 0.05499510272000003,
      "score_triggered": 0.16248775680000008,
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.72,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.108,
        "timing_now": 0.152,
        "timing_triggered": 0.38
      },
      "broker_symbol": "012450",
      "canonical_ticker": "012450.KS",
      "display_name": "한화에어로스페이스"
    },
    {
      "snapshot_id": "20260416T165022_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": 1440400,
      "quantity": 13.0,
      "available_qty": 13.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.64,
        "time_horizon": "medium",
        "entry_logic": "034020.KS의 중기 방향성은 건설적이다. 공격적 분석이 지적한 대로 2026-04-15 종가 104,200원이 10일 EMA 99,853원과 50일 SMA 98,500원을 모두 상회했고, MACD가 -62.61에서 440.48로 양전환했으며, 거래량도 직전 190만주 안팎에서 5,470,474주로 확대됐다. 1Q26 매출 4조 1,511억원, 영업이익 2,105억원 전망도 원전, SMR, 가스터빈, 전력 인프라 기대가 숫자로 연결될 가능성을 뒷받침한다. 다만 보수적 분석이 강조한 선행 PER 102배, 순이익률 0.497%, 영업이익률 3.372%, 분기 이자비용 828억원 수준, 저항권 105,700-108,250 근접, 베타 1.832와 ATR 약 5%를 감안하면 오늘 추격 진입은 부적절하다. 따라서 레거시 배분 의견은 OVERWEIGHT로 유지하되, 즉시 실행은 WAIT로 둔다. 신규 진입은 105,700원 위 종가와 5,470,474주 이상 거래량 확인 후 소규모로 시작하거나, 99,800-98,500원 눌림 지지가 확인되고 반등 거래량이 살아날 때 허용한다.",
        "exit_logic": "신규 전술 포지션은 98,500원 부근 50일 SMA를 종가로 이탈하면 감축 또는 청산한다. 96,600원 이탈은 4월 반등 구조 훼손으로 보고 강한 축소 신호로 처리한다. 중기 보유 논리는 1Q26 실적에서 영업이익 증가뿐 아니라 순이익률, 이자비용, 영업현금흐름, 순차입금, 수주잔고의 마진 품질이 확인되어야 유지된다. 원전·SMR 기대가 실제 계약 규모, 납기, 마진으로 전환되지 않거나, 2025년 4분기 자유현금흐름 1.206조원이 운전자본 효과에 그치고 반복성이 약하다고 확인되면 OVERWEIGHT를 낮춘다.",
        "position_sizing": "기존 보유자는 조건부 OVERWEIGHT를 유지할 수 있으나 105,700-108,250 저항 아래에서는 추가 매수를 하지 않는다. 신규 자금은 확인 전 대기하고, 105,700원 돌파 시에도 목표 비중을 한 번에 채우지 않고 작은 시작 비중만 허용한다. 108,250원 위 안착과 거래량 유지가 확인될 때만 2차 증액을 검토한다. 베타 1.832와 ATR 약 5%를 반영해 손절 기준 98,500원 또는 진입가 대비 약 1 ATR 손실이 포트폴리오 위험 한도를 넘지 않도록 정상보다 낮은 초기 비중을 사용한다.",
        "risk_limits": "주요 전술 한도는 98,500원 종가 이탈이며, 96,600원은 반등 구조의 핵심 무효화 기준이다. RSI가 60을 넘었는데도 105,700-108,250 저항을 돌파하지 못하면 추격 매수와 증액을 중단한다. 돌파 시 거래량이 5,470,474주 미만으로 약해지거나, KOSPI 위험선호가 꺾이거나, 글로벌 원전·인프라 테마 멀티플이 압축되면 진입 조건을 재검토한다. 갭 하락 가능성이 있으므로 손절선 존재만으로 위험이 충분히 통제된다고 보지 않는다.",
        "catalysts": [
          "034020.KS 1Q26 실적이 매출 4조 1,511억원, 영업이익 2,105억원 기대에 부합하고 마진 개선을 확인하는 경우",
          "원전, SMR, 가스터빈, 전력 인프라 수주가 계약 규모, 마진 품질, 납기와 함께 구체적으로 공시되는 경우",
          "105,700원 위 종가와 5,470,474주 이상 거래량이 동반되고, 108,250원 위 안착으로 110,000-112,100원 재시험 가능성이 열리는 경우",
          "2025-12-31 운전자본 효과 이후에도 영업현금흐름과 자유현금흐름이 반복되고 순차입금 감소가 이어지는 경우",
          "2026-04-13 자기주식 취득 정정 공시가 실질적으로 주주친화적이라는 점이 확인되는 경우"
        ],
        "invalidators": [
          "034020.KS가 98,500원 아래로 종가 이탈한 뒤 50일 SMA를 빠르게 회복하지 못하는 경우",
          "96,600원 이탈로 4월 반등 구조가 훼손되는 경우",
          "1Q26 실제 실적이 긍정적 전망을 밑돌거나 순이익률, 이자비용, 현금 전환율에서 품질이 약한 경우",
          "원전·SMR 서사가 기대에 머물고 실제 수주, 수주잔고 품질, 마진 가시성으로 연결되지 않는 경우",
          "KOSPI 또는 글로벌 원전·인프라 관련주의 위험회피 전환으로 테마 멀티플 압축이 발생하는 경우"
        ],
        "watchlist_triggers": [
          "매수 가능 돌파: 034020.KS가 105,700원 위로 종가 마감하고 거래량이 5,470,474주 이상 유지되는지 확인",
          "추가 확인: 108,250원 위에서 최소 하루 이상 안착하고 후속 매수가 110,000-112,100원 방향으로 이어지는지 확인",
          "눌림 진입: 99,800-98,500원 구간에서 지지가 확인되고 반등 거래량과 장중 수급이 개선되는지 확인",
          "경고 신호: RSI가 60을 넘었는데도 105,700-108,250 저항 아래에서 정체되는지 확인",
          "기본 점검: 1Q26 영업이익, 순이익률, 이자비용, 영업현금흐름, 순차입금, 수주잔고와 에너빌리티 부문 성장 내용을 확인"
        ],
        "data_coverage": {
          "company_news_count": 3,
          "disclosures_count": 1,
          "social_source": "news_derived",
          "macro_items_count": 1
        }
      },
      "data_coverage": {
        "company_news_count": 3,
        "disclosures_count": 1,
        "social_source": "news_derived",
        "macro_items_count": 1
      },
      "quality_flags": [
        "token_usage_unavailable",
        "intraday_snapshot_missing_same_day"
      ],
      "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가 105,700원 위로 종가 마감하고 거래량이 5,470,474주 이상 유지되는지 확인",
        "추가 확인: 108,250원 위에서 최소 하루 이상 안착하고 후속 매수가 110,000-112,100원 방향으로 이어지는지 확인",
        "눌림 진입: 99,800-98,500원 구간에서 지지가 확인되고 반등 거래량과 장중 수급이 개선되는지 확인",
        "경고 신호: RSI가 60을 넘었는데도 105,700-108,250 저항 아래에서 정체되는지 확인",
        "기본 점검: 1Q26 영업이익, 순이익률, 이자비용, 영업현금흐름, 순차입금, 수주잔고와 에너빌리티 부문 성장 내용을 확인",
        "034020.KS 1Q26 실적이 매출 4조 1,511억원, 영업이익 2,105억원 기대에 부합하고 마진 개선을 확인하는 경우",
        "원전, SMR, 가스터빈, 전력 인프라 수주가 계약 규모, 마진 품질, 납기와 함께 구체적으로 공시되는 경우",
        "105,700원 위 종가와 5,470,474주 이상 거래량이 동반되고, 108,250원 위 안착으로 110,000-112,100원 재시험 가능성이 열리는 경우",
        "2025-12-31 운전자본 효과 이후에도 영업현금흐름과 자유현금흐름이 반복되고 순차입금 감소가 이어지는 경우",
        "2026-04-13 자기주식 취득 정정 공시가 실질적으로 주주친화적이라는 점이 확인되는 경우",
        "034020.KS가 98,500원 아래로 종가 이탈한 뒤 50일 SMA를 빠르게 회복하지 못하는 경우",
        "96,600원 이탈로 4월 반등 구조가 훼손되는 경우",
        "1Q26 실제 실적이 긍정적 전망을 밑돌거나 순이익률, 이자비용, 현금 전환율에서 품질이 약한 경우",
        "원전·SMR 서사가 기대에 머물고 실제 수주, 수주잔고 품질, 마진 가시성으로 연결되지 않는 경우",
        "KOSPI 또는 글로벌 원전·인프라 관련주의 위험회피 전환으로 테마 멀티플 압축이 발생하는 경우"
      ],
      "confidence": 0.64,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "Medium-term thesis is constructive for existing holdings, supported by price above key moving averages, MACD improvement, expanded volume, and expected 1Q26 earnings/catalysts. However, the plan explicitly says WAIT: price is near 105,700-108,250 resistance, volatility is high, and add/new entry requires either a confirmed close above 105,700 with at least 5,470,474 shares or a supported pullback into 99,800-98,500. Current action is HOLD, not immediate add.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.62,
        "entry_readiness": 0.38,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "Medium-term thesis is constructive for existing holdings, supported by price above key moving averages, MACD improvement, expanded volume, and expected 1Q26 earnings/catalysts. However, the plan explicitly says WAIT: price is near 105,700-108,250 resistance, volatility is high, and add/new entry requires either a confirmed close above 105,700 with at least 5,470,474 shares or a supported pullback into 99,800-98,500. Current action is HOLD, not immediate add."
      },
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.66,
      "timing_readiness": 0.38,
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_trigger_required",
        "near_resistance_zone",
        "volume_confirmation_required",
        "pullback_support_alternative",
        "high_volatility_beta_atr",
        "fundamental_confirmation_pending",
        "intraday_snapshot_missing"
      ],
      "review_required": true,
      "score_now": 0.051412474880000024,
      "score_triggered": 0.15353118720000003,
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.62,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.096,
        "timing_now": 0.152,
        "timing_triggered": 0.38
      },
      "broker_symbol": "034020",
      "canonical_ticker": "034020.KS",
      "display_name": "두산에너빌리티"
    },
    {
      "snapshot_id": "20260416T165022_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": 292000,
      "quantity": 1.0,
      "available_qty": 1.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.68,
        "time_horizon": "medium",
        "entry_logic": "042700.KS는 HBM/TC 본더 성장 노출, 영업이익률 약 33.3%, 순이익률 약 37.1%, ROE 약 34.8%, 낮은 부채와 현금성 자산 약 2762억 KRW 등으로 중기 투자 매력은 유지된다. 2026-04-15 종가 295000은 10일 EMA 279800.65와 50일 SMA 260932.96 위에 있고 MACD도 양전환해 추세 훼손은 아니다. 다만 316000-323000 저항 돌파가 아직 없고, 2026-04-15 거래량 898476주는 2월 이벤트성 600만 주 이상 거래량 대비 확정적 후원 신호가 아니며, 2026-04-16에는 290500-291000 부근 차익실현이 확인됐다. 따라서 방향성은 BULLISH로 유지하되 오늘 즉시 추격 매수하지 않고 WAIT한다. 신규 진입은 286000-280000 지지 확인 또는 316000-323000 거래량 동반 종가 돌파 때만 소형 시작 포지션이 정당화된다.",
        "exit_logic": "기존 보유분은 260000-271000 지지대 위에서 HBM TC 본더 주문 서사가 유지되는 동안 보유한다. 316000-323000 저항권 돌파 시도가 거래량 둔화와 함께 실패하면 일부 축소한다. 종가가 260000 아래로 내려가거나, 251000 재시험에 실패하거나, 다음 실적 및 IR에서 매출 재가속, 주문 가시성, 고마진 유지가 확인되지 않으면 물량을 크게 줄이거나 청산한다.",
        "position_sizing": "베타 약 2.245, ATR 약 18254 KRW로 하루 정상 변동폭이 약 6% 수준이므로 정상 비중보다 낮게 운용한다. 조건 충족 전에는 신규 매수하지 않고, 지지 확인 또는 돌파 확인 뒤에도 작은 1차 tranche만 허용한다. 보수적 의견을 반영해 첫 tranche는 일반 starter보다 작게 시작하며, 실적, IR 후속 가이던스, 주문 가시성 또는 저항 돌파 확인 전에는 full-size 노출로 확대하지 않는다.",
        "risk_limits": "핵심 위험 구간은 260000-271000이다. 260000 종가 이탈은 반등 구조 훼손으로 보고 251000 및 241747.27까지의 하락 위험을 인정한다. 295000 부근에서는 확인 없는 추격을 금지한다. 316000-323000은 거래량이 898476주를 명확히 웃도는 종가 돌파 전까지 저항으로 본다. 손절과 비중은 ATR을 반영해 설정하며, 약 6% 일일 변동에도 강제 청산되지 않도록 포지션을 작게 유지한다.",
        "catalysts": [
          "042700.KS의 HBM TC 본더 수요 확대와 HBM4/HBM5 장비 로드맵 확인",
          "신규 수주, 고객사 설비투자 가속, AI/HBM 패키징 투자와 연결된 실적 추정치 상향",
          "2026-04-10 IR 이후 주문 가시성, 고객 확대, 차세대 장비 준비에 대한 구체적 후속 확인",
          "316000-323000을 거래량 동반 종가 돌파해 333500 고점 재시험 가능성이 열리는 경우",
          "한국 HBM 공급망 핵심주에 대한 반도체 섹터 위험선호와 기관 및 ETF 수급 지속"
        ],
        "invalidators": [
          "042700.KS가 260000 아래로 종가 이탈하고 260000-271000 지지대를 회복하지 못하는 경우",
          "다음 실적에서 2025-12-31 둔화 이후 매출 재가속 없이 부진이 이어지는 경우",
          "성장률 또는 마진 가정 하향으로 forward PER 프리미엄이 압축되는 경우",
          "Hanwha Semitech 등 경쟁사가 TC 본더 점유율, 가격 결정력, 핵심 고객 확보에서 가시적 진전을 보이는 경우",
          "HBM 설비투자 시점 지연, 고객 주문 지연, 또는 HBM 집중 서사가 부정적 심리로 전환되는 경우"
        ],
        "watchlist_triggers": [
          "316000-323000 위 종가 돌파와 898476주를 명확히 웃도는 거래량 확대",
          "286000-280000까지의 조정 후 지지 확인, 거래량 개선, 부정적 주문 뉴스 부재",
          "271000 이탈, 특히 260000 하향 이탈 시 위험 축소 신호",
          "확정 돌파 이후 333500 재시험 여부를 통한 모멘텀 검증",
          "IR, 공시, 뉴스에서 HBM4/HBM5 준비, 주문 잔고, 고객 확장이 확인되는 경우",
          "분기 실적에서 2025-12-31 둔화 이후 매출 재가속과 높은 영업이익률 유지가 확인되는 경우"
        ],
        "data_coverage": {
          "company_news_count": 5,
          "disclosures_count": 1,
          "social_source": "news_derived",
          "macro_items_count": 1
        }
      },
      "data_coverage": {
        "company_news_count": 5,
        "disclosures_count": 1,
        "social_source": "news_derived",
        "macro_items_count": 1
      },
      "quality_flags": [
        "token_usage_unavailable",
        "intraday_snapshot_missing_same_day"
      ],
      "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": [
        "316000-323000 위 종가 돌파와 898476주를 명확히 웃도는 거래량 확대",
        "286000-280000까지의 조정 후 지지 확인, 거래량 개선, 부정적 주문 뉴스 부재",
        "271000 이탈, 특히 260000 하향 이탈 시 위험 축소 신호",
        "확정 돌파 이후 333500 재시험 여부를 통한 모멘텀 검증",
        "IR, 공시, 뉴스에서 HBM4/HBM5 준비, 주문 잔고, 고객 확장이 확인되는 경우",
        "분기 실적에서 2025-12-31 둔화 이후 매출 재가속과 높은 영업이익률 유지가 확인되는 경우",
        "042700.KS의 HBM TC 본더 수요 확대와 HBM4/HBM5 장비 로드맵 확인",
        "신규 수주, 고객사 설비투자 가속, AI/HBM 패키징 투자와 연결된 실적 추정치 상향",
        "2026-04-10 IR 이후 주문 가시성, 고객 확대, 차세대 장비 준비에 대한 구체적 후속 확인",
        "316000-323000을 거래량 동반 종가 돌파해 333500 고점 재시험 가능성이 열리는 경우",
        "한국 HBM 공급망 핵심주에 대한 반도체 섹터 위험선호와 기관 및 ETF 수급 지속",
        "042700.KS가 260000 아래로 종가 이탈하고 260000-271000 지지대를 회복하지 못하는 경우",
        "다음 실적에서 2025-12-31 둔화 이후 매출 재가속 없이 부진이 이어지는 경우",
        "성장률 또는 마진 가정 하향으로 forward PER 프리미엄이 압축되는 경우",
        "Hanwha Semitech 등 경쟁사가 TC 본더 점유율, 가격 결정력, 핵심 고객 확보에서 가시적 진전을 보이는 경우",
        "HBM 설비투자 시점 지연, 고객 주문 지연, 또는 HBM 집중 서사가 부정적 심리로 전환되는 경우"
      ],
      "confidence": 0.68,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "Constructive medium-term HBM/TC-bonder thesis remains intact and existing small holding can be held, but the action timing is not confirmed. The plan explicitly says WAIT, avoid chasing near 295000, and only add after either a volume-backed close above 316000-323000 or a supported pullback around 286000-280000. Current evidence supports watch/hold rather than immediate add.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.74,
        "entry_readiness": 0.36,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "Constructive medium-term HBM/TC-bonder thesis remains intact and existing small holding can be held, but the action timing is not confirmed. The plan explicitly says WAIT, avoid chasing near 295000, and only add after either a volume-backed close above 316000-323000 or a supported pullback around 286000-280000. Current evidence supports watch/hold rather than immediate add."
      },
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.36,
      "reason_codes": [
        "bullish_thesis_waiting_for_confirmation",
        "held_position_hold_not_add",
        "resistance_breakout_unconfirmed",
        "volume_confirmation_missing",
        "support_pullback_alternative_trigger",
        "high_volatility_requires_small_tranche",
        "intraday_data_quality_gap"
      ],
      "review_required": true,
      "score_now": 0.05384697344000001,
      "score_triggered": 0.1596174336,
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.74,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.36,
        "thesis_multiplier": 1.132,
        "timing_now": 0.144,
        "timing_triggered": 0.36
      },
      "broker_symbol": "042700",
      "canonical_ticker": "042700.KS",
      "display_name": "한미반도체"
    },
    {
      "snapshot_id": "20260416T165022_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": 230000,
      "quantity": 2.0,
      "available_qty": 2.0,
      "sector": null,
      "structured_decision": {
        "rating": "HOLD",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.67,
        "time_horizon": "medium",
        "entry_logic": "058470.KQ는 중기적으로 투자 가능한 품질과 추세를 유지한다. 공격적 분석가와 중립 분석가가 지적한 대로 영업이익률 약 32.9%, 순이익률 약 29.2%, 2025년 각 분기 양의 잉여현금흐름, 현금 및 단기금융자산 약 455.2 billion KRW, 차입금 약 113 million KRW의 순현금 구조는 프리미엄을 뒷받침한다. 또한 2026-01-23의 68700에서 2026-03-06의 127000까지 상승한 뒤 2026-03-31의 94400까지 조정되고 2026-04-15에 112800까지 회복했으며, 10일 지수이동평균, 거래량가중이동평균, 50일 단순이동평균, 200일 단순이동평균 위에 있어 추세가 훼손됐다고 보기 어렵다. 다만 보수적 분석가가 강조한 것처럼 2025-06 매출 약 112.5 billion KRW에서 2025-09 약 96.8 billion KRW, 2025-12 약 84.8 billion KRW로 둔화됐고 영업이익도 약 53.4 billion KRW에서 48.3 billion KRW, 40.4 billion KRW로 감소했다. forward PER 약 36.7, 얇은 회사별 뉴스, RSI 54.47, MACD 히스토그램 둔화는 오늘 신규 매수를 정당화하지 못한다. 따라서 방향성은 건설적이나 즉시 진입은 보류한다. 신규 자금은 116800을 명확히 상회하는 거래량 동반 종가 돌파, 또는 106000-110000 구간에서 매도 거래량이 줄고 강한 반등 거래량이 확인될 때만 starter로 검토한다.",
        "exit_logic": "기존 보유분은 중간 수준의 핵심 비중만 유지한다. 058470.KQ가 106000 아래로 종가 이탈하고 거래량이 확대되면 단기 반등 구조와 50일선 지지가 약화되므로 전술 비중을 축소하거나 청산한다. 106000 이탈 후 100000을 지키지 못하면 중기 가정도 재평가하고 잔여 전술 노출을 추가로 줄인다. 반대로 120000-127000 저항권에 접근했는데 거래량이 늘지 않거나 MACD와 RSI가 재가속하지 못하면 일부 이익 실현이 적절하다. 다음 실적에서 매출 안정화, 마진 방어, 증설 자산의 매출 전환이 확인되지 않으면 HOLD 판단을 낮출 수 있다.",
        "position_sizing": "오늘은 신규 자금 투입을 보류한다. 기존 보유자는 ATR이 가격의 약 5.95%로 높다는 점을 반영해 보통보다 낮거나 중간 수준의 핵심 비중만 유지한다. 116800 거래량 돌파 또는 106000-110000 지지 반등이 확인되면 정상 비중이 아니라 starter만 허용하고, 이후 돌파선 재확인이나 더 높은 거래량의 후속 상승이 있을 때 단계적으로 증액한다. 111000-116800 박스 안에서는 공격적 추가 매수를 피한다.",
        "risk_limits": "1차 위험선은 106000 종가 이탈이며, 2차 하방 기준은 100000이다. ATR이 약 5.95%이므로 5-8%의 정상 변동이 포트폴리오 손실 한도를 넘지 않도록 starter 크기를 제한한다. forward PER 약 36.7, 최근 분기 실적 둔화, 혼재된 상대강도, 회사별 촉매 부족을 고려해 116800 위 돌파도 평균 이상 거래량이 없으면 추격하지 않는다. 시장이 강한데 058470.KQ가 계속 뒤처지면 신규 진입 기준을 더 엄격히 적용한다.",
        "catalysts": [
          "058470.KQ가 116800 위에서 평균 이상 거래량을 동반해 일봉 종가를 형성",
          "돌파 이후 120000, 127000 저항권을 향한 후속 상승과 거래량 확장",
          "다음 실적에서 2025-06 이후 둔화된 매출과 영업이익의 안정화 또는 재가속 확인",
          "construction-in-progress가 약 79.3 billion KRW에서 129.5 billion KRW로 증가한 점과 순유형자산 증가가 실제 가동률 및 매출 성장으로 연결되는 증거",
          "테스트 소켓 수요, 주요 고객, 목표가 상향, 자사주, 주주환원 개선 등 회사별 뉴스",
          "AI, 5G, 고성능 컴퓨팅, 첨단 패키징 관련 반도체 테스트 수요의 지속"
        ],
        "invalidators": [
          "106000 아래 종가 이탈과 거래량 확대",
          "106000 이탈 이후 100000 지지 실패",
          "다음 분기에도 매출과 영업이익 감소가 이어지고 회복 신호가 부재",
          "마진 압박으로 프리미엄 밸류에이션 논리가 약화",
          "강한 시장 환경에서도 058470.KQ의 상대 약세가 지속",
          "고객 수요 둔화, 부정적 공시, 증설 투자 수익성 훼손을 시사하는 증거"
        ],
        "watchlist_triggers": [
          "058470.KQ의 116800 상회 일봉 종가와 최근 평균을 뚜렷하게 웃도는 거래량",
          "가격 강세와 함께 RSI가 60 위로 회복",
          "110000-106000 구간으로 조정될 때 매도 거래량이 감소하고 이후 더 강한 거래량으로 반등",
          "조정 이후 거래량가중이동평균과 10일 지수이동평균 위에서 종가 유지",
          "반도체 테스트 수요와 연결된 회사별 공시 또는 애널리스트 추정치 상향",
          "다음 실적에서 매출 안정화, 마진 회복력, 잉여현금흐름 품질 확인"
        ],
        "data_coverage": {
          "company_news_count": 1,
          "disclosures_count": 0,
          "social_source": "news_derived",
          "macro_items_count": 2
        }
      },
      "data_coverage": {
        "company_news_count": 1,
        "disclosures_count": 0,
        "social_source": "news_derived",
        "macro_items_count": 2
      },
      "quality_flags": [
        "token_usage_unavailable",
        "intraday_snapshot_missing_same_day"
      ],
      "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": [
        "058470.KQ의 116800 상회 일봉 종가와 최근 평균을 뚜렷하게 웃도는 거래량",
        "가격 강세와 함께 RSI가 60 위로 회복",
        "110000-106000 구간으로 조정될 때 매도 거래량이 감소하고 이후 더 강한 거래량으로 반등",
        "조정 이후 거래량가중이동평균과 10일 지수이동평균 위에서 종가 유지",
        "반도체 테스트 수요와 연결된 회사별 공시 또는 애널리스트 추정치 상향",
        "다음 실적에서 매출 안정화, 마진 회복력, 잉여현금흐름 품질 확인",
        "058470.KQ가 116800 위에서 평균 이상 거래량을 동반해 일봉 종가를 형성",
        "돌파 이후 120000, 127000 저항권을 향한 후속 상승과 거래량 확장",
        "다음 실적에서 2025-06 이후 둔화된 매출과 영업이익의 안정화 또는 재가속 확인",
        "construction-in-progress가 약 79.3 billion KRW에서 129.5 billion KRW로 증가한 점과 순유형자산 증가가 실제 가동률 및 매출 성장으로 연결되는 증거",
        "테스트 소켓 수요, 주요 고객, 목표가 상향, 자사주, 주주환원 개선 등 회사별 뉴스",
        "AI, 5G, 고성능 컴퓨팅, 첨단 패키징 관련 반도체 테스트 수요의 지속",
        "106000 아래 종가 이탈과 거래량 확대",
        "106000 이탈 이후 100000 지지 실패",
        "다음 분기에도 매출과 영업이익 감소가 이어지고 회복 신호가 부재",
        "마진 압박으로 프리미엄 밸류에이션 논리가 약화",
        "강한 시장 환경에서도 058470.KQ의 상대 약세가 지속",
        "고객 수요 둔화, 부정적 공시, 증설 투자 수익성 훼손을 시사하는 증거"
      ],
      "confidence": 0.67,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "Quality and medium-term trend remain constructive for 058470.KQ, and existing holders can maintain moderate core exposure. Timing is not yet actionable because the plan explicitly waits for either a volume-backed daily close above 116800 or a confirmed support rebound from 106000-110000 before adding. Current price is still in the 111000-116800 consolidation zone, with fading MACD momentum, RSI not yet above 60, limited company-specific news, and recent earnings deceleration.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.63,
        "entry_readiness": 0.42,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "Quality and medium-term trend remain constructive for 058470.KQ, and existing holders can maintain moderate core exposure. Timing is not yet actionable because the plan explicitly waits for either a volume-backed daily close above 116800 or a confirmed support rebound from 106000-110000 before adding. Current price is still in the 111000-116800 consolidation zone, with fading MACD momentum, RSI not yet above 60, limited company-specific news, and recent earnings deceleration."
      },
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.42,
      "reason_codes": [
        "constructive_quality_thesis",
        "held_position_hold_stance",
        "entry_wait",
        "developing_setup",
        "breakout_trigger_defined",
        "support_rebound_alternative",
        "volume_confirmation_required",
        "momentum_not_confirmed",
        "earnings_deceleration",
        "premium_valuation_risk",
        "thin_company_catalyst_coverage",
        "intraday_snapshot_missing"
      ],
      "review_required": true,
      "score_now": 0.05684803328000002,
      "score_triggered": 0.16712008320000005,
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "HOLD",
        "trigger_quality": 0.63,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.42,
        "thesis_multiplier": 1.108,
        "timing_now": 0.168,
        "timing_triggered": 0.42
      },
      "broker_symbol": "058470",
      "canonical_ticker": "058470.KQ",
      "display_name": "리노공업"
    },
    {
      "snapshot_id": "20260416T165022_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": 134200,
      "quantity": 2.0,
      "available_qty": 2.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.68,
        "time_horizon": "medium",
        "entry_logic": "064400.KS의 중기 배분 의견은 OVERWEIGHT로 유지한다. 공격적 분석가가 지적한 대로 2026-04-15 종가 KRW 65,700은 50일 SMA KRW 64,646을 회복했고, 10일 EMA는 4월 7일 KRW 58,700대에서 4월 15일 KRW 61,720까지 상승했으며, MACD는 -2,371.95에서 -439.99로 개선되고 히스토그램은 845.69까지 확대됐다. RSI 57.12도 과열은 아니다. 다만 보수적·중립적 분석가가 강조한 것처럼 50일선 기울기는 아직 하락 중이고, 볼린저 상단 및 저항 KRW 66,600 바로 아래이며, 2026-04-16 장중 검증이 없다. 따라서 방향성은 BULLISH이나 오늘 즉시 추격 매수하지 않고 WAIT한다. 신규 진입은 KRW 66,600 이상 종가 돌파와 최근 평균을 웃도는 거래량이 확인되거나, KRW 64,600 부근 눌림에서 여러 세션 지지가 확인될 때 starter가 정당화된다.",
        "exit_logic": "기존 보유분은 KRW 64,600 위에서 core exposure를 유지할 수 있으나, 종가가 KRW 64,600 아래로 밀리고 50일 SMA 부근을 빠르게 회복하지 못하면 일부 축소한다. KRW 62,000 종가 이탈 시 전술 포지션은 종료한다. KRW 60,000-60,900 방어선이 훼손되면 중기 thesis 자체를 재점검한다. 실적 공시나 IR에서 AI, 클라우드, 스마트팩토리, 물류 자동화, 로봇, 데이터센터 관련 매출 전환, 수주, 마진, 현금전환이 확인되지 않으면 OVERWEIGHT를 낮춘다.",
        "position_sizing": "setup_quality가 DEVELOPING이므로 정상 비중보다 낮은 partial sizing만 허용한다. 이미 보유 중이면 KRW 64,600 위에서는 핵심 물량을 유지하되 KRW 66,600 저항 바로 아래에서 공격적 추가 매수는 피한다. 신규 계좌는 확인 전 진입하지 않고, KRW 66,600 돌파 확인 또는 KRW 64,600 지지 확인 후 starter로 시작한다. ATR 약 KRW 3,025, 가격 대비 약 4.6% 변동성을 감안해 초기 비중은 작게 두고, 돌파 후 거래량 지속과 IR 검증이 누적될 때만 단계적으로 확대한다.",
        "risk_limits": "KRW 64,600은 1차 지지 및 위험 축소 기준, KRW 62,000은 전술 포지션 종료 기준, KRW 60,000-60,900은 중기 thesis 최종 방어선으로 둔다. KRW 68,000-69,000 구간은 1차 재평가 저항대이므로 거래량과 RSI 과열 여부를 재확인한다. 2026-04-16 실시간 검증 부재, 50일선 하락 기울기, 최근 대량 거래 후 변동성, 주요주주 및 lock-up 관련 오버행, 매출채권 및 운전자본 품질, 데이터센터·클라우드 투자에 따른 고정비와 마진 압박 가능성을 모두 반영해 손실 한도를 정상보다 보수적으로 설정한다.",
        "catalysts": [
          "064400.KS가 KRW 66,600 이상으로 종가 돌파하고 거래량이 최근 평균을 웃돌면 회복이 KRW 68,000-69,000으로 확장될 가능성이 커진다.",
          "실적 공시와 IR에서 AI, 클라우드, 스마트팩토리, 물류 자동화, 로봇, 데이터센터 관련 수주, 매출 전환, 마진 방어, 현금전환이 확인되면 중기 OVERWEIGHT 근거가 강화된다.",
          "MODEX 2026 냉동 물류 로봇 공개가 실제 주문 또는 글로벌 자동화 파이프라인으로 이어지면 산업 AI 확장성이 재평가될 수 있다.",
          "Dio AI 업무협약, Korean Air 관련 스마트팩토리 협력, Skilled AI 생태계 확대가 대기업 고객 기반의 산업 AI 수요로 연결되면 성장 서사가 강화된다.",
          "예상 PER 12.52배, 배당수익률 2.82%, ROE 17.34%, 현금 및 단기투자 약 KRW 1.68tn은 성장 옵션 대비 밸류에이션과 재무 완충력을 뒷받침한다."
        ],
        "invalidators": [
          "064400.KS가 KRW 62,000 아래로 종가 이탈해 단기 회복 구조가 깨지는 경우.",
          "KRW 66,600 돌파 시도가 실패하고 KRW 64,600 아래로 되밀려 50일 SMA 회복이 false breakout으로 확인되는 경우.",
          "실적 공시나 IR에서 AI, 로봇, 스마트팩토리, 클라우드, 데이터센터의 수주 전환이나 매출 인식이 부족하고 마진 압박이 확인되는 경우.",
          "매출채권 증가, 운전자본 악화, 약한 영업현금흐름으로 이익의 현금전환 품질이 훼손되는 경우.",
          "주요주주, lock-up, 잠재 매물 부담이 기관 수요로 흡수되지 못하고 가격을 압박하는 경우."
        ],
        "watchlist_triggers": [
          "KRW 66,600 이상 종가와 최근 평균 이상 거래량이 동시에 확인되는지 점검한다.",
          "KRW 64,600 부근으로 눌린 뒤 여러 세션 동안 지지되어 저항이 지지로 전환되는지 확인한다.",
          "MACD가 0선을 상향 돌파하고 MACD 히스토그램 양수가 유지되는지 관찰한다.",
          "RSI가 상승하되 KRW 66,600 또는 KRW 68,000-69,000 저항대에서 70에 너무 빠르게 접근하지 않는지 확인한다.",
          "IR에서 AI, 물류 로봇, 스마트팩토리, 클라우드, 데이터센터 capex, backlog, 마진, 현금전환에 대한 구체 수치가 제시되는지 확인한다.",
          "OpenDART 공시에서 주요주주 변화, lock-up 위험, 물량 부담, 물질 계약이 명확해지는지 추적한다."
        ],
        "data_coverage": {
          "company_news_count": 5,
          "disclosures_count": 3,
          "social_source": "news_derived",
          "macro_items_count": 0
        }
      },
      "data_coverage": {
        "company_news_count": 5,
        "disclosures_count": 3,
        "social_source": "news_derived",
        "macro_items_count": 0
      },
      "quality_flags": [
        "token_usage_unavailable",
        "intraday_snapshot_missing_same_day"
      ],
      "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 66,600 이상 종가와 최근 평균 이상 거래량이 동시에 확인되는지 점검한다.",
        "KRW 64,600 부근으로 눌린 뒤 여러 세션 동안 지지되어 저항이 지지로 전환되는지 확인한다.",
        "MACD가 0선을 상향 돌파하고 MACD 히스토그램 양수가 유지되는지 관찰한다.",
        "RSI가 상승하되 KRW 66,600 또는 KRW 68,000-69,000 저항대에서 70에 너무 빠르게 접근하지 않는지 확인한다.",
        "IR에서 AI, 물류 로봇, 스마트팩토리, 클라우드, 데이터센터 capex, backlog, 마진, 현금전환에 대한 구체 수치가 제시되는지 확인한다.",
        "OpenDART 공시에서 주요주주 변화, lock-up 위험, 물량 부담, 물질 계약이 명확해지는지 추적한다.",
        "064400.KS가 KRW 66,600 이상으로 종가 돌파하고 거래량이 최근 평균을 웃돌면 회복이 KRW 68,000-69,000으로 확장될 가능성이 커진다.",
        "실적 공시와 IR에서 AI, 클라우드, 스마트팩토리, 물류 자동화, 로봇, 데이터센터 관련 수주, 매출 전환, 마진 방어, 현금전환이 확인되면 중기 OVERWEIGHT 근거가 강화된다.",
        "MODEX 2026 냉동 물류 로봇 공개가 실제 주문 또는 글로벌 자동화 파이프라인으로 이어지면 산업 AI 확장성이 재평가될 수 있다.",
        "Dio AI 업무협약, Korean Air 관련 스마트팩토리 협력, Skilled AI 생태계 확대가 대기업 고객 기반의 산업 AI 수요로 연결되면 성장 서사가 강화된다.",
        "예상 PER 12.52배, 배당수익률 2.82%, ROE 17.34%, 현금 및 단기투자 약 KRW 1.68tn은 성장 옵션 대비 밸류에이션과 재무 완충력을 뒷받침한다.",
        "064400.KS가 KRW 62,000 아래로 종가 이탈해 단기 회복 구조가 깨지는 경우.",
        "KRW 66,600 돌파 시도가 실패하고 KRW 64,600 아래로 되밀려 50일 SMA 회복이 false breakout으로 확인되는 경우.",
        "실적 공시나 IR에서 AI, 로봇, 스마트팩토리, 클라우드, 데이터센터의 수주 전환이나 매출 인식이 부족하고 마진 압박이 확인되는 경우.",
        "매출채권 증가, 운전자본 악화, 약한 영업현금흐름으로 이익의 현금전환 품질이 훼손되는 경우.",
        "주요주주, lock-up, 잠재 매물 부담이 기관 수요로 흡수되지 못하고 가격을 압박하는 경우."
      ],
      "confidence": 0.68,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "Medium-term thesis is constructive for LG CNS with OVERWEIGHT/BULLISH stance, improving technicals, reasonable valuation, balance sheet support, and AI/cloud/smart-factory catalysts. Timing is not yet actionable because the recommendation is explicitly WAIT: price is just below KRW 66,600 resistance, same-day intraday validation is missing, and adds require either a confirmed close above KRW 66,600 with above-average volume or a multi-session hold near KRW 64,600.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.62,
        "entry_readiness": 0.38,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "Medium-term thesis is constructive for LG CNS with OVERWEIGHT/BULLISH stance, improving technicals, reasonable valuation, balance sheet support, and AI/cloud/smart-factory catalysts. Timing is not yet actionable because the recommendation is explicitly WAIT: price is just below KRW 66,600 resistance, same-day intraday validation is missing, and adds require either a confirmed close above KRW 66,600 with above-average volume or a multi-session hold near KRW 64,600."
      },
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "wait_for_confirmation",
        "breakout_trigger_required",
        "resistance_nearby",
        "intraday_validation_missing",
        "developing_setup",
        "partial_sizing_only",
        "defined_downside_levels"
      ],
      "review_required": true,
      "score_now": 0.05596517888000003,
      "score_triggered": 0.16491294720000005,
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.62,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.108,
        "timing_now": 0.152,
        "timing_triggered": 0.38
      },
      "broker_symbol": "064400",
      "canonical_ticker": "064400.KS",
      "display_name": "LG CNS"
    },
    {
      "snapshot_id": "20260416T165022_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": 444000,
      "quantity": 2.0,
      "available_qty": 2.0,
      "sector": null,
      "structured_decision": {
        "rating": "OVERWEIGHT",
        "portfolio_stance": "BULLISH",
        "entry_action": "WAIT",
        "setup_quality": "DEVELOPING",
        "confidence": 0.67,
        "time_horizon": "medium",
        "entry_logic": "095340.KS의 중기 배분 관점은 우호적으로 유지한다. 공격적 분석가와 중립 분석가가 공통으로 지적한 매출 증가, 영업이익률 약 30.4%, 현금 및 단기투자자산 3,438억 원 대비 총차입금 212억 원 수준의 순현금 구조, Mirae Asset의 1,077,159주 지분 확대는 투자 가능한 기초 체력을 뒷받침한다. 다만 보수적 분석가와 중립 분석가가 강조한 대로 2026-04-14 종가 223,000원은 10일 EMA 239,810원과 VWMA 248,960원 아래에 있고, MACD 히스토그램도 -4,868까지 악화되어 오늘 즉시 신규 진입할 가격 확인은 부족하다. 216,500원 위에서 지지와 higher low가 확인되고, 239,000원 이상 일봉 종가 회복과 MACD 개선이 동반될 때만 소규모 starter를 검토한다. 더 강한 진입은 248,000-250,000원 구간을 거래량과 함께 회복하고 외국인·기관 수급이 순매수로 안정될 때다.",
        "exit_logic": "기존 보유분은 유지 가능하나, 216,500원 이탈 후 빠른 회복에 실패하면 1차로 비중을 줄인다. 50일 SMA 부근인 203,000원 아래에서 종가가 형성되면 보수적 분석가가 지적한 중기 추세 훼손으로 보고 대폭 축소 또는 청산한다. 다음 실적에서 영업이익률이 최근 30.4% 수준에서 크게 하락하거나, 매출 성장 둔화, 매출채권과 재고자산 증가가 매출보다 빠르게 이어져 현금전환이 약해질 경우 투자등급을 낮춘다.",
        "position_sizing": "변동성이 큰 조정 구간이므로 정상 목표 비중으로 추격하지 않는다. ATR이 종가 대비 약 10.9%로 높다는 보수적 분석가의 지적을 반영해 기존 보유는 낮은 비중으로 관리하고, 신규 자금은 확인 전까지 대기한다. 239,000원 회복과 MACD 개선이 동시에 확인될 경우에만 작은 starter를 허용하며, 248,000-250,000원 거래량 돌파와 외국인·기관 순매수 전환이 확인될 때 단계적으로 추가한다.",
        "risk_limits": "리스크 관리는 가격 확인과 포지션 크기 축소로 통제한다. 216,500원은 1차 방어선, 203,000원은 중기 기술적 하드 스톱 구간으로 둔다. MACD 히스토그램이 계속 악화되거나 외국인 순매도, 기관 차익실현, 공매도 과열 압력이 지속되는 동안에는 추가 매수를 금지한다. 손절 폭을 기술적으로 의미 있는 구간까지 허용하는 대신 보유 수량을 줄여 포트폴리오 손실 한도를 제한한다.",
        "catalysts": [
          "095340.KS가 239,000원 위에서 일봉 종가를 회복하고 MACD 히스토그램이 중립 방향으로 개선됨",
          "248,000-250,000원 구간을 거래량과 함께 돌파해 VWMA 부근 매물대를 회복함",
          "AI 및 고성능 반도체 투자 사이클이 테스트 소켓 수요를 지속적으로 지지함",
          "다음 분기에도 매출 성장과 약 30.4% 수준의 높은 영업이익률이 유지됨",
          "Mirae Asset의 1,077,159주 지분 확대 이후 추가 장기성 기관 수요가 확인됨",
          "외국인·기관 수급이 혼재 국면에서 일관된 순매수로 전환됨",
          "IR 또는 공시를 통해 고객, 생산능력, 수요, 이익 가시성이 개선됨"
        ],
        "invalidators": [
          "095340.KS가 203,000원 부근 50일 SMA 아래에서 종가를 형성함",
          "216,500원 지지선이 무너지고 반등 시도가 10일 EMA 아래에서 계속 실패함",
          "MACD 히스토그램 악화와 VWMA 하회가 지속되어 대량거래 이후 분배 가능성이 커짐",
          "영업이익률이 최근 30.4% 수준에서 materially 하락함",
          "매출 성장이 둔화되는 동시에 매출채권과 재고자산이 매출보다 빠르게 증가함",
          "공매도 압력, 외국인 순매도, 기관 차익실현이 긍정적 업황 뉴스에도 계속됨"
        ],
        "watchlist_triggers": [
          "216,500원 방어 후 higher low 형성 여부",
          "239,000원 이상 일봉 종가 회복과 MACD 히스토그램 개선 동시 발생 여부",
          "248,000-250,000원 거래량 동반 회복 여부",
          "203,000원 근처 또는 그 아래 종가 발생 시 리스크 축소 필요 여부",
          "외국인·기관 수급이 순매수 누적으로 전환되는지 여부",
          "다음 실적 또는 공시에서 매출채권, 재고자산, 잉여현금흐름, 영업이익률 지속성이 확인되는지 여부",
          "공매도 과열 이후 가격 회복 시 숏커버링성 수급이 붙는지 여부"
        ],
        "data_coverage": {
          "company_news_count": 5,
          "disclosures_count": 4,
          "social_source": "news_derived",
          "macro_items_count": 0
        }
      },
      "data_coverage": {
        "company_news_count": 5,
        "disclosures_count": 4,
        "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": [
        "216,500원 방어 후 higher low 형성 여부",
        "239,000원 이상 일봉 종가 회복과 MACD 히스토그램 개선 동시 발생 여부",
        "248,000-250,000원 거래량 동반 회복 여부",
        "203,000원 근처 또는 그 아래 종가 발생 시 리스크 축소 필요 여부",
        "외국인·기관 수급이 순매수 누적으로 전환되는지 여부",
        "다음 실적 또는 공시에서 매출채권, 재고자산, 잉여현금흐름, 영업이익률 지속성이 확인되는지 여부",
        "공매도 과열 이후 가격 회복 시 숏커버링성 수급이 붙는지 여부",
        "095340.KS가 239,000원 위에서 일봉 종가를 회복하고 MACD 히스토그램이 중립 방향으로 개선됨",
        "248,000-250,000원 구간을 거래량과 함께 돌파해 VWMA 부근 매물대를 회복함",
        "AI 및 고성능 반도체 투자 사이클이 테스트 소켓 수요를 지속적으로 지지함",
        "다음 분기에도 매출 성장과 약 30.4% 수준의 높은 영업이익률이 유지됨",
        "Mirae Asset의 1,077,159주 지분 확대 이후 추가 장기성 기관 수요가 확인됨",
        "외국인·기관 수급이 혼재 국면에서 일관된 순매수로 전환됨",
        "IR 또는 공시를 통해 고객, 생산능력, 수요, 이익 가시성이 개선됨",
        "095340.KS가 203,000원 부근 50일 SMA 아래에서 종가를 형성함",
        "216,500원 지지선이 무너지고 반등 시도가 10일 EMA 아래에서 계속 실패함",
        "MACD 히스토그램 악화와 VWMA 하회가 지속되어 대량거래 이후 분배 가능성이 커짐",
        "영업이익률이 최근 30.4% 수준에서 materially 하락함",
        "매출 성장이 둔화되는 동시에 매출채권과 재고자산이 매출보다 빠르게 증가함",
        "공매도 압력, 외국인 순매도, 기관 차익실현이 긍정적 업황 뉴스에도 계속됨"
      ],
      "confidence": 0.67,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "Medium-term thesis is constructive for held ISC exposure, supported by revenue growth, high operating margin, net cash balance sheet, and institutional stake accumulation. Timing is not yet actionable for adding because price remains below the 10-day EMA and VWMA with deteriorating MACD; additions require support above KRW 216,500, recovery above KRW 239,000 with MACD improvement, and preferably a volume-backed reclaim of KRW 248,000-250,000.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.72,
        "entry_readiness": 0.36,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "Medium-term thesis is constructive for held ISC exposure, supported by revenue growth, high operating margin, net cash balance sheet, and institutional stake accumulation. Timing is not yet actionable for adding because price remains below the 10-day EMA and VWMA with deteriorating MACD; additions require support above KRW 216,500, recovery above KRW 239,000 with MACD improvement, and preferably a volume-backed reclaim of KRW 248,000-250,000."
      },
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.36,
      "reason_codes": [
        "constructive_fundamental_thesis",
        "held_position_hold_allowed",
        "entry_wait_required",
        "price_below_short_term_averages",
        "negative_macd_momentum",
        "breakout_confirmation_needed",
        "support_level_must_hold",
        "high_volatility_requires_small_size",
        "risk_levels_defined"
      ],
      "review_required": true,
      "score_now": 0.051574307840000014,
      "score_triggered": 0.15393576960000002,
      "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.72,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.36,
        "thesis_multiplier": 1.108,
        "timing_now": 0.144,
        "timing_triggered": 0.36
      },
      "broker_symbol": "095340",
      "canonical_ticker": "095340.KS",
      "display_name": "ISC"
    },
    {
      "snapshot_id": "20260416T165022_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": 414500,
      "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": "278470.KS에 대한 중기 배분 관점은 긍정적으로 유지한다. 공격적 분석가와 중립 분석가가 지적한 것처럼 매출 1.53조 원, 영업이익 3,655억 원, 영업이익률 23.8%, 순이익률 19.0%, ROE 75.3%, 2025년 4분기 자유현금흐름 약 1,508억 원은 프리미엄을 정당화할 수 있는 근거다. 다만 보수적 분석가와 중립 분석가가 강조한 대로 2026-04-15 종가 KRW 413,000은 10일 EMA보다 약 11%, 50일선보다 약 31%, 200일선보다 약 70% 위에 있고, ATR이 종가의 약 6%이며, 4월 15일 거래량 414,029주는 4월 9일 868,166주보다 약해 추격 진입의 손익비가 불리하다. 따라서 오늘 신규 진입은 WAIT로 두되, 278470.KS가 KRW 407,500-413,000을 회복 또는 유지하고 KRW 417,000 돌파를 시도하면서 거래량이 의미 있게 증가하거나, KRW 386,000-399,500 눌림 후 RSI가 식고 거래량이 회복되는 반등이 나오면 소규모 STARTER는 정당화될 수 있다.",
        "exit_logic": "기존 보유자는 278470.KS가 KRW 386,000 돌파 실패선 위에 있고 가능하면 KRW 371,500 부근 10일 EMA 위를 유지하는 동안 핵심 비중을 보유한다. 종가 기준 KRW 386,000 이탈이 거래량 증가와 함께 발생하면 단순 조정이 아니라 실패한 돌파로 보고 축소 또는 청산한다. KRW 371,500 부근을 지속적으로 이탈하고 MACD가 약화되면 상승 속도 둔화로 판단해 bullish allocation을 재검토한다. Q1에서 매출 성장은 확인되더라도 판매비, 플랫폼 수수료, 재고, 사후관리 비용 때문에 마진 또는 FCF 품질이 훼손되면 비중을 낮춘다. 좋은 뉴스에도 가격 반응이 계속 약하거나 저거래량 급등이 반복되면 일부 이익 실현을 우선한다.",
        "position_sizing": "신규 자금은 확인 전 투입하지 않는다. 조건이 충족되면 의도 비중의 25%-40%만 STARTER로 시작하고, 이후 KRW 386,000-399,500 지지 확인 또는 KRW 413,000-417,000 위 고거래량 안착이 이어질 때 분할 추가한다. 보수적 분석가의 지적처럼 변동성이 크고 기대가 높으므로 레버리지는 사용하지 않는다. 기존 보유자는 핵심 비중을 유지할 수 있지만, 저가 매수로 수익이 큰 계정은 저거래량 급등이나 좋은 뉴스에도 약한 반응이 나올 때 일부 차익 실현을 고려한다.",
        "risk_limits": "손절과 비중 관리는 짧은 고정 비율보다 ATR과 가격 구조에 맞춘다. KRW 413,000 기준 1 ATR 하락이 약 KRW 388,000으로 KRW 386,000 invalidation zone과 겹치므로, 이 구간을 핵심 위험 기준으로 둔다. 거래량이 약한 신고가에는 추가하지 않는다. KRW 371,500 부근 10일 EMA의 지속 이탈은 단기 추세 속도 훼손 신호로 본다. 재고가 2024년 말 1,097억 원에서 2025년 말 1,655억 원으로 높아진 점, 2025년 4분기 판매 및 마케팅 비용 2,554억 원 수준, 해외 플랫폼 수수료와 사후관리 비용 증가 가능성을 계속 감시한다.",
        "catalysts": [
          "Q1 실적에서 북미와 서유럽 매출 성장, 안정적 또는 개선된 영업이익률, 양호한 FCF 전환이 동시에 확인되는 경우",
          "Coachella, celebrity-driven Medicube 노출, 성수동 플래그십 외국인 수요가 일회성 화제가 아니라 반복 구매와 브랜드 자산으로 연결된다는 증거",
          "US reciprocal tariff refund의 규모, 시점, 회계 처리가 확인되어 현금흐름 또는 해외 수익성 우려를 완화하는 경우",
          "KRW 413,000-417,000 52주 고점 구간을 거래량 증가와 함께 돌파하고 후속 안착하는 경우",
          "재고 회전과 자유현금흐름이 해외 확장 과정에서도 유지되는 경우"
        ],
        "invalidators": [
          "278470.KS가 KRW 386,000 아래로 종가 이탈하고 거래량이 증가해 돌파 실패를 확인하는 경우",
          "KRW 371,500 부근 10일 EMA를 지속적으로 하회하고 MACD가 약화되는 경우",
          "Q1에서 매출은 성장하지만 판매비, 플랫폼 비용, 재고, 사후관리 비용 때문에 마진이 압박받는 경우",
          "재고가 매출 성장률을 초과해 다시 증가하거나 할인 판매와 판촉비 증가로 이어지는 경우",
          "긍정 뉴스에도 주가가 반복적으로 약세를 보이며 기대 선반영 또는 차익실현 압력이 확인되는 경우"
        ],
        "watchlist_triggers": [
          "KRW 407,500-413,000 위 회복 또는 유지와 함께 거래량이 414,029주를 의미 있게 넘고 가능하면 868,166주에 근접하는지 확인",
          "KRW 413,000-417,000 위 고거래량 종가 안착 및 후속 거래일 지지 여부 확인",
          "KRW 386,000-399,500 눌림에서 가격 붕괴 없이 반등하고 RSI가 과열권에서 식으며 거래량이 회복되는지 확인",
          "Q1 공시 또는 실적 자료에서 해외 성장, 비용 통제, 재고 회전, FCF 품질이 동시에 확인되는지 확인",
          "관세 환급의 규모, 시점, 회계 처리에 대한 뉴스 또는 공시 확인"
        ],
        "data_coverage": {
          "company_news_count": 5,
          "disclosures_count": 0,
          "social_source": "news_derived",
          "macro_items_count": 1
        }
      },
      "data_coverage": {
        "company_news_count": 5,
        "disclosures_count": 0,
        "social_source": "news_derived",
        "macro_items_count": 1
      },
      "quality_flags": [
        "token_usage_unavailable",
        "intraday_snapshot_missing_same_day"
      ],
      "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 407,500-413,000 위 회복 또는 유지와 함께 거래량이 414,029주를 의미 있게 넘고 가능하면 868,166주에 근접하는지 확인",
        "KRW 413,000-417,000 위 고거래량 종가 안착 및 후속 거래일 지지 여부 확인",
        "KRW 386,000-399,500 눌림에서 가격 붕괴 없이 반등하고 RSI가 과열권에서 식으며 거래량이 회복되는지 확인",
        "Q1 공시 또는 실적 자료에서 해외 성장, 비용 통제, 재고 회전, FCF 품질이 동시에 확인되는지 확인",
        "관세 환급의 규모, 시점, 회계 처리에 대한 뉴스 또는 공시 확인",
        "Q1 실적에서 북미와 서유럽 매출 성장, 안정적 또는 개선된 영업이익률, 양호한 FCF 전환이 동시에 확인되는 경우",
        "Coachella, celebrity-driven Medicube 노출, 성수동 플래그십 외국인 수요가 일회성 화제가 아니라 반복 구매와 브랜드 자산으로 연결된다는 증거",
        "US reciprocal tariff refund의 규모, 시점, 회계 처리가 확인되어 현금흐름 또는 해외 수익성 우려를 완화하는 경우",
        "KRW 413,000-417,000 52주 고점 구간을 거래량 증가와 함께 돌파하고 후속 안착하는 경우",
        "재고 회전과 자유현금흐름이 해외 확장 과정에서도 유지되는 경우",
        "278470.KS가 KRW 386,000 아래로 종가 이탈하고 거래량이 증가해 돌파 실패를 확인하는 경우",
        "KRW 371,500 부근 10일 EMA를 지속적으로 하회하고 MACD가 약화되는 경우",
        "Q1에서 매출은 성장하지만 판매비, 플랫폼 비용, 재고, 사후관리 비용 때문에 마진이 압박받는 경우",
        "재고가 매출 성장률을 초과해 다시 증가하거나 할인 판매와 판촉비 증가로 이어지는 경우",
        "긍정 뉴스에도 주가가 반복적으로 약세를 보이며 기대 선반영 또는 차익실현 압력이 확인되는 경우"
      ],
      "confidence": 0.72,
      "stance": "BULLISH",
      "entry_action": "WAIT",
      "setup_quality": "DEVELOPING",
      "rationale": "Medium-term thesis is constructive for 278470.KS, supported by strong profitability, FCF, ROE, and overseas growth narrative, and the existing small holding can be maintained. Timing is not yet actionable for adding because price is extended well above moving averages, volatility is high, RSI is near overbought, and the recent breakout lacks decisive volume follow-through. Add only after high-volume confirmation above the KRW 413,000-417,000 area or a controlled pullback/reversal around KRW 386,000-399,500; reduce risk if KRW 386,000 fails on rising volume.",
      "trigger_profile": {
        "primary_trigger_type": "breakout_confirmation",
        "trigger_horizon": "days_to_weeks",
        "trigger_quality": 0.68,
        "entry_readiness": 0.38,
        "thesis_state": "constructive_but_not_confirmed",
        "semantic_summary": "Medium-term thesis is constructive for 278470.KS, supported by strong profitability, FCF, ROE, and overseas growth narrative, and the existing small holding can be maintained. Timing is not yet actionable for adding because price is extended well above moving averages, volatility is high, RSI is near overbought, and the recent breakout lacks decisive volume follow-through. Add only after high-volume confirmation above the KRW 413,000-417,000 area or a controlled pullback/reversal around KRW 386,000-399,500; reduce risk if KRW 386,000 fails on rising volume."
      },
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "setup_developing",
        "price_extended_above_moving_averages",
        "volume_confirmation_incomplete",
        "specific_price_volume_triggers_defined",
        "event_confirmation_pending",
        "held_position_supports_hold_not_add",
        "risk_invalidation_defined",
        "data_quality_intraday_missing"
      ],
      "review_required": true,
      "score_now": 0.056402938879999996,
      "score_triggered": 0.1660073472,
      "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",
          "intraday_snapshot_missing_same_day"
        ],
        "legacy_rating": "OVERWEIGHT",
        "trigger_quality": 0.68,
        "decision_source": "RULE+DEEP",
        "timing_readiness": 0.38,
        "thesis_multiplier": 1.132,
        "timing_now": 0.152,
        "timing_triggered": 0.38
      },
      "broker_symbol": "278470",
      "canonical_ticker": "278470.KS",
      "display_name": "에이피알"
    }
  ]
}