feat(quant-engine): v8.9 제안서 P0-P3 로드맵 채택 — 15개 의사결정 엔진 신규 구현
suggest/quant_investment_engine_v8_9_portfolio_optimizer_canonical_refactored.yaml의
implementation_todo_v8_9(P0~P4) 전체를 spec/tool/golden case 레벨로 구현.
- P0: PORTFOLIO_TRANSITION_UTILITY_V1, SELL_LOT_PARETO_SELECTOR_V1, FORECAST_SIMULATION_ENGINE_V1
- P1: SECTOR_EXPOSURE_GRAPH_V1/LEADER_LIFECYCLE_GATE_V1, EXECUTION_CAPACITY_LADDER_V1, MODEL_GOVERNANCE_KILL_SWITCH_V1
- P2: SCENARIO_SHOCK_MATRIX_V1, TRANSITION_SET_ENUMERATOR_V1, IMMUTABLE_DECISION_LEDGER_V1, EXECUTION_PLAN_COMPILER_V1
- P3: STATE_VECTOR_CONSTRUCTOR_V1, WALK_FORWARD_BOOTSTRAP_V1, TRANSITION_SET_ENUMERATOR_V1(MRC/CVaR 확장),
REBALANCE_CADENCE_GATE_V1, WEEKLY_LEGACY_TRANSFER_PLAN_V1
기존 regime/cluster 연동 정책 수치(현금방어선, 반도체 cap)는 그대로 유지하고 신규 cap 필드만 추가.
spec/09_decision_flow.yaml과 runtime/active_artifact_manifest.yaml에 전 엔진 배선 완료.
governance/todo/v8_9_p{0,1,2,3}_adoption_plan.yaml에 각 단계 작업 추적 기록.
검증: validate_specs/validate_golden_coverage_100(100%)/validate_calibration_registry_v1/
validate_schema_model_generation_v1/validate_agents_shrink_v1 전부 PASS. golden test 53/53 PASS.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,166 @@
|
||||
schema_version: v8_9_p0_adoption_plan.v1
|
||||
meta:
|
||||
title: v8_9_p0_adoption_plan
|
||||
source_proposal: suggest/quant_investment_engine_v8_9_portfolio_optimizer_canonical_refactored.yaml
|
||||
decision_basis: >
|
||||
정책 수치는 기존 regime/cluster 연동 수치를 유지하고 v8.9 신규 구조만 추가한다.
|
||||
작업 범위는 운영에 즉시 필요한 3개 구멍(portfolio_transition_optimizer,
|
||||
sell lot Pareto selector, CE70/CE90/CVaR95 simulation engine)만 우선 차단한다.
|
||||
(사용자 확인: 2026-06-17 plan-mode 대화)
|
||||
superseded_or_deferred_from_proposal:
|
||||
- sector_graph_engine_v8_9 (factor residualization, leader lifecycle, ETF lookthrough)
|
||||
- execution_plan_compiler_v8_9 (broker_microstructure_packet capacity 강화)
|
||||
- model_governance_v8_9 (kill switch 자동화 전체 세트)
|
||||
note: 이 항목들은 별도 후속 제안으로 분리한다. 이 TODO 파일의 범위 밖이다.
|
||||
not_adopted_policy_values:
|
||||
reason: 기존 spec/risk/portfolio_exposure.yaml의 regime/cluster_state 연동 수치가 v8.9의 고정값보다 더 정교함.
|
||||
examples:
|
||||
- "cash_floor: v8.9 GROWTH=12.5% 고정 → 기존 regime 7~25% 단계 유지"
|
||||
- "semiconductor_cap: v8.9 35% 고정 → 기존 cluster_state 연동 25/35/60% 유지"
|
||||
adopted_new_fields_only:
|
||||
- single_stock_hard_cap_pct: 20
|
||||
- single_stock_soft_cap_pct: 15
|
||||
- top3_hard_cap_pct: 65
|
||||
- top3_soft_cap_pct: 50
|
||||
|
||||
tasks:
|
||||
- id: P0-1.1
|
||||
title: 신규 cap 필드 추가 (교체 아님, 추가)
|
||||
output_file: spec/risk/portfolio_exposure.yaml
|
||||
detail: >
|
||||
single_stock_hard_cap_pct=20/soft=15, top3_hard_cap_pct=65/soft=50 신규 필드 추가.
|
||||
기존 regime cash_floor·cluster_state 반도체 cap은 불변.
|
||||
depends_on: []
|
||||
acceptance_criteria:
|
||||
- 신규 필드가 portfolio_exposure_framework 하위에 추가됨
|
||||
- 기존 cash_floor.regime_numbers, cluster_states 수치 변경 없음 (git diff로 확인)
|
||||
|
||||
- id: P0-1.2
|
||||
title: formula registry에 PORTFOLIO_TRANSITION_UTILITY_V1 등록
|
||||
output_file:
|
||||
- spec/formulas/domains/portfolio.yaml
|
||||
- spec/13_formula_registry.yaml
|
||||
detail: >
|
||||
state_vector, candidate_action_schema, hard_veto_order, transition_utility 공식,
|
||||
acceptance_margin, NO_TRADE/solver_failure/rank_tie/conflicting_packets fallback을
|
||||
명시. spec/13_formula_registry.yaml의 python_harness_supplements.formulas에
|
||||
PORTFOLIO_TRANSITION_UTILITY_V1 ID 추가.
|
||||
depends_on: [P0-1.1]
|
||||
acceptance_criteria:
|
||||
- PORTFOLIO_TRANSITION_UTILITY_V1 공식이 spec/formulas/domains/portfolio.yaml에 존재
|
||||
- 공식 ID가 spec/13_formula_registry.yaml에 등록됨
|
||||
- default_action: NO_TRADE 명시
|
||||
|
||||
- id: P0-1.3
|
||||
title: portfolio_transition_optimizer 빌드 도구 작성
|
||||
output_file: tools/build_portfolio_transition_optimizer_v1.py
|
||||
inputs:
|
||||
- Temp/final_decision_packet_active.json
|
||||
- Temp/sell_waterfall_engine_v3.json
|
||||
- Temp/smart_cash_recovery_v9.json
|
||||
detail: >
|
||||
기존 tools/build_sell_waterfall_engine_v3.py 패턴(_load, argparse --base/--out)을 따른다.
|
||||
candidate_actions를 입력 아티팩트에서 구성하고 hard_constraint_pass 평가 후
|
||||
transition_utility_krw, acceptance_margin_krw를 계산해 selected_transition 또는
|
||||
NO_TRADE를 결정론적으로 출력한다.
|
||||
depends_on: [P0-1.2]
|
||||
acceptance_criteria:
|
||||
- 입력 아티팩트가 없으면 NO_TRADE_AND_QUARANTINE 반환 (추정값 생성 금지)
|
||||
- 출력에 formula_id, gate, reason_codes, source_paths 포함
|
||||
|
||||
- id: P0-1.4
|
||||
title: schema + generated model
|
||||
output_file:
|
||||
- schemas/portfolio_transition_optimizer_v1.schema.json
|
||||
- src/quant_engine/models/generated/portfolio_transition_optimizer_v1_schema.py
|
||||
depends_on: [P0-1.3]
|
||||
acceptance_criteria:
|
||||
- schemas/generated와 src/quant_engine/models/generated parity 유지 (AGENTS.md §5)
|
||||
|
||||
- id: P0-1.5
|
||||
title: golden case 작성
|
||||
output_file: tests/golden/generated/portfolio_transition_optimizer_v1_golden.py
|
||||
detail: v8.9 제안서 V89_002(NO_TRADE default), V89_048(solver_failure), V89_049(rank_tie), V89_050(conflicting_packets) 대응 케이스.
|
||||
depends_on: [P0-1.4]
|
||||
acceptance_criteria:
|
||||
- 4개 이상의 실질 assertion이 있는 테스트 (auto-generated stub 패턴 탈피)
|
||||
|
||||
- id: P0-1.6
|
||||
title: runtime manifest·decision flow 배선
|
||||
output_file:
|
||||
- runtime/active_artifact_manifest.yaml
|
||||
- spec/09_decision_flow.yaml
|
||||
depends_on: [P0-1.5]
|
||||
acceptance_criteria:
|
||||
- manifest_rows 또는 source_precedence에 portfolio_transition_optimizer_v1 등록
|
||||
|
||||
- id: P0-2.1
|
||||
title: SELL_LOT_PARETO_SELECTOR_V1 공식 정의
|
||||
output_file: spec/formulas/domains/cash.yaml
|
||||
detail: >
|
||||
기존 SELL_WATERFALL_ENGINE_V1 옆에 신규 섹션 추가.
|
||||
tax_loss_benefit, missed_upside_penalty, reentry_cost 항을 LOT_SELL_SCORE에 추가하고
|
||||
동순위 후보 간 Pareto 비교(avoided_tail_loss vs missed_upside 등 다목적) 규칙 명시.
|
||||
depends_on: []
|
||||
acceptance_criteria:
|
||||
- LOT_SELL_SCORE 공식에 3개 신규 항 모두 포함
|
||||
- Pareto 비교 규칙(어떤 후보가 다른 후보를 dominate하는지)이 결정론적으로 기술됨
|
||||
|
||||
- id: P0-2.2
|
||||
title: build_sell_waterfall_engine_v4.py
|
||||
output_file: tools/build_sell_waterfall_engine_v4.py
|
||||
detail: tools/build_sell_waterfall_engine_v3.py를 확장. v3 출력을 입력으로 받아 Pareto 선택 단계를 추가.
|
||||
depends_on: [P0-2.1]
|
||||
acceptance_criteria:
|
||||
- v3 출력과 하위호환 (기존 rows 구조 보존, 신규 필드만 추가)
|
||||
|
||||
- id: P0-2.3
|
||||
title: sell waterfall v4 golden case
|
||||
output_file: tests/golden/generated/sell_waterfall_engine_v4_golden.py
|
||||
detail: V89_029(deconcentration_trim), V89_030(profit_lock), V89_031(tax_drag_too_high) 대응.
|
||||
depends_on: [P0-2.2]
|
||||
acceptance_criteria:
|
||||
- 3개 케이스 모두 실질 assertion 포함
|
||||
|
||||
- id: P0-3.1
|
||||
title: CE70/CE90/CVaR95 공식 계약 정의
|
||||
output_file: spec/formulas/domains/simulation.yaml
|
||||
detail: >
|
||||
spec/29_backtest_harness_contract.yaml의 insufficient_data 상태를 입력으로 받아
|
||||
sample_count_total/same_regime이 v8.9 minimum_sample_rules(SHADOW 30/10, PILOT 80/20,
|
||||
LIVE_LIMITED 150/30, LIVE_FULL 300/50) 미달이면 WATCH_ONLY 또는 DATA_MISSING 반환.
|
||||
표본이 충분할 때만 walk_forward_bootstrap 실행 경로를 명시. 가짜 분포 생성 금지.
|
||||
depends_on: []
|
||||
acceptance_criteria:
|
||||
- minimum_sample_rules 표본 기준이 AGENTS.md §6b(T+20 30건)와 일치
|
||||
- 표본 부족 시 반환값이 DATA_MISSING 또는 WATCH_ONLY로만 표시됨 (추정 금지)
|
||||
|
||||
- id: P0-3.2
|
||||
title: build_forecast_simulation_engine_v1.py
|
||||
output_file: tools/build_forecast_simulation_engine_v1.py
|
||||
inputs:
|
||||
- Temp/prediction_accuracy_harness_v2.json
|
||||
- spec/29_backtest_harness_contract.yaml
|
||||
depends_on: [P0-3.1]
|
||||
acceptance_criteria:
|
||||
- 현재 T+20 표본 0건 상태에서 실행 시 CE70/CE90/CVaR95가 DATA_MISSING으로 출력됨
|
||||
|
||||
- id: P0-3.3
|
||||
title: forecast simulation golden case
|
||||
output_file: tests/golden/generated/forecast_simulation_engine_v1_golden.py
|
||||
detail: V89_013(missing_CVaR → QUARANTINE), V89_014(same_regime_sample_low → WATCH_ONLY) 대응.
|
||||
depends_on: [P0-3.2]
|
||||
acceptance_criteria:
|
||||
- 2개 케이스 모두 실질 assertion 포함
|
||||
|
||||
- id: P0-4.1
|
||||
title: 전체 검증 스위트 실행
|
||||
command: |
|
||||
python tools/validate_specs.py
|
||||
python tools/validate_golden_coverage_100.py
|
||||
python tools/validate_calibration_registry_v1.py
|
||||
python tools/validate_schema_model_generation_v1.py
|
||||
python tools/validate_agents_shrink_v1.py
|
||||
depends_on: [P0-1.6, P0-2.3, P0-3.3]
|
||||
acceptance_criteria:
|
||||
- 5개 validator 모두 PASS
|
||||
@@ -0,0 +1,110 @@
|
||||
schema_version: v8_9_p1_adoption_plan.v1
|
||||
meta:
|
||||
title: v8_9_p1_adoption_plan
|
||||
source_proposal: suggest/quant_investment_engine_v8_9_portfolio_optimizer_canonical_refactored.yaml
|
||||
predecessor: governance/todo/v8_9_p0_adoption_plan.yaml
|
||||
decision_basis: >
|
||||
P0(portfolio_transition_optimizer, sell lot Pareto, CE70/CE90/CVaR95 simulation) 완료 후
|
||||
사용자가 "로드맵에 따라 제안한 모든 작업을 순차적으로 진행"하도록 지시(2026-06-17).
|
||||
탐색 결과(에이전트 보고) 3개 항목 모두 spec 레벨 구현이 없음을 확인 — 신규 구현.
|
||||
scope:
|
||||
- sector_graph_engine_v8_9 (canonical sector ID, ETF lookthrough, factor residualization, leader lifecycle)
|
||||
- execution_plan_compiler_v8_9.broker_microstructure_packet (order_capacity formula)
|
||||
- model_governance_v8_9 (kill switches, promotion_ladder 자동화)
|
||||
|
||||
tasks:
|
||||
- id: P1-A.1
|
||||
title: SECTOR_EXPOSURE_GRAPH_V1 공식 정의
|
||||
output_file: spec/formulas/domains/sector.yaml (신규)
|
||||
detail: >
|
||||
canonical_sector_id 포맷(L1:L2:L3:L4), ETF lookthrough_weight_pct 산식,
|
||||
factor_beta_residualization(AI/반도체/전력 중복 베타 제거) 정의.
|
||||
depends_on: []
|
||||
|
||||
- id: P1-A.2
|
||||
title: LEADER_LIFECYCLE_GATE_V1 공식 정의
|
||||
output_file: spec/formulas/domains/sector.yaml
|
||||
detail: CAPTAIN/CORE_LEADER/ENABLER/CYCLICAL_BETA/LAGGARD/DISTRIBUTION_RISK promotion/demotion 결정론적 상태머신.
|
||||
depends_on: [P1-A.1]
|
||||
|
||||
- id: P1-A.3
|
||||
title: build_sector_exposure_graph_v1.py
|
||||
output_file: tools/build_sector_exposure_graph_v1.py
|
||||
depends_on: [P1-A.2]
|
||||
|
||||
- id: P1-A.4
|
||||
title: schema + generated model (sector)
|
||||
output_file:
|
||||
- schemas/generated/sector_exposure_graph_v1.schema.json
|
||||
- src/quant_engine/models/generated/sector_exposure_graph_v1_schema.py
|
||||
depends_on: [P1-A.3]
|
||||
|
||||
- id: P1-A.5
|
||||
title: sector golden case
|
||||
detail: V89_044(sector_overlap), V89_045(ETF_direct_overlap), V89_046(leader_distribution)
|
||||
output_file: tests/golden/generated/sector_exposure_graph_v1_golden.py
|
||||
depends_on: [P1-A.4]
|
||||
|
||||
- id: P1-B.1
|
||||
title: EXECUTION_CAPACITY_LADDER_V1 공식 정의
|
||||
output_file: spec/formulas/domains/execution.yaml (신규)
|
||||
detail: >
|
||||
order_capacity_krw = min(planned_order_amount_krw, avg_trade_value_20d_krw*0.003,
|
||||
intraday_trade_value_krw*0.01, orderbook_top3_depth_krw*0.30).
|
||||
spread_bps, orderbook_top3_depth_krw 신규 필드.
|
||||
depends_on: []
|
||||
|
||||
- id: P1-B.2
|
||||
title: build_execution_capacity_ladder_v1.py
|
||||
output_file: tools/build_execution_capacity_ladder_v1.py
|
||||
depends_on: [P1-B.1]
|
||||
|
||||
- id: P1-B.3
|
||||
title: schema + generated model (execution)
|
||||
output_file:
|
||||
- schemas/generated/execution_capacity_ladder_v1.schema.json
|
||||
- src/quant_engine/models/generated/execution_capacity_ladder_v1_schema.py
|
||||
depends_on: [P1-B.2]
|
||||
|
||||
- id: P1-B.4
|
||||
title: execution capacity golden case
|
||||
detail: V89_019(broker_packet_missing), V89_020(capacity_too_low), V89_022(spread_widens)
|
||||
output_file: tests/golden/generated/execution_capacity_ladder_v1_golden.py
|
||||
depends_on: [P1-B.3]
|
||||
|
||||
- id: P1-C.1
|
||||
title: MODEL_GOVERNANCE_KILL_SWITCH_V1 공식 정의
|
||||
output_file: spec/formulas/domains/governance.yaml (신규)
|
||||
detail: >
|
||||
data_quarantine_rate_above_5pct, implementation_shortfall_above_2x_expected,
|
||||
T5_hit_rate_below_50pct_30trades, calibration_error_above_limit, drawdown_breach
|
||||
kill switch 조건 + promotion_ladder(AUDIT_ONLY→SHADOW→PILOT→LIVE_LIMITED→LIVE_FULL) 자동화.
|
||||
depends_on: []
|
||||
|
||||
- id: P1-C.2
|
||||
title: build_model_governance_kill_switch_v1.py
|
||||
output_file: tools/build_model_governance_kill_switch_v1.py
|
||||
depends_on: [P1-C.1]
|
||||
|
||||
- id: P1-C.3
|
||||
title: schema + generated model (governance)
|
||||
output_file:
|
||||
- schemas/generated/model_governance_kill_switch_v1.schema.json
|
||||
- src/quant_engine/models/generated/model_governance_kill_switch_v1_schema.py
|
||||
depends_on: [P1-C.2]
|
||||
|
||||
- id: P1-C.4
|
||||
title: kill switch golden case
|
||||
detail: V89_035(hit_rate), V89_036(slippage), V89_037(quarantine_rate)
|
||||
output_file: tests/golden/generated/model_governance_kill_switch_v1_golden.py
|
||||
depends_on: [P1-C.3]
|
||||
|
||||
- id: P1-4
|
||||
title: 전체 검증 스위트 재실행
|
||||
command: |
|
||||
python tools/validate_specs.py
|
||||
python tools/validate_golden_coverage_100.py
|
||||
python tools/validate_calibration_registry_v1.py
|
||||
python tools/validate_schema_model_generation_v1.py
|
||||
python tools/validate_agents_shrink_v1.py
|
||||
depends_on: [P1-A.5, P1-B.4, P1-C.4]
|
||||
@@ -0,0 +1,55 @@
|
||||
schema_version: v8_9_p2_adoption_plan.v1
|
||||
meta:
|
||||
title: v8_9_p2_adoption_plan
|
||||
source_proposal: suggest/quant_investment_engine_v8_9_portfolio_optimizer_canonical_refactored.yaml
|
||||
predecessor:
|
||||
- governance/todo/v8_9_p0_adoption_plan.yaml
|
||||
- governance/todo/v8_9_p1_adoption_plan.yaml
|
||||
decision_basis: >
|
||||
P0+P1 완료(spec/tool/schema/golden case/decision_flow/manifest 배선까지) 후 사용자가
|
||||
"로드맵에 따라서 제안한 모든 작업을 순차적으로 진행"을 재요청(2026-06-17).
|
||||
원본 제안서의 implementation_todo_v8_9 중 P0/P1에서 다루지 않은 4개 세부 항목을 P2로 채택.
|
||||
scope:
|
||||
- forecast_and_simulation_engine_v8_9.simulation_grid (scenario shock matrix)
|
||||
- portfolio_transition_optimizer_v8_9.selection_algorithm (transition-set 조합 열거)
|
||||
- model_governance_v8_9.immutable_decision_log_required_fields
|
||||
- execution_plan_compiler_v8_9 (LIMIT_SPLIT 전체 컴파일)
|
||||
|
||||
tasks:
|
||||
- id: P2-A
|
||||
title: SCENARIO_SHOCK_MATRIX_V1
|
||||
output_file: spec/formulas/domains/simulation.yaml
|
||||
detail: >
|
||||
base/adverse/liquidity_drought/crisis/fx_shock/tax_cost 6개 시나리오로 net_profit_distribution을
|
||||
스트레스 적용. 표본 부족 시 DATA_MISSING(가짜 분포 생성 금지).
|
||||
implementation: tools/build_scenario_shock_matrix_v1.py
|
||||
|
||||
- id: P2-B
|
||||
title: TRANSITION_SET_ENUMERATOR_V1
|
||||
output_file: spec/formulas/domains/portfolio.yaml
|
||||
detail: >
|
||||
개별 candidate가 아니라 candidate 조합(transition set) 단위로 hard_constraint_pass,
|
||||
post_trade_cash_floor_pct, transition_utility_krw를 평가하고 최고 utility set을 선택.
|
||||
solver_failure/rank_tie/conflicting_packets fallback은 PORTFOLIO_TRANSITION_UTILITY_V1과 동일.
|
||||
implementation: tools/build_transition_set_enumerator_v1.py
|
||||
|
||||
- id: P2-C
|
||||
title: IMMUTABLE_DECISION_LEDGER_V1
|
||||
output_file: spec/formulas/domains/governance.yaml
|
||||
detail: >
|
||||
decision_id, timestamp, input_hash_bundle, selected_transition_id, T1/T5/T20_return,
|
||||
MAE, MFE를 append-only로 기록. 기존 레코드 수정 금지(append-only 검증).
|
||||
implementation: tools/build_immutable_decision_ledger_v1.py
|
||||
|
||||
- id: P2-D
|
||||
title: EXECUTION_PLAN_COMPILER_V1
|
||||
output_file: spec/formulas/domains/execution.yaml
|
||||
detail: >
|
||||
EXECUTION_CAPACITY_LADDER_V1 산출물을 LIMIT_SPLIT 30/30/40 슬라이스로 컴파일하고,
|
||||
슬라이스 실행 전 cash_floor/capacity/spread 재검증, cancel_remaining_if 조건 평가.
|
||||
implementation: tools/build_execution_plan_compiler_v1.py
|
||||
|
||||
- id: P2-E
|
||||
title: schema/model + decision_flow/manifest 배선 + 전체 검증
|
||||
detail: 4개 신규 공식의 schemas/generated + src/quant_engine/models/generated 생성, spec/09_decision_flow.yaml 및 runtime/active_artifact_manifest.yaml 배선, 5개 validator 재실행.
|
||||
depends_on: [P2-A, P2-B, P2-C, P2-D]
|
||||
@@ -0,0 +1,60 @@
|
||||
schema_version: v8_9_p3_adoption_plan.v1
|
||||
meta:
|
||||
title: v8_9_p3_adoption_plan
|
||||
source_proposal: suggest/quant_investment_engine_v8_9_portfolio_optimizer_canonical_refactored.yaml
|
||||
predecessor:
|
||||
- governance/todo/v8_9_p0_adoption_plan.yaml
|
||||
- governance/todo/v8_9_p1_adoption_plan.yaml
|
||||
- governance/todo/v8_9_p2_adoption_plan.yaml
|
||||
decision_basis: >
|
||||
P0+P1+P2 완료 후 사용자가 "로드맵에 따라서 제안한 모든 작업을 순차적으로 진행"을 3회 재요청(2026-06-17).
|
||||
원본 제안서의 implementation_todo_v8_9 중 P1_optimizer_and_simulation, P3_sell_and_rebalance에서
|
||||
아직 다루지 않은 5개 항목을 P3로 채택. 이번이 로드맵의 마지막 라운드다 — 이후 implementation_todo_v8_9
|
||||
전체가 소진된다.
|
||||
scope:
|
||||
- P1_optimizer_and_simulation: state_vector constructor, walk-forward bootstrap, post-trade MRC/CVaR per set
|
||||
- P3_sell_and_rebalance: mandatory cadence gate, legacy-to-CMA transfer plan as planning input
|
||||
|
||||
tasks:
|
||||
- id: P3-A
|
||||
title: STATE_VECTOR_CONSTRUCTOR_V1
|
||||
output_file: spec/formulas/domains/portfolio.yaml
|
||||
detail: holdings, cash, tax_lots, sector_graph, factor_exposures, macro_regime_probabilities를 단일 state_vector로 통합.
|
||||
implementation: tools/build_state_vector_constructor_v1.py
|
||||
|
||||
- id: P3-B
|
||||
title: WALK_FORWARD_BOOTSTRAP_V1
|
||||
output_file: spec/formulas/domains/simulation.yaml
|
||||
detail: >
|
||||
historical_returns 표본에서 walk-forward(시간순 비복원 윈도우) 및 regime-matched(동일 레짐
|
||||
필터) 리샘플링으로 net_profit_distribution_after_tax_fee_slippage를 생성.
|
||||
FORECAST_SIMULATION_ENGINE_V1의 입력을 채우는 상류 엔진. 표본 부족 시 DATA_MISSING.
|
||||
implementation: tools/build_walk_forward_bootstrap_v1.py
|
||||
|
||||
- id: P3-C
|
||||
title: TRANSITION_SET_ENUMERATOR_V1 확장 — set 단위 MRC/CVaR/concentration/cash_floor
|
||||
output_file: spec/formulas/domains/portfolio.yaml
|
||||
detail: 기존 cash_floor/concentration delta 합산만 하던 것을 post_trade_MRC, post_trade_CVaR95까지 포함하도록 확장.
|
||||
implementation: tools/build_transition_set_enumerator_v1.py (확장)
|
||||
|
||||
- id: P3-D
|
||||
title: REBALANCE_CADENCE_GATE_V1
|
||||
output_file: spec/formulas/domains/portfolio.yaml
|
||||
detail: >
|
||||
주간(토/일) 및 매월 1/11/21일 점검을 의무 실행하되, transition_utility_after_tax_cost가
|
||||
양수이거나 hard_risk_block이 active일 때만 실제 리밸런싱을 허용. 그 외에는 점검 결과만
|
||||
emit하고 NO_TRADE.
|
||||
implementation: tools/build_rebalance_cadence_gate_v1.py
|
||||
|
||||
- id: P3-E
|
||||
title: WEEKLY_LEGACY_TRANSFER_PLAN_V1
|
||||
output_file: spec/formulas/domains/cash.yaml
|
||||
detail: >
|
||||
주간 레거시종목→CMA 이전 계획(weekly_legacy_to_cma_transfer_plan_krw)을 입금 확인 전까지
|
||||
deployable_cash_krw에 합산하지 않는다. 계획 단계와 확정 단계를 분리.
|
||||
implementation: tools/build_weekly_legacy_transfer_plan_v1.py
|
||||
|
||||
- id: P3-F
|
||||
title: schema/model + decision_flow/manifest 배선 + 전체 검증
|
||||
detail: 5개 신규/확장 공식의 schemas/generated + src/quant_engine/models/generated 생성, spec/09_decision_flow.yaml 및 runtime/active_artifact_manifest.yaml 배선, 5개 validator 재실행.
|
||||
depends_on: [P3-A, P3-B, P3-C, P3-D, P3-E]
|
||||
Reference in New Issue
Block a user