발굴 시스템 피처 명세 (후보 — 백테스트 검증 대기)¶
작성: 2026-05-22 (S298 연장) | 상위 Topic: docs/topics/topic_system_redesign.md
선행 리서치: docs/research/20260522_chart_flow_structuring_research.md(R3) / ..._quant_discovery_funnel_research.md(R4) / ..._fundamental_event_signal_research.md(R5)
0. 이 문서의 지위 — 확정 스펙 아님¶
이 문서의 모든 피처는 후보(candidate)다. 외부 리서치에서 도출된 방법론을 우리 도구·데이터에 매핑한 것일 뿐, 그대로 적용되지 않는다.
모든 피처는 다음 경로를 거쳐야 시스템에 입장한다:
후보 피처 → 백테스트(한국 코퍼스, look-ahead 차단) → 한국시장·우리시스템 커스터마이징 → 채택/기각
이는 리서치가 이미 못 박은 전제다: - R3 S3: base rate는 외부 신뢰 불가 → 한국 코퍼스 자체 측정. - R3 S7: 모든 임계값은 미국·BTC 캘리브레이션값 → 한국 시총·거래대금 tier별 재보정 필수. - R4 CF5: DSR + walk-forward(WFE) + 다중검정 FDR 보정 + base rate 대조. 우위 없으면 시그널 아님. - R3 S6: 모든 피처는 시점 t 이전 데이터로만 산출. 사후 라벨은 학습 라벨 전용.
Status 범례: ⬜ 후보(미검증) / 🔬 백테스트 중 / ✅ 채택 / ❌ 기각
현재 전 항목 ⬜ 후보.
1. 피처의 두 역할¶
| 역할 | 정의 | 데이터 |
|---|---|---|
| 랭킹 피처 | 전 종목을 횡단면으로 줄세워 후보를 압축 (발굴) | 키움 가격·수급, DART 재무·이벤트, 테마 |
| 조건변수 | base-rate 확률표를 분기 (게이트, 발굴 아님) | FRED 매크로, 글로벌자산, 파생 |
퀀트 = 횡단면 랭킹 + 베이스레이트. 매크로·글로벌자산은 종목을 고르지 않고 조건만 분기한다.
2. 랭킹 피처 (종목 발굴)¶
2-1. 키움 REST (ka10001) — 한국 일봉 OHLCV¶
가격 | 피처 | 산식 | 레퍼런스 | Status | |---|---|---|---| | range_pos_52w | 52주 range 내 위치 0~100 | R3 §3-5 Bulkowski | ⬜ | | price_zscore_20d | (가격−MA20)/σ | R3 Layer A | ⬜ | | drawdown_60d | 60일 고점 대비 낙폭 | R3 Layer A | ⬜ | | RS Rating | 0.4·ROC(63)+0.2·ROC(126)+0.2·ROC(189)+0.2·ROC(252) → 1~99 백분위 | R4 §3-2 IBD/skyte | ⬜ | | 모멘텀 12-1/6-1/3-1 | 최근 1개월 제외 누적수익률 | R4 Jegadeesh-Titman | ⬜ | | 신고가 근접 | 현재가/52주최고가, 0.85+ 트리거 | R4 George-Hwang | ⬜ |
거래량 + VSA (OHLCV만으로 산출) | 피처 | 산식 | 레퍼런스 | Status | |---|---|---|---| | RVOL_20d / vol_zscore | 거래량/20일평균, log-volume z | R4 RVOL StockCharts | ⬜ | | CMF_20d / OBV_slope_z | Chaikin Money Flow −1~+1 | R3 CMF StockCharts | ⬜ | | VSA 3원시지표 | spread=H−L, close_pos=(C−L)/spread, vol_ratio=vol/SMA(vol,7) | R3 §3-1 PyQuantLab VSA | ⬜ | | err_zscore | |ΔC|/(vol_ratio×ATR_norm), 음극단=absorption | R3 §3-1 | ⬜ | | VSA 8신호 + upthrust/spring | 거래량×스프레드×추세×봉방향 조합 | R3 Tom Williams | ⬜ |
오더플로 근사 (틱 부재 — 일/분봉, R3 CF4) | 피처 | 산식 | 레퍼런스 | Status | |---|---|---|---| | approx_delta_bvc | 표준화수익률 t분포 CDF → 매수비율 (정확도 ~80%) | R3 §3-3 BVC Shohfi | ⬜ | | close_loc_value / 꼬리비율 | (C−L)/(H−L), 아랫꼬리=받침흡수 | R3 §3-3 | ⬜ | | CVD_zscore / CVD-price divergence | 누적델타 vs 가격 발산 ±1 | R3 CVD | ⬜ |
Auction/Profile + Wyckoff | 피처 | 산식 | 레퍼런스 | Status | |---|---|---|---| | POC / VAH·VAL / VA_width_atr | TPO 70% 영역 | R3 §3-2 mypivots | ⬜ | | HVN/LVN / rotation_factor | 거래량 봉우리·골짜기, 봉별 고저갱신 ±1 합산 | R3 QuantVPS | ⬜ | | Wyckoff phase + events | ACC/MARKUP/DIST/MARKDOWN, SC·Spring·SOS… | R3 §3-4 StockCharts | ⬜ | | A/D Line / climax 거래량 배수 | MFM=((C−L)−(H−C))/(H−L), ADL+=MFM×Vol | R3 §3-4 | ⬜ |
2-2. 키움/KRX — 외국인·기관 일별 순매수 (수급)¶
| 피처 | 산식 | 레퍼런스 | Status |
|---|---|---|---|
| foreign_flow_z / inst_flow_z | 외인·기관 순매수(거래대금 대비) z-score | R3 Layer A | ⬜ |
| flow_relative_pct | 수급 절대량의 거래대금 대비 백분위 | R3 Layer A | ⬜ |
| 누적·매집연속일수 | 5/20일 누적 순매수 z, 연속 매수일 | R3 SEN-1 누적프레임 | ⬜ |
2-3. DART MCP (get_financial_statement) — 재무¶
| 피처 | 산식 | 레퍼런스 | Status |
|---|---|---|---|
| EarnAccel (★핵심) | EarnGrowth_t − EarnGrowth_{t-1} (성장률 2차미분) | R5 §2-2 He-Narayanamoorthy JAE 2020 | ⬜ |
| EarnGrowth | (EPS_t−EPS_{t-4})/Price_{t-1} | 동일 | ⬜ |
| SUE | (EPS_t−EPS_{t-4})/σ | R5 QuantConnect SUE | ⬜ |
| revenue_driven 플래그 | 매출 서프라이즈 동반 여부 → 가속의 질 | R5 Jegadeesh-Livnat | ⬜ |
| loss_narrowing / quarters_to_breakeven | (적자_{t-1}−적자_t)/|적자_{t-1}| 외삽 | R5 §2-3 | ⬜ |
| op_leverage / gm_delta_bp_2q | EPS성장%/매출성장%, 마진 2분기 확대 | R5 Global X | ⬜ |
2-4. DART MCP (get_disclosure_list) — 이벤트¶
| 피처 | 산식 | 레퍼런스 | Status |
|---|---|---|---|
| 이벤트 CAR | AR=R−(α+β·Rm), CAR=ΣAR, 유형별 과거분포=priors | R5 §2-4 MacKinlay | ⬜ |
| 코스피200 정기변경 | (컷오프 마진)×(예상 패시브매수/20일 거래대금) | R5 Robeco | ⬜ |
| 자사주 소각 | 소각여부×저PBR×첫발표 가중 | R5 §2-4 | ⬜ |
| 내부자 클러스터 | 거래금액/연봉 × 클러스터수 × 직급가중 | R5 Zhao arXiv:2602.06198 | ⬜ |
2-5. 테마 (키움 거래대금 + 종목 상관)¶
| 피처 | 산식 | 레퍼런스 | Status |
|---|---|---|---|
| RRG 사분면 | JdK RS-Ratio × RS-Momentum, KOSPI 대비 100교차 | R4 §3-3 StockCharts RRG | ⬜ |
| 상관 클러스터 | ρ→거리 d=√(2(1−ρ))→MST+계층클러스터링 | R4 Mantegna MST | ⬜ |
| 거래대금 점유율 + breadth_z | 신테마 부상 알림 | R4 §2 | ⬜ |
| Isolation Forest anomaly | 다차원 피처 outlier 탐지 | R4 Springer 2025 | ⬜ |
3. 조건변수 (게이트 — 발굴 아님)¶
3-1. FRED (fredapi — 작동 중)¶
| 피처 | 산식 | 레퍼런스 | Status |
|---|---|---|---|
| 순유동성 | WALCL−TGA−RRP (+ RRP 완충재 잔량 경고) | 트레이더 커뮤니티 프록시(학술 아님) | ⬜ |
| HY 스프레드 / 2-10 커브 | 보유 중 (BAMLH0A0HYM2 등) | — | ✅ 수집 중 |
3-2. 글로벌자산(yfinance) + 파생(fetch_derivatives_sentiment)¶
| 피처 | 산식 | 레퍼런스 | Status |
|---|---|---|---|
| risk-on/off 스코어 | 구리/금·VIX·HY·DXY 합성 | 보유(risk_on_off) |
✅ 산출 중 |
| VKOSPI percentile / 베이시스_z / 외인선물 누적 | 파생 포지셔닝 | 보유(derived) |
✅ 산출 중 |
3-3. 뉴스(WebSearch) — 랭킹 가점¶
| 피처 | 산식 | 레퍼런스 | Status |
|---|---|---|---|
| 재료 등급 S~D / 뉴스빈도_z | NC-3 등급체계 | 보유(news 시스템) | ✅ 운용 중 |
4. 데이터 갭 (수집 경로 확인 필요)¶
| 항목 | 상태 | 조치 |
|---|---|---|
| FnGuide 컨센서스 (ERR·Diffusion·Dispersion·Revision Momentum) | 프로그래밍 접근 미확인 | 접근 가능성 조사. 불가 시 중소형주는 시계열 기대모형(직전 4분기)으로 대체 (R5 CF4) |
| 외국인/기관 종목별 일별 순매수 | 수집 경로(키움 REST vs pykrx) 미확정 | 경로 확정 |
| Darvas Box 돌파 | R4에 있으나 리테일 기법 | 채택 보류 — 백테스트 우선순위 후순위 |
5. 백테스트 커스터마이징 대상 (그대로 못 쓰는 것)¶
| 대상 | 사유 | 재보정 방법 |
|---|---|---|
| VSA 임계값 (vol 2.0/1.2/0.5, spread 1.2/0.83, close 0.7/0.3) | PyQuantLab BTC 캘리브레이션 | 한국 시총·거래대금 tier별 재산출 (R3 S7) |
| Wyckoff climax 거래량 배수 (×2.0/×1.5), 최소 range (8%/15%) | TradingView 범용값 | 한국 종목군별 재보정 |
| RS Rating·모멘텀 윈도우 (63/126/189/252, 12-1) | 미국 일봉 기준 | 한국 테마 사이클 3~5세션 → 윈도우 단축 검토 (R4 CF6) |
| Bulkowski 패턴 base rate (failure rate·avg rise) | 미국 일봉 통계 | 방법론만 차용, 수치는 한국 코퍼스 자체 측정 |
| 이벤트 CAR priors (자사주·내부자·리밸런싱) | 미국·해외 분포 | 한국 DART 이벤트 코퍼스로 유형별 CAR 분포 재측정 |
6. 검증 절차 (R4 CF5 — 의무)¶
각 후보 피처는 다음을 통과해야 ✅ 채택: 1. base rate 대조 — 피처 분위별 D+N 수익률 vs 기저율. 우위 없으면 ❌ 기각. 2. walk-forward + WFE — out-of-sample/in-sample 수익 비율. WFE < 0.5 = 커브피팅 → 기각. 3. Deflated Sharpe Ratio — 개발 중 돌린 백테스트 횟수 전부 기록(선택편향 보정). 4. 레짐 분리 — 조건변수(레짐)별 base rate 분리 산출 (R3 CF5). 5. look-ahead 차단 — 롤링 정규화 + 빈티지 데이터 + 시점 t 경계.
7. 다음 단계¶
- 데이터 갭 3건 수집 경로 확정 (§4).
- base-rate 엔진 설계 — 한국 일봉·수급 코퍼스로 D+N 측정 (look-ahead 차단).
- 첫 백테스트: "큰 상승 다음날" — 본 명세의 피처로 사례 구조화 → base rate 측정 → 무조건부 vs 레짐 조건부 우위 검증. 4단계 파이프(피처화→정규화→조건분기→검증) 첫 가동.
- 통과 피처부터 Status ✅로 갱신하며 누적.