feat(quant-engine): 10개 고전 기술전략 갭분석 후 7개 보조신호 채택

사용자 제시 10개 고전 기술전략(골든크로스/모멘텀/52주신고가/연속상승하락/이격도/돌파실패/
강한종가/변동성확장/평균회귀/추세필터)을 기존 엔진과 대조한 갭분석 결과:
- 이미 구현됨: 모멘텀(VELOCITY_V1/RS_MOMENTUM_V1), 이격도·평균회귀(MEAN_REVERSION_GATE_V1)
- 신규 채택 7개: GOLDEN_CROSS_SIGNAL_V1, STRONG_CLOSE_SIGNAL_V1,
  VOLATILITY_EXPANSION_BREAKOUT_V1, FIFTY_TWO_WEEK_HIGH_TRIGGER_V1, CONSECUTIVE_STREAK_V1,
  BREAKOUT_FAILURE_STOP_V1, TREND_FILTER_GATE_V1

AGENTS.md 하드룰(추격매수 방지, anti-late-entry gate 필수통과)에 따라 BUY 방향 신호 전부를
STRATEGY_SCORING의 보조신호로만 편입 — BREAKOUT_QUALITY_GATE_V2/FOLLOW_THROUGH_DAY_CONFIRM_V1/
ANTI_LATE_ENTRY_GATE_V2 게이트 체인을 우회하는 독립 BUY 트리거로는 사용하지 않음.

검증: validate_specs/validate_golden_coverage_100(100%)/validate_calibration_registry_v1/
validate_schema_model_generation_v1/validate_agents_shrink_v1 전부 PASS. golden test 22/22 PASS.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-18 00:29:18 +09:00
parent aedabdd37b
commit 782fe74578
43 changed files with 1709 additions and 4 deletions
+18 -4
View File
@@ -106,13 +106,24 @@ decision_flow:
pass_condition: "market regime classified or marked UNKNOWN"
fail_state: "INSUFFICIENT_DATA"
STRATEGY_SCORING:
purpose: "섹터/종목/수급/유동성/실적/밸류 점수 산출"
purpose: >
섹터/종목/수급/유동성/실적/밸류 점수 산출. GOLDEN_CROSS_SIGNAL_V1, STRONG_CLOSE_SIGNAL_V1,
VOLATILITY_EXPANSION_BREAKOUT_V1, FIFTY_TWO_WEEK_HIGH_TRIGGER_V1, CONSECUTIVE_STREAK_V1,
TREND_FILTER_GATE_V1은 component_scores의 보조신호로만 포함되며, 단독으로 BUY를
허가하지 않는다(BREAKOUT_QUALITY_GATE_V2/FOLLOW_THROUGH_DAY_CONFIRM_V1/ANTI_LATE_ENTRY_GATE_V2
체인 우회 금지).
required_refs:
- "spec/08_scoring_rules.yaml:strategy_score"
- "spec/strategy/sector_model.yaml:sector_model"
- "spec/13_formula_registry.yaml:formula_registry.formulas.FLOW_CREDIT_V1"
- "spec/formulas/domains/entry.yaml:GOLDEN_CROSS_SIGNAL_V1"
- "spec/formulas/domains/entry.yaml:STRONG_CLOSE_SIGNAL_V1"
- "spec/formulas/domains/entry.yaml:VOLATILITY_EXPANSION_BREAKOUT_V1"
- "spec/formulas/domains/entry.yaml:FIFTY_TWO_WEEK_HIGH_TRIGGER_V1"
- "spec/formulas/domains/entry.yaml:CONSECUTIVE_STREAK_V1"
- "spec/formulas/domains/entry.yaml:TREND_FILTER_GATE_V1"
required_inputs: ["close_price", "ma20", "flow_ok", "flow_rows", "frg_5d_sh", "inst_5d_sh", "avg_trade_value_5d"]
computed_outputs: ["flow_credit", "strategy_score", "component_scores", "grade_candidate"]
computed_outputs: ["flow_credit", "strategy_score", "component_scores", "grade_candidate", "golden_cross_today", "strong_close", "volatility_expansion_breakout", "fifty_two_week_high_breakout", "up_streak", "down_streak", "trend_filter_pass"]
pass_condition: "strategy_score calculated or missing fields listed"
fail_state: "INSUFFICIENT_DATA"
PORTFOLIO_CONSTRAINT_CHECK:
@@ -179,14 +190,17 @@ decision_flow:
pass_condition: "integer quantity calculated, or NO_QUANTITY reason emitted"
fail_state: "INSUFFICIENT_DATA"
EXIT_POLICY_CHECK:
purpose: "손절/익절/trailing/보유주 점검 규칙 적용"
purpose: >
손절/익절/trailing/보유주 점검 규칙 적용. 돌파 매수로 진입한 포지션에는
BREAKOUT_FAILURE_STOP_V1을 적용해 전고점 재이탈을 ANTI_WHIPSAW_GATE_V1과 별도로 포착한다.
required_refs:
- "spec/exit/stop_loss.yaml:stop_loss"
- "spec/exit/take_profit.yaml:take_profit"
- "spec/exit/position_review.yaml:position_review_cycle"
- "spec/13_formula_registry.yaml:formula_registry.formulas.EXPECTED_EDGE_V1"
- "spec/formulas/domains/exit.yaml:BREAKOUT_FAILURE_STOP_V1"
required_inputs: ["entry_price", "stop_price", "target_price", "final_quantity"]
computed_outputs: ["expected_edge", "stop_order", "take_profit_order", "invalidation_conditions"]
computed_outputs: ["expected_edge", "stop_order", "take_profit_order", "invalidation_conditions", "breakout_failure"]
pass_condition: "exit or hold policy evaluated"
fail_state: "INSUFFICIENT_DATA"
proactive_exit_radar_check: # [2026-05-19_PROACTIVE_RADAR_V1]