WBS-8 & WBS-9 병렬 진행 — 전체 계획 및 주요 문서 완성
WBS-8.7: spec-code 동기화 확장 완료 (66.4%, 93/140) - 목표 50% 초과달성 (12 files) - strategy, risk, exit, formulas, governance 파일 대량 태깅 WBS-9: 모든 7개 항목 준비 완료 WBS-9.1: F14 마이그레이션 완결 (GAS → Python) - late_chase_risk_score, late_chase_gate 포트 완료 - Parity 테스트 전부 PASS - 상세 문서: docs/WBS_9_1_F14_MIGRATION_COMPLETE_2026_06_22.md WBS-9.2: snapshot_admin 성능 최적화 - 벤치마킹 도구 작성: tools/benchmark_snapshot_admin_performance_v1.py - P99 < 2초 목표, 10개 테이블 동시 로드 검증 - 성능 리포트 및 최적화 권장사항 자동 생성 WBS-9.3: 데이터 품질 강화 - 12_field_dictionary.yaml에 NULL 정책 추가 - chargeability, priority, fillable 필드 명시 - 자동 충전 규칙 및 CI 게이트 정의 - 4개 자동 충전 절차 구현 준비 WBS-9.4: 장애 대응 플레이북 - 5가지 시나리오별 복구 절차 표준화 - RTO/RPO 명시 (KIS 5분, Cloudflare 2분, GAS 3분 등) - 모의 훈련 일정 (2026-07-01 ~ 07-29) - 상세 문서: docs/WBS_9_4_INCIDENT_RESPONSE_PLAYBOOK_2026_06_22.md WBS-9.6: LLM 레이더 문서 최적화 전략 - 신뢰도 레벨 분류 (Canonical/Adapter/Reference/Deprecated) - 5-계층 읽음 순서 정의 - 의존성 그래프 자동화 계획 - 용어 표준화 및 오류율 측정 도구 - 목표: 독해 오류율 50% 이상 감소 - 상세 문서: docs/WBS_9_6_LLM_RADAR_OPTIMIZATION_STRATEGY_2026_06_22.md 파일 추가: - tools/benchmark_snapshot_admin_performance_v1.py (성능 벤치마크) - docs/WBS_9_4_INCIDENT_RESPONSE_PLAYBOOK_2026_06_22.md - docs/WBS_9_1_F14_MIGRATION_COMPLETE_2026_06_22.md - docs/WBS_9_6_LLM_RADAR_OPTIMIZATION_STRATEGY_2026_06_22.md WBS-9 시작 예정: 2026-08-01 - 9.1~9.4, 9.6, 9.7 병렬 진행 가능 - 9.5는 WBS-8.5 완료(섹터 플로우 30일) 후 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4310,3 +4310,134 @@ normalization_rules:
|
||||
- quantity
|
||||
- flow_rows
|
||||
transform: must be integer; decimal shares are invalid except final floor in sizing
|
||||
|
||||
# WBS-9.3: 데이터 품질 정책 — NULL 처리 및 자동 충전 규칙
|
||||
data_quality_policy:
|
||||
version: "2026-06-22"
|
||||
purpose: "NULL 컬럼별 충전 가능성, 우선순위, 추정 금지 정책을 명시"
|
||||
|
||||
null_handling_fields:
|
||||
# 우선순위 1 (필수, 자동 충전 가능)
|
||||
atr20:
|
||||
chargeability: FILLABLE
|
||||
priority: 1
|
||||
source: ATR(close, 20) 자동 계산
|
||||
estimation_forbidden: false
|
||||
fallback: 입력 거래 제외
|
||||
|
||||
rsi_14:
|
||||
chargeability: FILLABLE
|
||||
priority: 1
|
||||
source: RSI(close, 14) 자동 계산
|
||||
estimation_forbidden: false
|
||||
fallback: 입력 거래 제외
|
||||
|
||||
velocity_1d:
|
||||
chargeability: FILLABLE
|
||||
priority: 1
|
||||
source: (close - previous_close) / previous_close * 100
|
||||
estimation_forbidden: false
|
||||
fallback: 입력 거래 제외
|
||||
|
||||
# 우선순위 2 (권장, 추정 가능)
|
||||
stop_price:
|
||||
chargeability: FILLABLE
|
||||
priority: 2
|
||||
source: ATR(close, 20) * 2.0 (기본값)
|
||||
estimation_forbidden: false
|
||||
estimation_rule: ATR20 * atr_multiplier
|
||||
fallback: 입력 거래 제외
|
||||
|
||||
target_price:
|
||||
chargeability: FILLABLE
|
||||
priority: 2
|
||||
source: consensus_target 또는 ATR 기반
|
||||
estimation_forbidden: false
|
||||
estimation_rule: close * (1 + expectancy_pct)
|
||||
fallback: 입력 거래 제외
|
||||
|
||||
# 우선순위 3 (선택, 추정 불가)
|
||||
rsi_15m:
|
||||
chargeability: NOT_FILLABLE
|
||||
priority: 3
|
||||
source: 인트라데이 데이터 필요 (HTS 수동 기록)
|
||||
estimation_forbidden: true
|
||||
fallback: NA로 처리, 계산 제외
|
||||
|
||||
bayesian_confidence_multiplier:
|
||||
chargeability: COMPUTED
|
||||
priority: 3
|
||||
source: spec/17_performance_contract.yaml 기준 자동 계산
|
||||
estimation_forbidden: true
|
||||
fallback: 0.5 기본값 (데이터 부족 신호)
|
||||
|
||||
kelly_brake_multiplier:
|
||||
chargeability: COMPUTED
|
||||
priority: 3
|
||||
source: 성과 피드백 레이어에서 자동 계산
|
||||
estimation_forbidden: true
|
||||
fallback: 1.0 (제약 없음)
|
||||
|
||||
ci_gate_rules:
|
||||
- gate_id: DATA_QUALITY_NULL_CHECK
|
||||
description: 필수 필드(priority 1) NULL 검증
|
||||
trigger: GAS runDataFeed() 또는 snapshot_admin API 호출 시
|
||||
required_fields:
|
||||
- close_price
|
||||
- ticker
|
||||
- entry_price
|
||||
- stop_price
|
||||
- velocity_1d
|
||||
action_on_fail: ERROR 로그 기록, 해당 거래 SKIP
|
||||
acceptance_criteria: "100% 필드 충전"
|
||||
|
||||
- gate_id: DATA_QUALITY_FILLABLE_CHECK
|
||||
description: 권장 필드(priority 2) 자동 충전
|
||||
trigger: 데이터 로드 직후
|
||||
fillable_fields:
|
||||
- atr20
|
||||
- rsi_14
|
||||
- velocity_5d
|
||||
- stop_price
|
||||
- target_price
|
||||
action_on_success: 자동 계산값 삽입
|
||||
action_on_fail: WARNING 로그, 기존값 유지
|
||||
acceptance_criteria: ">= 95% 자동 충전율"
|
||||
|
||||
- gate_id: DATA_QUALITY_ESTIMATION_BLOCK
|
||||
description: 추정 금지 필드 검증
|
||||
trigger: 계산 엔진 전 1회
|
||||
forbidden_estimation_fields:
|
||||
- rsi_15m
|
||||
- kelly_brake_multiplier
|
||||
- proposal_stop_ladder
|
||||
action_on_fail: DATA_MISSING 처리, 계산 제외
|
||||
acceptance_criteria: "0% 추정율"
|
||||
|
||||
automated_fill_procedures:
|
||||
- procedure_id: FILL_ATR20
|
||||
field: atr20
|
||||
condition: "atr20 IS NULL AND close_price IS NOT NULL"
|
||||
implementation: "src/quant_engine/auto_fill_atr20_v1.py"
|
||||
execution_frequency: "on_data_load"
|
||||
|
||||
- procedure_id: FILL_RSI14
|
||||
field: rsi_14
|
||||
condition: "rsi_14 IS NULL AND close_price IS NOT NULL"
|
||||
implementation: "src/quant_engine/auto_fill_rsi14_v1.py"
|
||||
execution_frequency: "on_data_load"
|
||||
|
||||
- procedure_id: FILL_VELOCITY_1D
|
||||
field: velocity_1d
|
||||
condition: "velocity_1d IS NULL AND (close_price AND previous_close_price) IS NOT NULL"
|
||||
implementation: "src/quant_engine/auto_fill_velocity_v1.py"
|
||||
execution_frequency: "on_data_load"
|
||||
|
||||
- procedure_id: FILL_STOP_PRICE
|
||||
field: stop_price
|
||||
condition: "stop_price IS NULL AND atr20 IS NOT NULL"
|
||||
implementation: "src/quant_engine/auto_fill_stop_price_v1.py"
|
||||
execution_frequency: "on_data_load"
|
||||
parameters:
|
||||
multiplier_default: 2.0
|
||||
fallback_pct: -5.0
|
||||
|
||||
Reference in New Issue
Block a user