정성매도전략 공식 레지스트리 등록 + 로드맵 비판적 리뷰 종합 갱신

- spec/13b_harness_formulas.yaml: SHORT_INTEREST_RISK_GAUGE_V1,
  QUALITATIVE_SELL_STRATEGY_V1, MARKET_REGIME_CLASSIFIER_V1,
  MICROSTRUCTURE_PRESSURE_FROM_ORDERBOOK_V1 등 정성매도전략 공식을
  하네스 레지스트리에 등록(이전 커밋의 구현체와 1:1 대응)
- docs/ROADMAP_WBS.md: 2026-06-21 비판적 리뷰(0c절) + WBS-7.1~7.11
  보완·고도화 전체를 반영 — 캘리브레이션 0/191 CALIBRATED 실태, T+5
  지표 불일치 해소, GAS 마이그레이션 재검토, deprecated 정리, 통합테스트,
  Tabler 그리드, spec-코드 동기화 게이트, KRX 자동화 실측까지 포함한
  완성도 매트릭스·KPI·스프린트 체크리스트 갱신
This commit is contained in:
2026-06-21 20:12:09 +09:00
parent 4c00229442
commit 0cec44a0e1
2 changed files with 541 additions and 1 deletions
+71
View File
@@ -3149,3 +3149,74 @@ formula_registry:
expected_outputs: [coverage_ratio, orphan_code_formula_count, unimplemented_rules]
llm_allowed: cite_only
version: "2026-06-03_ORPHAN_RECONCILE"
# == [2026-06-21_PHASE8] 비기계적 매도전략 — 공매도 합성 + confluence 판단 =========
SHORT_INTEREST_RISK_GAUGE_V1:
purpose: >
공매도잔고율 추세 + 공매도거래비중 + 상대수익률(섹터·지수 대비) + 거래량 이상 +
실적전망 5요소를 가중합성해 -1(매수지지)~+1(매도압력) 점수로 계량화한다.
잔고율 단독을 매수/매도 트리거로 쓰지 않으며, 잔고율이 1% 미만(현대로템형)인
저잔고율 종목은 거래비중·상대수익률 가중치를 자동 상향한다.
output_contract:
short_interest_composite_json:
fields: "[short_interest_pressure, status, low_balance_regime, label, components, weights_used, missing_inputs]"
python_tool: src/quant_engine/qualitative_sell_strategy_v1.py:compute_short_interest_composite
version: "2026-06-21_PHASE8"
QUALITATIVE_SELL_STRATEGY_V1:
purpose: >
매크로(macro_pressure)·실적/펀더멘털 추세(fundamental_trajectory)·공매도수급
(short_interest_pressure)·호가 10단계 미시구조(microstructure_pressure)·
대내외 변수/대형 IPO·섹터 로테이션(liquidity_rotation_risk) 5개 독립 팩터군의
confluence(최소 3/5 동일방향 합의)로만 매도/보유/추가 확신도를 산출한다.
단일 팩터 임계값 돌파만으로는 행동을 트리거하지 않는다(기계적 매도 금지).
현금부족 사유는 입력에서 의도적으로 배제되며(cash_shortfall_excluded=true),
주식가치 보존이 유일한 목적함수다. 매도/추가 판단 시 실제 실적발표일·고영향
매크로 이벤트일 기준으로 검토구간(review_window)을 역산한다(임의 고정일 금지).
market_regime(PERFORMANCE_MARKET/TECHNICAL_MARKET)이 ctx.rate_trend로 주어지면
금리국면에 따라 팩터 가중치를 조정한다(MARKET_REGIME_CLASSIFIER_V1).
output_contract:
qualitative_sell_strategy_json:
fields: "[action, conviction, market_regime, composite_score, sell_agreeing_factors, hold_add_agreeing_factors, missing_factors, review_window, rationale, cash_shortfall_excluded, mechanical_sell_prohibited]"
python_tool: src/quant_engine/qualitative_sell_strategy_v1.py:compute_qualitative_sell_strategy
version: "2026-06-21_PHASE8"
MARKET_REGIME_CLASSIFIER_V1:
purpose: >
금리 추세(rate_trend: RISING/FLAT/FALLING)를 실적장세(PERFORMANCE_MARKET)/
기술장세(TECHNICAL_MARKET)로 분류한다. 금리 상승기엔 유동성보다 실적·수출입
펀더멘털이 가격을 주도(실적장세) — fundamental_trajectory 가중 상향.
금리 보합·하락기엔 유동성이 풍부해 수급·미시구조가 가격을 주도(기술장세) —
microstructure_pressure/short_interest_pressure 가중 상향.
QUALITATIVE_SELL_STRATEGY_V1·SATELLITE_CANDIDATE_SCORE_V1의 가중치 산출에 사용.
output_contract:
market_regime_json:
fields: "[market_regime]"
python_tool: src/quant_engine/qualitative_sell_strategy_v1.py:classify_market_regime
version: "2026-06-21_PHASE8"
MICROSTRUCTURE_PRESSURE_FROM_ORDERBOOK_V1:
purpose: >
KIS Open API 호가10단계(inquire-asking-price-exp-ccn, FHKST01010200) output1의
total_askp_rsqn/total_bidp_rsqn으로 -1(매수우위)~+1(매도우위) 미시구조 압력을
계량화. QUALITATIVE_SELL_STRATEGY_V1의 microstructure_pressure 입력으로 쓰이며,
전략 방향 결정이 아니라 confluence 성립 후 집행 타이밍 보조로만 사용한다.
[CRITICAL] 이 공식이 사용하는 KIS API는 조회(read-only)만 수행 —
governance/rules/06_no_direct_api_trading.yaml, 07_no_kis_account_balance_query.yaml.
output_contract:
microstructure_pressure_json:
fields: "[microstructure_pressure, status, total_askp_rsqn, total_bidp_rsqn]"
python_tool: src/quant_engine/qualitative_sell_strategy_v1.py:compute_microstructure_pressure_from_orderbook
version: "2026-06-21_PHASE8"
SATELLITE_CANDIDATE_SCORE_V1:
purpose: >
미보유 위성 유니버스 종목을 섹터 수출입 추세(sector_export_trend, 관세청/산업
통상부 무역통계 기반)·펀더멘털 추세·상대수익률로 평가해 BUY_CANDIDATE/WATCH/
NEUTRAL_NO_EDGE/AVOID를 산출한다. market_regime에 따라 수출입 비중을 조정
(실적장세에서 sector_export_trend 가중 상향).
output_contract:
satellite_candidate_json:
fields: "[satellite_action, attractiveness_score, market_regime, components, weights_used]"
python_tool: src/quant_engine/qualitative_sell_strategy_v1.py:compute_satellite_candidate_score
version: "2026-06-21_PHASE8"