Fix: PyYAML 5.x composer 에러 해결을 위해 13b_harness_formulas.yaml 내 유니코드 가로선 제거

This commit is contained in:
2026-06-13 19:04:54 +09:00
parent 8defcc372e
commit d39e6a034d
+129 -129
View File
@@ -1,5 +1,5 @@
meta:
title: "은퇴자산포트폴리오 하네스 V8 공식 레지스트리 (13b)"
title: "은퇴자산포트폴리오 - 하네스 V8 공식 레지스트리 (13b)"
parent_file: "spec/13_formula_registry.yaml"
version: "2026-05-25_HARNESS_V8_PROPOSAL51_P1"
purpose: >
@@ -10,7 +10,7 @@ meta:
formula_registry:
formulas:
# ── [2026-05-20_HARNESS_V4] HS009 TP 가격 유효성 검증 ──────────────────
# == [2026-05-20_HARNESS_V4] HS009 - TP 가격 유효성 검증 ==================
TP_VALIDITY_CHECK_V1:
purpose: >
TAKE_PROFIT_LADDER_V2가 산출한 TP 가격이 현재가보다 낮은지 검증.
@@ -26,17 +26,17 @@ formula_registry:
state_output:
field: "tp_state"
values:
PENDING: "tp_price > current_price 아직 도달하지 않음"
TP1_ALREADY_TRIGGERED: "tp1_price <= current_price 이미 통과"
TP2_ALREADY_TRIGGERED: "tp2_price <= current_price 이미 통과"
UNKNOWN_NO_CLOSE: "current_price 미확인 검증 불가"
PENDING: "tp_price > current_price - 아직 도달하지 않음"
TP1_ALREADY_TRIGGERED: "tp1_price <= current_price - 이미 통과"
TP2_ALREADY_TRIGGERED: "tp2_price <= current_price - 이미 통과"
UNKNOWN_NO_CLOSE: "current_price 미확인 - 검증 불가"
prohibition:
- "LLM이 tp_price=null인 경우 대체 TP 가격을 임의 산출하는 것 절대 금지"
- "INVALID_TP_STALE 상태에서 HTS 주문표에 가격 기재 금지"
canonical_ref: "AGENTS.md:Direction H9 (HS009)"
version: "2026-05-20_HARNESS_V4"
# ── [2026-05-20_HARNESS_V4] C3 수익구간 단계 분류 ──────────────────────
# == [2026-05-20_HARNESS_V4] C3 - 수익구간 단계 분류 ======================
PROFIT_LOCK_STAGE_CLASSIFIER_V1:
purpose: >
보유 포지션의 현재 수익률 구간을 분류하여 profit_lock_stage를 결정론적으로 산출.
@@ -79,13 +79,13 @@ formula_registry:
output:
fields: ["profit_lock_stage", "ratchet_stop_price", "ratchet_partial_qty"]
prohibition:
- "LLM이 profit_lock_stage를 임의 판정 금지 하네스 산출값 그대로 사용"
- "LLM이 profit_lock_stage를 임의 판정 금지 - 하네스 산출값 그대로 사용"
- "profit_lock_stage=APEX_SUPER인 종목에 TP 가격 출력 금지"
- "APEX_SUPER 구간에서 trailing_stop 미병기 후 '보유 유지'만 서술 금지 (E1 재발 방지)"
canonical_ref: "spec/exit/take_profit.yaml:take_profit.profit_lock_ratchet.ratchet_table"
version: "2026-05-20_HARNESS_V4"
# ── [2026-05-20_HARNESS_V4] M1 국면별 감축 비율 산출 ───────────────────
# == [2026-05-20_HARNESS_V4] M1 - 국면별 감축 비율 산출 ===================
REGIME_TRIM_WEIGHT_V1:
purpose: >
시장 국면(market_regime_state) 기반으로 위성·주도주의 감축 비율 범위를 결정론적 산출.
@@ -129,7 +129,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction M1 (REGIME_TRIM_LOCK)"
version: "2026-05-20_HARNESS_V4"
# ── [2026-05-20_HARNESS_V4] H3 주도주 승자 포지션 보호 게이트 ─────────
# == [2026-05-20_HARNESS_V4] H3 - 주도주 승자 포지션 보호 게이트 =========
SECULAR_LEADER_REGIME_GATE_V1:
purpose: >
삼성전자(005930)·SK하이닉스(000660)의 secular_leader_profit_lock 발동 조건을
@@ -185,7 +185,7 @@ formula_registry:
canonical_ref: "spec/exit/take_profit.yaml:secular_leader_profit_lock"
version: "2026-05-20_HARNESS_V4"
# ── [2026-05-20_HARNESS_V4] M4 5억원 은퇴자산 목표 추적 ────────────────
# == [2026-05-20_HARNESS_V4] M4 - 5억원 은퇴자산 목표 추적 ================
GOAL_RETIREMENT_V1:
purpose: >
은퇴자산 5억원 목표 대비 현재 자산의 달성률·잔여액·복리 ETA를 결정론적으로 산출.
@@ -226,7 +226,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction M4"
version: "2026-05-20_HARNESS_V4"
# ── [2026-05-20_G1] G1 현금 부족액 결정론적 산출 ───────────────────────
# == [2026-05-20_G1] G1 - 현금 부족액 결정론적 산출 =======================
CASH_SHORTFALL_V1:
purpose: >
D+2 현금 현황 대비 최소 방어선·목표 현금비율까지 부족액을 GAS가 결정론적으로 산출.
@@ -257,12 +257,12 @@ formula_registry:
settlement_cash_d2_missing: "shortfall 산출 불가 → DATA_MISSING"
prohibition:
- "LLM이 '약 N원 필요' 형태로 부족액을 즉석 계산 금지 (HS011)"
- "D+0 즉시현금(immediate_cash_krw) 합산 금지 D2_ONLY 기준"
- "D+0 즉시현금(immediate_cash_krw) 합산 금지 - D2_ONLY 기준"
- "미체결 주문·세금·정산일 조정을 LLM이 임의 적용 금지"
canonical_ref: "AGENTS.md:Direction G1"
version: "2026-05-20_G1"
# ── [2026-05-20_G2] G2 현금 회복 TRIM 계획 결정론적 산출 ─────────────────
# == [2026-05-20_G2] G2 - 현금 회복 TRIM 계획 결정론적 산출 =================
TRIM_PLAN_MIN_CASH_V1:
purpose: >
현금 부족액(CASH_SHORTFALL_V1) 해소를 위한 종목별 TRIM 계획을 H2 매도우선순위 기반으로
@@ -299,7 +299,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction G2"
version: "2026-05-20_G2"
# ── [2026-05-20_APEX_V1] A1 뒷북 매수 방지 선행 알파 점수 ─────────────
# == [2026-05-20_APEX_V1] A1 - 뒷북 매수 방지 선행 알파 점수 =============
ALPHA_LEAD_SCORE_V1:
purpose: >
주도 섹터·상대강도·수급가속·거래대금·과열도를 결합해 선행 파일럿 진입 가능성을
@@ -572,7 +572,7 @@ formula_registry:
canonical_ref: "spec/13_formula_registry.yaml:TICK_NORMALIZER_V1"
version: "2026-05-20_APEX_V1"
# ── [2026-05-20_K1] K1 분할 매수 트랜치 엔진 ──────────────────────────
# == [2026-05-20_K1] K1 - 분할 매수 트랜치 엔진 ==========================
STAGED_ENTRY_TRANCHE_V1:
purpose: >
파일럿(T1) → 돌파확인(T2) → 눌림재진입(T3) 순서로 매수 비중을 3단계로 분할.
@@ -586,11 +586,11 @@ formula_registry:
- {field: "profit_pct", unit: "percent"}
- {field: "close_vs_ma20_pct", unit: "percent"}
tranche_phases:
WAIT_PILOT_SETUP: "진입 조건 미충족 매수 금지"
TRANCHE_1_PILOT: "신규 파일럿 30% PILOT_ALLOWED이며 포지션 없음"
TRANCHE_2_ADD_ON: "본진입 추가 30% CONFIRMED_ADD_ON + 기보유"
TRANCHE_3_PULLBACK_ADD: "눌림 추가 40% MA20 ±2% + 수익>3% + ADD_ON"
HOLD_CURRENT: "현 포지션 유지 추가 매수 조건 미충족"
WAIT_PILOT_SETUP: "진입 조건 미충족 - 매수 금지"
TRANCHE_1_PILOT: "신규 파일럿 30% - PILOT_ALLOWED이며 포지션 없음"
TRANCHE_2_ADD_ON: "본진입 추가 30% - CONFIRMED_ADD_ON + 기보유"
TRANCHE_3_PULLBACK_ADD: "눌림 추가 40% - MA20 ±2% + 수익>3% + ADD_ON"
HOLD_CURRENT: "현 포지션 유지 - 추가 매수 조건 미충족"
output:
fields:
- {field: "tranche_phase", unit: "enum"}
@@ -599,11 +599,11 @@ formula_registry:
prohibition:
- "LLM이 tranche_phase를 임의로 TRANCHE_2·TRANCHE_3으로 승격 금지"
- "WAIT_PILOT_SETUP·HOLD_CURRENT 상태에서 current_tranche_allowed_pct > 0 출력 금지"
- "T1→T2→T3 순서 건너뜀 금지 CONFIRMED_ADD_ON 없이 TRANCHE_3 진입 금지"
- "T1→T2→T3 순서 건너뜀 금지 - CONFIRMED_ADD_ON 없이 TRANCHE_3 진입 금지"
canonical_ref: "AGENTS.md:Direction K1"
version: "2026-05-20_K1"
# ── [2026-05-20_K2] K2 반등 대기 분할 매도 체계 ───────────────────────
# == [2026-05-20_K2] K2 - 반등 대기 분할 매도 체계 =======================
K2_STAGED_REBOUND_SELL_V1:
purpose: >
현금확보 매도(OVERSOLD_REBOUND_SELL 스타일)를 즉시매도(50%) + 반등대기(50%)로 분할해
@@ -641,7 +641,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction K2"
version: "2026-05-20_K2"
# ── [2026-05-20_K3] K3 국면·섹터 연계 H2 동적 우선순위 ────────────────
# == [2026-05-20_K3] K3 - 국면·섹터 연계 H2 동적 우선순위 ================
K3_REGIME_SELL_PRIORITY_V1:
purpose: >
H2 정적 순위에 시장 국면(regime) 신호를 오버레이하여 동적 우선순위를 부여한다.
@@ -685,13 +685,13 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction K3"
version: "2026-05-20_K3"
# ── [2026-05-20_L1] L1 섹터 로테이션 모멘텀 추적 ────────────────────
# == [2026-05-20_L1] L1 - 섹터 로테이션 모멘텀 추적 ====================
SECTOR_ROTATION_MOMENTUM_V1:
purpose: >
sectorFlowRadar의 rank/prevRank/prevRankW2를 기반으로 각 섹터의 rank_delta를 계산하고
RISING/STABLE/FADING/TOPPING_OUT 모멘텀 상태를 분류한다.
FADING(-15)/TOPPING_OUT(-10) 섹터 종목에 ALPHA_LEAD_SCORE_V1 페널티를 적용한다.
결과는 sector_rotation_momentum_json으로 고착화 LLM 재산출 금지.
결과는 sector_rotation_momentum_json으로 고착화 - LLM 재산출 금지.
inputs:
- {field: "sector", unit: "string"}
- {field: "rank", unit: "integer", note: "현재 주 섹터 로테이션 순위"}
@@ -723,7 +723,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction L1"
version: "2026-05-20_L1"
# ── [2026-05-20_L4] L4 분배 선행경보 (신고점수축 / 급등약류) ──────────
# == [2026-05-20_L4] L4 - 분배 선행경보 (신고점수축 / 급등약류) ==========
PRE_DISTRIBUTION_EARLY_WARNING_V1:
purpose: >
DISTRIBUTION_RISK_SCORE_V1에 두 가지 선행경보 신호를 추가한다.
@@ -747,7 +747,7 @@ formula_registry:
output:
field: "pre_distribution_warning"
values:
EARLY_WARNING: "신고점수축 또는 급등약류 신호 발생 분배 선행경보"
EARLY_WARNING: "신고점수축 또는 급등약류 신호 발생 - 분배 선행경보"
NONE: "선행경보 신호 없음"
prohibition:
- "LLM이 pre_distribution_warning=EARLY_WARNING 종목에 신규 BUY를 즉시 실행 금지"
@@ -755,7 +755,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction L4"
version: "2026-05-20_L4"
# ── [2026-05-20_L2] L2 ATR 기반 자동 트레일링 손절 ───────────────────
# == [2026-05-20_L2] L2 - ATR 기반 자동 트레일링 손절 ===================
RATCHET_TRAILING_AUTO_V1:
purpose: >
수익 구간(PROFIT_LOCK_20/30, APEX_TRAILING)에서 ATR20 기반 자동 트레일링 손절가를 산출한다.
@@ -781,7 +781,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction L2"
version: "2026-05-20_L2"
# ── [2026-05-20_L3] L3 국면별 동적 Heat Gate ──────────────────────────
# == [2026-05-20_L3] L3 - 국면별 동적 Heat Gate ==========================
DYNAMIC_HEAT_GATE_V1:
purpose: >
marketRegime에 따라 Heat Gate 임계값을 동적으로 조정한다.
@@ -812,7 +812,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction L3"
version: "2026-05-20_L3"
# ── [2026-05-20_M1] M1 연속 손절 자동 매수 축소 ──────────────────────
# == [2026-05-20_M1] M1 - 연속 손절 자동 매수 축소 ======================
DRAWDOWN_GUARD_V1:
purpose: >
연속 손절 횟수(consecutive_losses)에 따라 신규 매수 비중을 자동 축소한다.
@@ -835,7 +835,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction M1"
version: "2026-05-20_M1"
# ── [2026-05-20_M2] M2 포트폴리오 가중평균 베타 관리 ─────────────────
# == [2026-05-20_M2] M2 - 포트폴리오 가중평균 베타 관리 =================
PORTFOLIO_BETA_GATE_V1:
purpose: >
보유 종목 가중평균 베타(beta_proxy = ret5d/kospiRet5d)를 산출하고
@@ -863,7 +863,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction M2"
version: "2026-05-20_M2"
# ── [2026-05-20_M3] M3 분할 익절 수량 자동화 ─────────────────────────
# == [2026-05-20_M3] M3 - 분할 익절 수량 자동화 =========================
TP_QUANTITY_LADDER_V1:
purpose: >
TP1/TP2/TP3 도달 시 매도할 수량을 GAS에서 자동 산출해 고착화한다.
@@ -889,7 +889,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction M3"
version: "2026-05-20_M3"
# ── [2026-05-20_M4] M4 이벤트 리스크 신규 매수 홀드 ──────────────────
# == [2026-05-20_M4] M4 - 이벤트 리스크 신규 매수 홀드 ==================
EVENT_RISK_HOLD_GATE_V1:
purpose: >
이벤트 홀드 기간(Event_Hold_Days <= 5) 또는 DART 리스크 플래그가 있는 종목에
@@ -911,12 +911,12 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction M4"
version: "2026-05-20_M4"
# ── [2026-05-20_M5] M5 섹터 편중도 한도 ──────────────────────────────
# == [2026-05-20_M5] M5 - 섹터 편중도 한도 ==============================
SECTOR_CONCENTRATION_LIMIT_V1:
purpose: >
단일 섹터 ≥40%(RISK_OFF:35%) 시 해당 섹터 추가 매수 차단.
상위 2개 섹터 합산 ≥65%(RISK_OFF:55%) 시 WARN_TOP2.
포트폴리오 섹터 분산을 GAS가 결정론적으로 산출 LLM 임의 완화 금지.
포트폴리오 섹터 분산을 GAS가 결정론적으로 산출 - LLM 임의 완화 금지.
inputs:
- {field: "weight_pct", unit: "pct"}
- {field: "sector", unit: "string"}
@@ -934,7 +934,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction M5"
version: "2026-05-20_M5"
# ── [2026-05-20_N1] N1 국면별 포지션 사이즈 스케일 ─────────────────────
# == [2026-05-20_N1] N1 - 국면별 포지션 사이즈 스케일 =====================
POSITION_SIZE_REGIME_SCALE_V1:
purpose: >
국면에 따라 ATR 기반 신규 매수 수량(atrQty)에 스케일 배수를 적용한다.
@@ -945,14 +945,14 @@ formula_registry:
output:
field: "regime_size_scale"
schema:
regime_size_scale: "0.25~1.2 배수 atrQty에 곱해지는 국면 스케일"
regime_size_scale: "0.25~1.2 배수 - atrQty에 곱해지는 국면 스케일"
prohibition:
- "regime_size_scale 값을 LLM이 임의 변경 금지"
- "매수 수량 산출 시 반드시 GAS 확정 regime_size_scale 사용"
canonical_ref: "AGENTS.md:Direction N1"
version: "2026-05-20_N1"
# ── [2026-05-20_N2] N2 거래량 돌파 확인 게이트 ─────────────────────────
# == [2026-05-20_N2] N2 - 거래량 돌파 확인 게이트 =========================
VOLUME_BREAKOUT_CONFIRM_V1:
purpose: >
52주 신고가 97% 이상 부근에서 진입 시 당일 거래량이 5일 평균 거래량×1.2 미만이면
@@ -976,7 +976,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction N2"
version: "2026-05-20_N2"
# ── [2026-05-20_N3] N3 손절가 적정성 검증 ─────────────────────────────
# == [2026-05-20_N3] N3 - 손절가 적정성 검증 =============================
STOP_PRICE_ADEQUACY_V1:
purpose: >
보유 종목의 수동 손절가가 ATR 기반 권고 손절가 대비 너무 넓게 설정되었는지 검증한다.
@@ -1007,7 +1007,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction N3"
version: "2026-05-20_N3"
# ── [2026-05-20_N4] N4 장기 보유 재검토 플래그 ─────────────────────────
# == [2026-05-20_N4] N4 - 장기 보유 재검토 플래그 =========================
HOLDING_STALE_REVIEW_V1:
purpose: >
account_snapshot의 entry_date 기준으로 보유 기간을 산출한다.
@@ -1031,7 +1031,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction N4"
version: "2026-05-20_N4"
# ── [2026-05-20_N5] N5 국면별 현금 최소 비율 상향 ─────────────────────
# == [2026-05-20_N5] N5 - 국면별 현금 최소 비율 상향 =====================
REGIME_CASH_UPLIFT_V1:
purpose: >
MRS 기반 cash_floor보다 더 높은 현금 최소 비율이 국면(regime)상 요구될 때
@@ -1047,14 +1047,14 @@ formula_registry:
NEUTRAL: 0
output:
field: "regime_cash_uplift_min_pct"
note: "max(mrs_cash_min_pct, regime_min_pct) 실제 적용된 현금 최소 비율"
note: "max(mrs_cash_min_pct, regime_min_pct) - 실제 적용된 현금 최소 비율"
prohibition:
- "regime_cash_uplift_min_pct를 LLM이 임의 낮추기 금지"
- "BELOW_FLOOR 상태에서 매수 신호 생성 금지"
canonical_ref: "AGENTS.md:Direction N5"
version: "2026-05-20_N5"
# ── [2026-05-20_O1] O1 개별 종목 비중 상한 ─────────────────────────────
# == [2026-05-20_O1] O1 - 개별 종목 비중 상한 =============================
SINGLE_POSITION_WEIGHT_CAP_V1:
purpose: >
개별 종목의 포트폴리오 비중(weight_pct)이 국면별 상한을 초과하면 OVERWEIGHT_TRIM.
@@ -1076,7 +1076,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction O1"
version: "2026-05-20_O1"
# ── [2026-05-20_O2] O2 반도체 클러스터 합산 비중 게이트 ─────────────────
# == [2026-05-20_O2] O2 - 반도체 클러스터 합산 비중 게이트 =================
SEMICONDUCTOR_CLUSTER_GATE_V1:
purpose: >
005930(삼성전자) + 000660(SK하이닉스) 합산 비중이 시장 국면별 상한을 초과하면 CLUSTER_BLOCK.
@@ -1101,7 +1101,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction O2"
version: "2026-05-20_O2"
# ── [2026-05-20_O3] O3 포트폴리오 고점 대비 낙폭 게이트 ──────────────────
# == [2026-05-20_O3] O3 - 포트폴리오 고점 대비 낙폭 게이트 ==================
PORTFOLIO_DRAWDOWN_GATE_V1:
purpose: >
총자산(total_asset_krw)의 역대 고점(settings.portfolio_peak_krw) 대비 낙폭을 산출한다.
@@ -1125,7 +1125,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction O3"
version: "2026-05-20_O3"
# ── [2026-05-20_O4] O4 최근 승률 하락 매수 축소 게이트 ────────────────────
# == [2026-05-20_O4] O4 - 최근 승률 하락 매수 축소 게이트 ====================
WIN_LOSS_STREAK_GUARD_V1:
purpose: >
최근 30거래 승률(win_rate_30)이 임계값 이하로 하락하면 신규 매수 비중을 자동 축소한다.
@@ -1144,7 +1144,7 @@ formula_registry:
output:
fields:
win_loss_streak_state: "EDGE_OK/EDGE_WEAK/EDGE_DEGRADED/EDGE_CRITICAL/INSUFFICIENT_HISTORY"
win_loss_streak_buy_scale: "0.25/0.50/0.75/1.0 atrQty에 곱해지는 배수"
win_loss_streak_buy_scale: "0.25/0.50/0.75/1.0 - atrQty에 곱해지는 배수"
win_loss_streak_win_rate_pct: "최근 30거래 승률 %"
prohibition:
- "win_loss_streak_buy_scale를 LLM이 임의 복원 금지"
@@ -1152,7 +1152,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction O4"
version: "2026-05-20_O4"
# ── [2026-05-20_O5] O5 동시 보유 종목 수 상한 ────────────────────────────
# == [2026-05-20_O5] O5 - 동시 보유 종목 수 상한 ============================
POSITION_COUNT_LIMIT_V1:
purpose: >
동시 보유 종목 수가 국면별 상한을 초과하면 POSITION_COUNT_BLOCK.
@@ -1175,7 +1175,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction O5"
version: "2026-05-20_O5"
# ── [2026-05-20_P1] P1 손절가 이탈 즉시 경보 ─────────────────────────
# == [2026-05-20_P1] P1 - 손절가 이탈 즉시 경보 =========================
STOP_BREACH_ALERT_V1:
purpose: >
보유 종목 중 close <= stop_price인 종목을 즉시 경보한다.
@@ -1197,7 +1197,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction P1"
version: "2026-05-20_P1"
# ── [2026-05-20_P2] P2 익절가 도달 즉각 수량 연계 ────────────────────
# == [2026-05-20_P2] P2 - 익절가 도달 즉각 수량 연계 ====================
TP_TRIGGER_ALERT_V1:
purpose: >
보유 종목 중 close >= tp1_price 또는 close >= tp2_price인 종목을 감지한다.
@@ -1218,7 +1218,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction P2"
version: "2026-05-20_P2"
# ── [2026-05-20_P3] P3 Heat 편중도 경보 ───────────────────────────────
# == [2026-05-20_P3] P3 - Heat 편중도 경보 ===============================
HEAT_CONCENTRATION_ALERT_V1:
purpose: >
단일 종목의 Heat(=(avgCost-stopPrice)×qty)가 전체 totalHeatKrw의 50% 이상이면
@@ -1240,7 +1240,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction P3"
version: "2026-05-20_P3"
# ── [2026-05-20_P4] P4 국면 전환 경보 ─────────────────────────────────
# == [2026-05-20_P4] P4 - 국면 전환 경보 =================================
REGIME_TRANSITION_ALERT_V1:
purpose: >
직전 실행 국면(settings.prev_market_regime) vs 현재 marketRegime를 비교한다.
@@ -1260,7 +1260,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction P4"
version: "2026-05-20_P4"
# ── [2026-05-20_P5] P5 포트폴리오 건전성 종합 점수 ────────────────────
# == [2026-05-20_P5] P5 - 포트폴리오 건전성 종합 점수 ====================
PORTFOLIO_HEALTH_SCORE_V1:
purpose: >
O1~P4까지 모든 게이트 상태를 집계해 단일 건전성 레이블을 산출한다.
@@ -1343,7 +1343,7 @@ formula_registry:
- "score<40 -> PASS"
version: "2026-05-20_CORE_SAT_TIMING_V1"
# ── [2026-05-20_H6] H6 가짜 매도 신호 차단 홀드 게이트 ─────────────────
# == [2026-05-20_H6] H6 - 가짜 매도 신호 차단 홀드 게이트 =================
ANTI_WHIPSAW_HOLD_GATE_V1:
purpose: >
연속 매도 신호 5일 이상 + 기관·외국인 순매수 조합을 감지해 가짜 매도(whipsaw)를
@@ -1387,7 +1387,7 @@ formula_registry:
canonical_ref: "engine_harness_upgrade_proposal_result.txt:ANTI_WHIPSAW_HOLD_GATE_V1"
version: "2026-05-20_HARNESS_H6"
# ── [2026-05-20_H7] H7 4경로 결정론적 현금확보 라우터 ───────────────────
# == [2026-05-20_H7] H7 - 4경로 결정론적 현금확보 라우터 ===================
SMART_CASH_RAISE_V2:
purpose: >
현금 부족 상황에서 포트폴리오·종목 상태에 따라 4가지 경로(ROUTE_A~D) 중 하나를
@@ -1456,7 +1456,7 @@ formula_registry:
canonical_ref: "engine_harness_upgrade_proposal_result.txt:SMART_CASH_RAISE_V2"
version: "2026-05-23_HARNESS_V5_PROPOSAL46"
# ── [2026-05-23_PROPOSAL46] PA1 정반합 사전 예측 알파 엔진 ─────────────
# == [2026-05-23_PROPOSAL46] PA1 - 정반합 사전 예측 알파 엔진 =============
PREDICTIVE_ALPHA_ENGINE_V1:
purpose: >
正(매수 모멘텀) + 反(분배/과열 신호)를 합산한 방향성 신뢰도(合)를 결정론적으로 산출.
@@ -1525,7 +1525,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction PA1, temp/request_result.txt:proposal_46"
version: "2026-05-23_PROPOSAL46"
# ── [2026-05-23_PROPOSAL46] PA2 뒷박 방지 3중 게이트 V2 ──────────────────
# == [2026-05-23_PROPOSAL46] PA2 - 뒷박 방지 3중 게이트 V2 ==================
ANTI_LATE_ENTRY_GATE_V2:
purpose: >
기존 ANTI_CHASING_VELOCITY_V1(당일 속도만 체크)의 허점 보완.
@@ -1575,11 +1575,11 @@ formula_registry:
prohibition:
- "BLOCK 상태에서 BUY/STAGED_BUY/ADD_ON 출력 금지"
- "entry_grade=F 자동 입력 시 PATTERN_BLACKLIST 카운트 +1 강제"
- "ANTI_CHASING_VELOCITY_V1(V1) 단독 인용 금지 이 V2가 V1을 완전 대체"
- "ANTI_CHASING_VELOCITY_V1(V1) 단독 인용 금지 - 이 V2가 V1을 완전 대체"
canonical_ref: "AGENTS.md:Direction A2 (V2로 업그레이드)"
version: "2026-05-23_PROPOSAL46"
# ── [2026-05-23_PROPOSAL46] PA3 현금확보 매도 세련화 엔진 V2 ─────────────
# == [2026-05-23_PROPOSAL46] PA3 - 현금확보 매도 세련화 엔진 V2 =============
CASH_PRESERVATION_SELL_ENGINE_V2:
purpose: >
K2(50/50 분할) + C1(4단계 폭포수) + C2(타이밍 결정)를 단일 엔진으로 통합.
@@ -1651,7 +1651,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction K2/C1/C2, temp/request_result.txt:proposal_46#1-3"
version: "2026-05-23_PROPOSAL46"
# ── [2026-05-23_PROPOSAL46] PA4 미시/거시/국제정세 동기화 하네스 ──────────
# == [2026-05-23_PROPOSAL46] PA4 - 미시/거시/국제정세 동기화 하네스 ==========
MACRO_EVENT_SYNCHRONIZER_V1:
purpose: >
외국인 순매도 일수·USD/KRW·FOMC 일정·국내 CPI·VIX 등 거시 변수를
@@ -1708,20 +1708,20 @@ formula_registry:
fomc_days_remaining: "integer or null"
prohibition:
- "MACRO_CRITICAL 상태에서 포지션 증가 서술 금지 (Direction D2[10])"
- "LLM이 macro_risk_score를 임의 계산 금지 하네스 출력만 인용"
- "LLM이 macro_risk_score를 임의 계산 금지 - 하네스 출력만 인용"
- "external_context_json 데이터를 주문 판단에 혼입 금지 (G3)"
canonical_ref: "AGENTS.md:Direction G3/ME1, temp/request_result.txt:proposal_46#1-4"
version: "2026-05-23_PROPOSAL46"
# ── [2026-05-23_PROPOSAL46] PA5 데이터정합성/방향성/일관성 검증기 V2 ───────
# == [2026-05-23_PROPOSAL46] PA5 - 데이터정합성/방향성/일관성 검증기 V2 =======
CONSISTENCY_VALIDATOR_V2:
purpose: >
기존 validate_harness_context.py(키 존재 여부만)를 12개 논리 검증 항목으로 확장.
일관성 점수 < 90%이면 보고서 생성 자체 BLOCK 오염 데이터 분석 원천 차단.
일관성 점수 < 90%이면 보고서 생성 자체 BLOCK - 오염 데이터 분석 원천 차단.
DETERMINISTIC_ROUTING_ENGINE_V1의 Step 2(pre-flight)에서 가장 먼저 실행.
inputs:
- {field: "settlement_cash_d2_krw", unit: "KRW", note: "CV_08 현금 경로 검증"}
- {field: "harness_context", unit: "json", note: "전체 harness_context 객체 CV_01~CV_12 검증 원천"}
- {field: "harness_context", unit: "json", note: "전체 harness_context 객체 - CV_01~CV_12 검증 원천"}
checks:
CV_01:
name: "sell_priority 방향 일관성"
@@ -1786,7 +1786,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction D1(Step 2), temp/request_result.txt:proposal_46#1-5"
version: "2026-05-23_PROPOSAL46"
# ── [2026-05-24_PROPOSAL50] EJCE-V1 전문가 3관점 합의 게이트 ─────────────
# == [2026-05-24_PROPOSAL50] EJCE-V1 - 전문가 3관점 합의 게이트 =============
EXPERT_JUDGMENT_CONSENSUS_ENGINE_V1:
purpose: >
Analyst(기술적 관점)·Trader(실행 타이밍)·Quant(리스크 수치) 3관점 중
@@ -1794,9 +1794,9 @@ formula_registry:
buy_permission_json.buy_permission_state=ALLOW여도 NO_BUY 종목 BUY 절대 차단.
inputs:
- {field: "ticker", unit: "string"}
- {field: "df", unit: "object market data feed"}
- {field: "paeRow", unit: "object PAE output row"}
- {field: "hApex", unit: "object harness apex context"}
- {field: "df", unit: "object - market data feed"}
- {field: "paeRow", unit: "object - PAE output row"}
- {field: "hApex", unit: "object - harness apex context"}
output:
field: "ejce_json"
schema:
@@ -1814,7 +1814,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction EJ1"
version: "2026-05-24_PROPOSAL50"
# ── [2026-05-24_PROPOSAL50] SCRS-V2 현금확보 최적 매도조합 ─────────────
# == [2026-05-24_PROPOSAL50] SCRS-V2 - 현금확보 최적 매도조합 =============
SMART_CASH_RECOVERY_SELL_ENGINE_V2:
purpose: >
현금부족(cashShortfallInfo) 상황에서 value_damage_score 최소화 조합을
@@ -1824,7 +1824,7 @@ formula_registry:
- {field: "holdings", unit: "array"}
- {field: "dfMap", unit: "object"}
- {field: "cashShortfallInfo", unit: "object"}
- {field: "h2", unit: "object regime layer"}
- {field: "h2", unit: "object - regime layer"}
output:
field: "scrs_v2_json"
schema:
@@ -1839,7 +1839,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction C3"
version: "2026-05-24_PROPOSAL50"
# ── [2026-05-24_PROPOSAL50] MRAG-V2 거시 국면 적응 게이트 ─────────────
# == [2026-05-24_PROPOSAL50] MRAG-V2 - 거시 국면 적응 게이트 =============
MACRO_REGIME_ADAPTIVE_GATE_V2:
purpose: >
L1(미시)·L2(거시)·L3(글로벌)·L4(이벤트) 4레이어 각 0~25점 합산
@@ -1847,9 +1847,9 @@ formula_registry:
position_size_scale을 결정론적으로 동적 조정.
ME1과 MRAG-V2 중 더 엄격한 값을 effective_heat_gate_threshold로 확정.
inputs:
- {field: "macroJson", unit: "object macro event data"}
- {field: "mesResult", unit: "object MACRO_EVENT_SYNCHRONIZER_V1 output"}
- {field: "hApex", unit: "object harness apex context"}
- {field: "macroJson", unit: "object - macro event data"}
- {field: "mesResult", unit: "object - MACRO_EVENT_SYNCHRONIZER_V1 output"}
- {field: "hApex", unit: "object - harness apex context"}
output:
field: "mrag_v2_json"
schema:
@@ -1871,17 +1871,17 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction ME2"
version: "2026-05-24_PROPOSAL50"
# ── [2026-05-24_PROPOSAL50] M5 V1.1 반도체 집중 비중 강제 감축 ─────────
# == [2026-05-24_PROPOSAL50] M5 V1.1 - 반도체 집중 비중 강제 감축 =========
MANDATORY_REDUCTION_PLAN_V1:
purpose: >
반도체 클러스터 비중이 cluster_limit * 2.0 초과 시 4주 분할 감축 계획을
결정론적으로 생성. RS_BROKEN→ETF→APEX_SUPER 우선순위로 주당 매도수량 배정.
LLM이 "시장 보면서 결정" 임의 유보 금지.
inputs:
- {field: "semiconductorClusterGate", unit: "object cluster gate result"}
- {field: "semiconductorClusterGate", unit: "object - cluster gate result"}
- {field: "holdings", unit: "array"}
- {field: "dfMap", unit: "object"}
- {field: "h3", unit: "object cash floor layer"}
- {field: "h3", unit: "object - cash floor layer"}
- {field: "totalAsset", unit: "KRW integer"}
output:
field: "mandatory_reduction_json"
@@ -1900,14 +1900,14 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction A2 (M5 V1.1)"
version: "2026-05-24_PROPOSAL50"
# ── [2026-05-24_PROPOSAL50] DSLE-V1 결정론적 서빙 잠금 ─────────────────
# == [2026-05-24_PROPOSAL50] DSLE-V1 - 결정론적 서빙 잠금 =================
DETERMINISTIC_SERVING_LOCK_ENGINE_V1:
purpose: >
11개 스테이지 토큰 및 numeric_generation_allowed=0을 통해
LLM이 가격·수량·수익률 등 모든 숫자를 자체 생성하는 것을 완전 차단.
LLM 역할을 NARRATE_HARNESS_OUTPUT·SYNTHESIZE_RISK_CONTEXT·PRESENT_SCENARIO로 한정.
inputs:
- {field: "hApex", unit: "object harness apex context"}
- {field: "hApex", unit: "object - harness apex context"}
- {field: "capturedAtIso", unit: "ISO8601 string"}
- {field: "now", unit: "Date object"}
output:
@@ -1927,20 +1927,20 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction D3"
version: "2026-05-24_PROPOSAL50"
# ── [2026-05-24_PROPOSAL50] HS007 조건부 접속사 Hard-Lock ─────────────
# == [2026-05-24_PROPOSAL50] HS007 - 조건부 접속사 Hard-Lock =============
VALIDATE_ORDER_CONDITION_V1:
purpose: >
주문 조건 텍스트에 다중 조건 접속사('또는', '동시 충족', '실패 시' 등)가
포함되면 INVALID_MULTI_CONDITION 반환. HTS 자동주문은 단일 지정가만 허용.
inputs:
- {field: "order_condition_text", unit: "string 주문 조건 텍스트"}
- {field: "order_condition_text", unit: "string - 주문 조건 텍스트"}
output:
field: "order_condition_validation"
schema:
valid: "boolean"
status: "OK | INVALID_MULTI_CONDITION"
matched_conjunctions: "array of strings"
resolution: "string 단일 조건 기재 안내"
resolution: "string - 단일 조건 기재 안내"
formula_id: "VALIDATE_ORDER_CONDITION_V1"
prohibition:
- "INVALID_MULTI_CONDITION 판정된 행을 HTS 주문표에 포함 금지"
@@ -1948,14 +1948,14 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction 0 (HS007)"
version: "2026-05-24_PROPOSAL50"
# ── [2026-05-24_PROPOSAL50] H10 그림자 원장(Shadow Ledger) ─────────────
# == [2026-05-24_PROPOSAL50] H10 - 그림자 원장(Shadow Ledger) =============
SHADOW_LEDGER_V1:
purpose: >
BLOCKED/INVALID 블루프린트를 HTS 주문표에서 제외하되, 차단 사유 및
산출 지표를 투명하게 보존. 사용자의 사후 평가·오버라이드를 지원.
inputs:
- {field: "blueprints", unit: "array order_blueprint_json"}
- {field: "dfMap", unit: "object 종목별 data feed map"}
- {field: "blueprints", unit: "array - order_blueprint_json"}
- {field: "dfMap", unit: "object - 종목별 data feed map"}
output:
field: "shadow_ledger_json"
schema:
@@ -1971,21 +1971,21 @@ formula_registry:
stop_loss_calc: "산출 손절가 (KRW)"
take_profit_calc: "산출 익절가 (KRW)"
base_qty_calc: "이론 수량 (주)"
override_possible: "true 사용자 오버라이드 가능"
override_possible: "true - 사용자 오버라이드 가능"
prohibition:
- "BLOCKED 종목의 산출 지표를 null 처리하거나 은폐 금지 (HS010 위반)"
- "Shadow Ledger 종목을 HTS 주문표에 포함 금지"
canonical_ref: "AGENTS.md:Direction H10 (HS010_REVISED)"
version: "2026-05-24_PROPOSAL50"
# ── [2026-05-24_PROPOSAL50] D2 LLM 12가지 금지행동 잠금 ─────────────────
# == [2026-05-24_PROPOSAL50] D2 - LLM 12가지 금지행동 잠금 =================
LLM_SERVING_CONSTRAINT_V1:
purpose: >
LLM의 역할을 하네스 출력 복사·해설·위험 합성으로 엄격히 제한.
12가지 금지행동 체크리스트를 보고서 조립 직전 GAS가 평가하여
위반 가능성이 있으면 INVALID_LLM_OVERRIDE 태그를 반환.
inputs:
- {field: "hApex", unit: "object harness apex context (전체 하네스 결과)"}
- {field: "hApex", unit: "object - harness apex context (전체 하네스 결과)"}
output:
field: "llm_serving_constraint_json"
schema:
@@ -2001,7 +2001,7 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction D2"
version: "2026-05-24_PROPOSAL50"
# ── [2026-05-24_PROPOSAL50] H6 거래대금 급증 과열신호 ─────────────────
# == [2026-05-24_PROPOSAL50] H6 - 거래대금 급증 과열신호 =================
AVG_TRADE_VALUE_SIGNAL_V1:
purpose: >
secular_leader(005930·000660) PROFIT_LOCK_STAGE_20 구간에서
@@ -2009,9 +2009,9 @@ formula_registry:
4개 과열신호 합산 판정에 반영하여 APEX_SUPER 구간 부분익절 허용 여부를 결정.
inputs:
- {field: "ticker", unit: "string"}
- {field: "avg_trade_val_5d", unit: "KRW 5일 평균 거래대금"}
- {field: "avg_trade_val_20d", unit: "KRW 20일 평균 거래대금"}
- {field: "profit_lock_stage", unit: "string PROFIT_LOCK_STAGE_20 여부 확인"}
- {field: "avg_trade_val_5d", unit: "KRW - 5일 평균 거래대금"}
- {field: "avg_trade_val_20d", unit: "KRW - 20일 평균 거래대금"}
- {field: "profit_lock_stage", unit: "string - PROFIT_LOCK_STAGE_20 여부 확인"}
expressions:
ratio_5d_vs_20d: "avg_trade_val_5d / avg_trade_val_20d"
overheat_triggered: "ratio_5d_vs_20d >= 3.0"
@@ -2020,7 +2020,7 @@ formula_registry:
field: "avg_trade_val_signal_json"
schema:
ticker: "종목 코드"
applicable: "boolean secular_leader AND STAGE_20 여부"
applicable: "boolean - secular_leader AND STAGE_20 여부"
signal: "OVERHEAT_TRADE_VALUE | NORMAL | NOT_APPLICABLE"
ratio_5d_vs_20d: "number"
overheat_triggered: "boolean"
@@ -2032,16 +2032,16 @@ formula_registry:
canonical_ref: "AGENTS.md:Direction H6"
version: "2026-05-24_PROPOSAL50"
# ── [PROPOSAL51] P0-B 매도 주문 3중 가격 검증 ─────────────────────────────
# == [PROPOSAL51] P0-B - 매도 주문 3중 가격 검증 =============================
SELL_PRICE_SANITY_V2:
purpose: >
buildOrderBlueprint_ 산출 매도/STOP_LOSS 주문에 대해 3조건 가격 역전을 검증.
validation_status를 인라인 재기록하여 EXPORT_GATE가 자동 차단.
LLM이 가격 역전 주문을 HTS에 입력하는 사고를 원천 차단.
inputs:
- {field: "limit_price", unit: "KRW 지정가"}
- {field: "stop_price", unit: "KRW 손절가"}
- {field: "auto_trailing_stop", unit: "KRW profit_preservation 자동 추적 손절가"}
- {field: "limit_price", unit: "KRW - 지정가"}
- {field: "stop_price", unit: "KRW - 손절가"}
- {field: "auto_trailing_stop", unit: "KRW - profit_preservation 자동 추적 손절가"}
checks:
CHECK_1: "limit_price < final_stop → INVALID_PRICE_INVERSION"
CHECK_2: "stop_price < auto_trailing_stop → INVALID_TRAILING_STOP_BREACH"
@@ -2050,17 +2050,17 @@ formula_registry:
field: "spsv2_verdict"
values:
SPSV2_PASS: "3조건 모두 통과"
INVALID_PRICE_INVERSION: "지정가 < 최종 손절가 역전"
INVALID_TRAILING_STOP_BREACH: "손절가 < auto_trailing_stop 추적 손절 위반"
INVALID_ZERO_PRICE: "지정가=0 미확정 가격"
NOT_SELL_SKIP: "SELL/STOP_LOSS 외 주문 검증 스킵"
INVALID_PRICE_INVERSION: "지정가 < 최종 손절가 - 역전"
INVALID_TRAILING_STOP_BREACH: "손절가 < auto_trailing_stop - 추적 손절 위반"
INVALID_ZERO_PRICE: "지정가=0 - 미확정 가격"
NOT_SELL_SKIP: "SELL/STOP_LOSS 외 주문 - 검증 스킵"
prohibition:
- "SPSV2 검증 전 Export Gate 실행 금지"
- "INVALID 상태 주문의 HTS 입력 절대 금지"
gs_function: "calcSellPriceSanityV2_"
version: "2026-05-25_PROPOSAL51"
# ── [PROPOSAL51] P1-A Export Gate V2 ──────────────────────────────────────
# == [PROPOSAL51] P1-A - Export Gate V2 ======================================
EXPORT_GATE_V2:
purpose: >
EXPORT_READY / REVIEW_ONLY / PENDING_EXPORT 3단계 분류.
@@ -2076,22 +2076,22 @@ formula_registry:
CHECK_7: "portfolio_health_score 숫자형 확인"
CHECK_8: "SEMICONDUCTOR_CLUSTER_SYNC 정합성 확인"
tiers:
EXPORT_READY: "모든 체크 PASS HTS 입력 허용"
REVIEW_ONLY: "WARN 체크 존재, FAIL 없음 검토 후 진행"
PENDING_EXPORT: "FAIL 체크 존재 HTS 입력 금지"
EXPORT_READY: "모든 체크 PASS - HTS 입력 허용"
REVIEW_ONLY: "WARN 체크 존재, FAIL 없음 - 검토 후 진행"
PENDING_EXPORT: "FAIL 체크 존재 - HTS 입력 금지"
gs_function: "calcExportGate_"
version: "2026-05-25_PROPOSAL51"
# ── [PROPOSAL51] P0-C 반도체 클러스터 단일 소스 동기화 ─────────────────────
# == [PROPOSAL51] P0-C - 반도체 클러스터 단일 소스 동기화 =====================
SEMICONDUCTOR_CLUSTER_SYNC_V1:
purpose: >
SEMICONDUCTOR_CLUSTER_GATE_V1 결과 ↔ MANDATORY_REDUCTION_PLAN_V1 is_mandatory 정합성 보장.
combined_pct > cap_pct * 2 → is_mandatory=true 강제.
단일 소스(클러스터 게이트)가 의무 감축 여부를 결정.
inputs:
- {field: "cluster_pct", unit: "% mandatory_reduction_json.cluster_pct"}
- {field: "cluster_limit_pct", unit: "% mandatory_reduction_json.cluster_limit_pct"}
- {field: "is_mandatory", unit: "boolean 교정 전 값"}
- {field: "cluster_pct", unit: "% - mandatory_reduction_json.cluster_pct"}
- {field: "cluster_limit_pct", unit: "% - mandatory_reduction_json.cluster_limit_pct"}
- {field: "is_mandatory", unit: "boolean - 교정 전 값"}
expression: "cluster_pct > cluster_limit_pct * 2 ? is_mandatory=true : is_mandatory=false"
output:
field: "cluster_sync_result_json"
@@ -2103,11 +2103,11 @@ formula_registry:
gs_function: "syncSemiconductorCluster_"
version: "2026-05-25_PROPOSAL51"
# ── [PROPOSAL51] P2-B 사전 분배 레이더 V2 ─────────────────────────────────
# == [PROPOSAL51] P2-B - 사전 분배 레이더 V2 =================================
PROACTIVE_SELL_RADAR_V2:
purpose: >
8가지 신호로 분배(설거지) 3일 전 조기 감지 → CRITICAL/WARNING/WATCH/CLEAR 분류.
DISTRIBUTION_SELL_DETECTOR V1.1 (사후 확인) 보완 사전 예측 기능.
DISTRIBUTION_SELL_DETECTOR V1.1 (사후 확인) 보완 - 사전 예측 기능.
signals:
SIG_1: "고가 2% 이내 + 거래량 30% 수축 (weight=2.0)"
SIG_2: "기관 5일 순매도 전환 (weight=2.0)"
@@ -2118,14 +2118,14 @@ formula_registry:
SIG_7: "RSI 70이상 + 5일 수익률 음수 (weight=1.5)"
SIG_8: "auto_trailing_stop 2% 이내 근접 (weight=2.0)"
levels:
CRITICAL: "weighted_sum >= 5.0 즉시 매도 검토"
WARNING: "weighted_sum >= 3.0 감축 계획 수립"
WATCH: "weighted_sum >= 1.5 주의 모니터링"
CLEAR: "weighted_sum < 1.5 정상"
CRITICAL: "weighted_sum >= 5.0 - 즉시 매도 검토"
WARNING: "weighted_sum >= 3.0 - 감축 계획 수립"
WATCH: "weighted_sum >= 1.5 - 주의 모니터링"
CLEAR: "weighted_sum < 1.5 - 정상"
gs_function: "calcProactiveSellRadarV2_"
version: "2026-05-25_PROPOSAL51"
# ── [PROPOSAL51] P2-A 뒷박 차단 게이트 V3 ────────────────────────────────
# == [PROPOSAL51] P2-A - 뒷박 차단 게이트 V3 ================================
ANTI_LATE_ENTRY_GATE_V3:
purpose: >
V2의 3게이트(velocity_1d/velocity_5d/distribution_ws) + GATE_4(PAE) + GATE_5(블랙리스트) →
@@ -2144,18 +2144,18 @@ formula_registry:
gs_function: "applyAlegGate4And5Impl_"
version: "2026-05-25_PROPOSAL51"
# ── [PROPOSAL51] P0-D 5계층 가격 단일화 잠금 ───────────────────────────
# == [PROPOSAL51] P0-D - 5계층 가격 단일화 잠금 ===========================
PRICE_HIERARCHY_LOCK_V1:
purpose: >
동일 종목의 가격을 5계층으로 분리 잠금.
LAYER_1(주문가)만 HTS 지정가로 사용. LAYER_5(참고방어가)가 LAYER_1 위치에 나타나면
INVALID_LAYER_VIOLATION 표간 가격 혼재 완전 차단.
INVALID_LAYER_VIOLATION - 표간 가격 혼재 완전 차단.
layers:
LAYER_1: "order_blueprint_json.limit_price HTS 주문표 지정가 전용"
LAYER_2: "prices_json.stop_price / tp1_price / tp2_price 손절/익절 원장"
LAYER_3: "profit_preservation_json.auto_trailing_stop LAYER_2 손절가 하한 보정용"
LAYER_4: "scrs_v2_json.rebound_trigger_price SCRS-V2 반등대기 트리거 전용"
LAYER_5: "proposal_reference.reference_defense_price WATCH 감시 원장 참고방어가 전용"
LAYER_1: "order_blueprint_json.limit_price - HTS 주문표 지정가 전용"
LAYER_2: "prices_json.stop_price / tp1_price / tp2_price - 손절/익절 원장"
LAYER_3: "profit_preservation_json.auto_trailing_stop - LAYER_2 손절가 하한 보정용"
LAYER_4: "scrs_v2_json.rebound_trigger_price - SCRS-V2 반등대기 트리거 전용"
LAYER_5: "proposal_reference.reference_defense_price - WATCH 감시 원장 참고방어가 전용"
violation_types:
INVALID_LAYER_VIOLATION: "LAYER_5==LAYER_1 또는 LAYER_4==LAYER_2"
LAYER_PROXIMITY_WARNING: "LAYER_5와 LAYER_1이 5% 이내 근접"
@@ -2164,7 +2164,7 @@ formula_registry:
gs_function: "applyPriceHierarchyLockAll_"
version: "2026-05-25_PROPOSAL51"
# ── [PROPOSAL51] P1-B 데이터 완성도 필드충족률 게이트 ──────────────────
# == [PROPOSAL51] P1-B - 데이터 완성도 필드충족률 게이트 ==================
DATA_QUALITY_GATE_V2:
purpose: >
핵심 8개 카테고리(prediction/trade_quality/pattern/stop_loss/cash/sell_engine/cluster/alpha_eval)의
@@ -2189,7 +2189,7 @@ formula_registry:
gs_function: "calcDataQualityGateV2_"
version: "2026-05-25_PROPOSAL51"
# ── [PROPOSAL51] P1-C 현금회복 금액 3분리 표시 잠금 ───────────────────
# == [PROPOSAL51] P1-C - 현금회복 금액 3분리 표시 잠금 ===================
CASH_RECOVERY_DISPLAY_LOCK_V1:
purpose: >
현금회복 금액을 min_required / optimal_combo / reference_total 3분리 표시.
@@ -2197,7 +2197,7 @@ formula_registry:
reference_total_krw는 "주문 아님" 레이블 강제.
display_rules:
SECTION_CASH_RECOVERY: "min_required_krw + optimal_combo_krw만 표시 (SCRS-V2 즉시매도 합계)"
SECTION_REFERENCE_TRIM: "reference_total_krw '참고용 전체 후보 누적 주문 아님'"
SECTION_REFERENCE_TRIM: "reference_total_krw - '참고용 전체 후보 누적 - 주문 아님'"
consistency_checks:
UNCOVERED: "optimal_combo < min_required → CASH_SHORTFALL_UNCOVERED"
OVER_SELL: "optimal_combo > min_required*2 → OVER_SELL_WARNING"
@@ -2299,7 +2299,7 @@ formula_registry:
gs_function: "calcRoutingDecisionExplainLockV1_"
version: "2026-05-25_PROPOSAL54"
# ─── Phase-4~5 신규 하네스 게이트 매핑 (2026-05-28) ───────────────────────
# === Phase-4~5 신규 하네스 게이트 매핑 (2026-05-28) =======================
TRADE_QUALITY_FROM_T5_V1:
purpose: >
@@ -2500,7 +2500,7 @@ formula_registry:
canonical_ref: "ENGINE_AUDIT_V1 / spec/28_imputed_data_exposure_contract.yaml"
version: "2026-05-31_ENGINE_AUDIT_V1"
# ── 파이프라인 orphan 공식 일괄 등록 (orphan reconciliation 2026-06-03) ──────
# == 파이프라인 orphan 공식 일괄 등록 (orphan reconciliation 2026-06-03) ======
ANTI_LATE_ENTRY_PULLBACK_GATE_V4:
purpose: >