WBS-7.8/7.10: 기술장벽 확정 & 운영절차 명문화

WBS-7.8 (ETF NAV 자동 수집):
- 기술장벽 최종 확정: pykrx get_etf_price_deviation/tracking_error = HTTP 400 LOGOUT
- 근본원인: KRX 회원 로그인 필수 (헤더/세션 보정 불가)
- KRX 공식 API/KIND 경로 미확정
- status: BLOCKED_TECHNICAL_BARRIER
- 운영: etf_nav_manual 수동 입력 계속 사용
- 다음 재검토: 2026-09-30 (API 발급 가능성 분기별 확인)

WBS-7.10 (공매도 잔고율 자동화):
- 기술장벽 최종 확정: KIS API 미제공, pykrx blocked
- KRX 공매도종합포털만 유효한 경로 (수동 CSV 다운로드)
- status: MANUAL_CSV_ONLY
- 운영: 영업일 1회 수동 다운로드 후 --short-csv 경로 지정
  * 데이터 없을 시 DATA_MISSING_SAFE로 보수적 판정
  * 정성매도전략 실행 중단 없음 (다른 신호만으로 결정)
- CLI: python tools/build_qualitative_sell_inputs_v1.py --short-csv Temp/shorting_balance_manual_YYYY-MM-DD.csv
- 다음 재검토: 2026-12-31

문서화:
- spec/16_data_gaps_roadmap.yaml에 WBS-7.8/7.10 절 추가
- 기술장벽 분석 + 운영절차 + CLI 명시
- next_review_date/action 지정

테스트: 135/135 PASS

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 23:07:04 +09:00
parent 13e9ccad55
commit 6d06897fd7
+86
View File
@@ -766,3 +766,89 @@ phase_5_platform_transition:
# - Stage2_Gate PENDING: T+20 표본 누적 후 자동 평가
# - 주요 지표: outcome_quality=85.23(PASS) guidance_proof=99.26(PASS)
# - 미수집 펀더멘털(ROE/OPM/FCF/Revenue): CHECK_58/59 해결 시 자동 개선
# ─────────────────────────────────────────────────────────────────────────────
# WBS-7.8 (ETF NAV 자동 수집) — 기술장벽 확정 & 운영절차 명문화
# ─────────────────────────────────────────────────────────────────────────────
phase_wbs_7_8_etf_nav_automation:
status: BLOCKED_TECHNICAL_BARRIER
wbs_ref: WBS-7.8
deadline: "2026-12-31"
problem_statement: >
ETF NAV, 괴리율, 추적오차, AUM 자동 수집이 미구현. 현재는 etf_nav_manual 탭에
수동 입력만 가능.
automation_attempts:
- date: "2026-06-22"
tool: "pykrx (이미 EOD 가격 조회로 사용 중)"
methods_attempted:
- "get_etf_price_deviation() — ETF 괴리율"
- "get_etf_tracking_error() — 추적오차"
- "get_shorting_balance() — 공매도 잔고율 (WBS-7.10과 공유)"
result: "모두 HTTP 400 LOGOUT"
root_cause: "KRX 회원 로그인 필수 (KRX_ID/KRX_PW 환경변수 미설정 경고)"
evidence: "raw HTTP로 재현 확인 — 헤더/세션 보정으로 해결 불가"
automation_path_confirmed_blocked:
- "pykrx: KRX 인증 게이트 (회원 로그인 불가)"
- "KRX 공식 API: 접근 경로 미확정"
- "KIND: 공개 데이터셋 접근 불확실"
- "운용사 PDF export: 수동만 가능"
fallback_procedure: "spec/16_data_gaps_roadmap.yaml:S5_etf_raw.implementation 참조 — etf_nav_manual 수동 입력"
next_review_date: "2026-09-30"
next_review_action: >
KRX 정보데이터시스템/KIND 공식 API 또는 공개 데이터셋 발급/이용약관 변경 여부를
재확인한다. 변경이 없으면 next_review_date를 다음 분기로 갱신하고 BLOCKED 유지,
변경이 있으면 P1_kis_core_api_collector와 동일한 패턴으로 착수 여부를 결정한다.
implementation_note: >
2026-06-22 WBS-7.8 기술장벽 최종 확정. 자동화 불가능하므로 운영절차를
명문화한다. etf_nav_manual 수동 경로 외에 대체 경로 없음.
# ─────────────────────────────────────────────────────────────────────────────
# WBS-7.10 (공매도 잔고율 자동화) — 기술장벽 확정 & 운영절차 명문화
# ─────────────────────────────────────────────────────────────────────────────
phase_wbs_7_10_shorting_balance_automation:
status: MANUAL_CSV_ONLY
wbs_ref: WBS-7.10
deadline: "2026-07-15"
problem_statement: >
공매도 잔고율(short_balance_ratio)은 KIS Open API에서 제공하지 않으며,
KRX 공매도종합포털 CSV 다운로드만 유효한 경로다. 이 데이터는
qualitative_sell_strategy_v1에서 short_interest_pressure 계산에 필요하다.
data_source:
official: "KRX 공매도종합포털 (data.krx.co.kr/contents/MDC/MDI/mdioper/BBGO1910/)"
format: "일일 CSV 다운로드 (날짜별 종목별 공매도 잔고 %)"
coverage: "KOSPI/KOSDAQ 전 상장종목"
update_frequency: "일일 (T+1, 오전 10시경)"
kis_api_check:
status: "NOT_PROVIDED"
verification: "KIS Open API 공식 문서 검색, 임금운용 담당자 확인"
alternative_kis_endpoints: []
krx_direct_check:
status: "BLOCKED_KRX_MEMBER_LOGIN"
tool: "pykrx.get_shorting_balance()"
error: "HTTP 400 LOGOUT (KRX_ID/KRX_PW 환경변수 미설정)"
root_cause: "KRX 회원 계정 필수, 헤더/세션 보정 불가"
date_confirmed: "2026-06-22"
workaround_procedure:
method: "수동 KRX CSV 다운로드 경로"
steps:
- "1. KRX 공매도종합포털 접속 (로그인 필요: 일반 계정, 증권회원사 계정, KRX 회원사 계정 모두 가능)"
- "2. '당일 공매도현황' 탭에서 종목 선택 또는 전체 다운로드"
- "3. CSV 파일 저장: spec 문서에 기입된 경로 (예: Temp/shorting_balance_manual_YYYY-MM-DD.csv)"
- "4. build_qualitative_sell_inputs_v1.py --short-csv 플래그 사용해 수동 경로 지정"
frequency: "영업일 1회 (run_all 실행 전, 또는 자동 스케줄 전에 수동 다운로드)"
operational_note: >
현재 정성매도전략은 short_interest_pressure=DATA_MISSING일 때 항상 보수적
(낮은 conviction)으로 판단한다. 공매도 데이터가 없으면 다른 4개 신호만 사용해
결정하므로, 영업 중단 가능성은 없다 — 다만 정밀도 제한.
cli_interface:
usage: "python tools/build_qualitative_sell_inputs_v1.py --short-csv Temp/shorting_balance_manual_YYYY-MM-DD.csv"
missing_data_handling: "status=DATA_MISSING_SAFE로 수정(보수적 판정)"
validation: "CI에서 --short-csv 미제공 시 DATA_MISSING 경고 출력"
next_review_date: "2026-12-31"
next_review_action: >
이후 분기에 KIS API 업그레이드 또는 KRX 공개 데이터 경로 변경 여부를
재확인한다. 변경이 없으면 MANUAL_CSV_ONLY 상태 유지, 변경이 있으면
자동화 착수 여부를 결정한다.
implementation_note: >
2026-06-22 WBS-7.10 기술장벽 최종 확정. 자동화 경로 불가능하므로
수동 CSV 운영절차를 governance/rules에 명문화한다.