--- schema_version: "unified_route_packet_v1" generated: "2026-06-25" description: "P4: 라우팅·서빙·판단 단일화" # 목적: SCALP/SWING/MOMENTUM/POSITION 결정을 JSON으로 결정론화 # LLM 자유도 제거, 수량 결정 자동화 purpose: "SCALP/SWING/MOMENTUM/POSITION 판단을 결정론적 JSON으로 잠금" route_dimensions: - "SCALP" - "SWING" - "MOMENTUM" - "POSITION" # 스타일별 가중치 정의 style_weights: SCALP: technical: 0.50 # 기술지표 중시 smart_money: 0.25 liquidity: 0.15 fundamental: 0.10 SWING: smart_money: 0.35 # 스마트머니 중시 technical: 0.30 liquidity: 0.20 fundamental: 0.15 MOMENTUM: fundamental: 0.40 # 펀더멘탈 중시 smart_money: 0.30 technical: 0.20 liquidity: 0.10 POSITION: fundamental: 0.55 # 펀더멘탈 최우선 smart_money: 0.20 liquidity: 0.15 technical: 0.10 # Conviction Score → 진입 수량 매핑 conviction_to_pct: "0-34": "진입 금지 (BLOCKED)" "35-49": "1.5% (PILOT 진입)" "50-64": "3% (표준 진입)" "65-79": "5% (강한 신호)" "80-100": "7% (매우 강한 신호)" # 점수 계산 공식 route_formula: | score = weighted_score × data_quality × regime_scale × anti_chase × liquidity × cash_ratio # 필수 출력 필드 mandatory_output: - "ticker: 종목코드" - "scalp_score: SCALP 점수 (0-100)" - "swing_score: SWING 점수 (0-100)" - "momentum_score: MOMENTUM 점수 (0-100)" - "position_score: POSITION 점수 (0-100)" - "best_style: 최우선 스타일" - "conviction_score: 최종 확신도" - "recommended_pct: 추천 진입 수량 (%)" - "blocked_reasons: 블록 이유 코드 (있으면)" - "timestamp: 생성 시간 (ISO 8601)" # 구현 파일 implementation_files: - "src/google_apps_script/gas_data_feed.gs: buildRoutePacket_()" - "tools/validate_capital_style_allocation_v1.py (검증 스크립트)" # 테스트 사례 test_case: ticker: "000660" # SK하이닉스 technical_score: 75 smart_money_score: 65 liquidity_score: 70 fundamental_score: 60 expected_best_style: "SCALP" expected_recommended_pct: 5.0