콘텐츠로 이동

발굴 시스템 피처 ↔ 데이터 매핑표 (PM 프레임)

작성: 2026-05-24 (Sun) | 상위 Topic: L (시스템 재설계) 선행: R6 매크로 산식 + R7 실무 운영자 방법론


0. PM 프레임 — 매크로의 본질

"매크로의 본질 = ① 유동성이 시장에 들어오는가 + ② 시장참여자 심리가 개선될 가능성이 있는가."

본 매핑표의 모든 매크로 피처는 두 축 중 하나에 분류된다. 개별 피처가 verdict를 단언하지 않고, 두 축의 composite z-score → 4분면 라벨 → funnel gate / 섹터 tilt / conditional base-rate에 작동한다.

운영 원칙 (R7 운영자 합의): - 개선되는가 = Δ-based (Druckenmiller "change of pace"), 절대 level 아님 - 극단 vs 중간 분기 (Bridgewater 격언): ±2σ 밖 = contrarian fade / ±1σ 안 = momentum follow - 다중 컨펌 의무: 최소 3개 축 동시 동일 방향 + tape divergence - edge 아닌 regime gate: candidate pool / 섹터 tilt / conditional base-rate에만 작동

Status 범례: ✅ 가용(즉시 산출) / 🔧 보강 필요(수집기 신설/추가) / ❌ 불가


1. 유동성 축 (L) — "자금이 위험자산으로 흐를 환경인가?"

1-1. 글로벌 유동성 (Global Liquidity)

피처 산식 데이터 가용성 변화 측정
Fed Net Liquidity WALCL − TGA − RRP FRED 🔧 신규 수집 (WALCL, WTREGEN, RRPONTSYD 3개) Δ60d (R7 핵심)
WALCL Fed 자산 총액 FRED 🔧 신규 Δ20d
TGA 잔액 재무부 일반계정 FRED WTREGEN 🔧 신규 Δ20d
ON RRP 역레포 잔액 FRED RRPONTSYD 🔧 신규 Δ20d, "near-zero" 임계
BIS Global Liquidity Index 90+국가 USD/외통화 credit data.bis.org/topics/GLI 🔧 분기 수집 YoY
EPFR fund flows global equity/bond flow EPFR (paywall) ❌ paywall, proxy로 ETF flow 대체 weekly

1-2. 금리 / Curve

피처 산식 데이터 가용성
US10Y level + Δ FRED DGS10 ✅ 수집 중 Δ20d/60d
US2Y level + Δ FRED DGS2 ✅ 수집 중 Δ20d/60d
2s10s slope DGS10 - DGS2 ✅ 산출 가능 Δ20d slope_chg
3m10y slope DGS10 - DGS3MO 🔧 DGS3MO 신규 수집 Estrella probit 정식 산식
Estrella probit Φ(-0.5333 - 0.6629 × slope_3m10y) derived 🔧 (DGS3MO 필요)
Real Yield 10Y DGS10 - T10YIE 🔧 T10YIE 또는 DFII10 신규 성장주/금 valuation

1-3. 신용 (Credit Channel)

피처 산식 데이터 가용성
HY OAS BAMLH0A0HYM2 FRED ✅ 수집 중
HY z-score regime (HY - MA60)/STD60 derived
HYG/LQD ratio ETF 가격비 yfinance ✅ (HYG/LQD 추가 수집 권장)
SLOOS net tightening C&I lending standards FRED DRTSCILM 🔧 분기 수집
HY 1차 발행 잔액 weekly HY issuance SIFMA / LCD 🔧 신규 (paywall 가능)
iTraxx Crossover EU 신용 스프레드 시장 🔧 미수집

1-4. 통화 / FX (자본흐름 채널)

피처 산식 데이터 가용성
DXY level + Δ yfinance DXY ✅ 수집 중 Δ20d, 양방향 분기 룰
USD/KRW yfinance ✅ 수집 중 Δ20d, EM 자본유출 proxy
Broad USD index FRED DTWEXBGS 🔧 신규 수집 EM 자본흐름 transmitter (BIS 검증)
KRX USD 선물 close/chg/oi ✅ 수집 중 외인 헷지 비용

1-5. 한국 유동성 (Korea L overlay)

피처 산식 데이터 가용성
외인 KOSPI net cum 일별 외인 순매수 누적 KRX 투자자별 ✅ (collect_market_investor_flow.py)
외인 KTB net position 채권 외인 보유 변동 금감원/BoK 🔧 신규 수집 (ADB 검증 가격발견 변수)
한국 회사채 AA- 스프레드 한국 신용 KRX 채권 🔧 신규
BoK 정책금리 기준금리 BoK ✅ (수동)
KRX 10Y 국채선물 close/chg/oi ✅ 수집 중 한국 금리 sentiment

1-6. L축 Composite

liquidity_composite_z = mean([
    fed_net_liquidity_z_60d,         # 핵심 (Druckenmiller)
    -hy_z_60d,                        # HY widening = 유동성 마름
    -dxy_z_60d,                       # USD 강세 = EM 유출
    -sloos_tightening_z,              # 신용 tightening
    foreign_kospi_net_z_20d,          # 한국 외인 자본흐름
    # 가중치는 자체 백테스트로 결정
])
liquidity_delta_20d = liquidity_composite_z - liquidity_composite_z.shift(20)
# "개선 중인가" = liquidity_delta_20d > 0

2. 심리 축 (S) — "투자심리가 개선될 가능성이 있는가?"

2-1. 변동성 (Vol)

피처 산식 데이터 가용성
VIX spot yfinance ^VIX
VIX9D spot yfinance ^VIX9D
VIX3M spot yfinance ^VIX3M
VIX 텀구조 VIX9D / VIX3M derived
VRP VIX - HV20 derived
VVIX CBOE yfinance ^VVIX 🔧 미확인 (추가 수집)
CBOE SKEW CBOE yfinance ^SKEW 🔧 미확인 (추가)
VKOSPI KRX 옵션 ✅ 수집 중 (proxy) 한국 직접 심리 6 regime

2-2. 옵션 시장 (Dealer Flow)

피처 산식 데이터 가용성
SPY/QQQ P/C ratio put/call OI 또는 vol derivatives JSON ✅ 수집 중
KOSPI200 P/C OI KRX opt_bydd_trd ✅ 수집 중 자체 분포 percentile 80/20 (미국 임계 직수입 X)
KOSPI200 P/C Vol KRX intraday flow 강도
MaxPain OI 가중 strike ✅ 수집 중 만기 D-2 weak signal
Dealer GEX SpotGamma / 자체 산출 🔧 산출기 신설 flip point = 일중 reference
AUD/JPY yfinance 🔧 신규 수집 S&P +0.84 상관 RORO proxy

2-3. 서베이 Sentiment

피처 산식 데이터 가용성
AAII Bull-Bear Spread weekly survey AAII web 🔧 신규 수집 (CSV 다운로드)
Investors Intelligence newsletter 비율 II web (구독) 🔧 paywall, proxy 검토
NAAIM Exposure Index active mgr 실 포지션 NAAIM web 🔧 신규 수집
BofA Bull & Bear Indicator 10 inputs composite BofA report 🔧 paywall, 뉴스 trigger로 수집
BofA FMS Cash% monthly BofA FMS 🔧 paywall
CNN Fear & Greed 7 구성요소 CNN web 🔧 신규 수집 (web scrape)
Baker-Wurgler 학술 index HBS data 🔧 분기 수집
Goldman RAI 27 risk premia z GS report 🔧 paywall

2-4. 포지셔닝 (Positioning)

피처 산식 데이터 가용성
CFTC COT TFF + Legacy 자체 수집 ✅ 수집 중
외국인 KOSPI200 선물 누적 net KRX
basis 선물 - 현물 KRX
프로그램 차익/비차익 KRX 프로그램 ✅ 수집 중 후행지표 (시장 상태 확인용)
FINRA Margin Debt NYSE 신용 FINRA 🔧 신규 수집 (3주 지연)
SentimenTrader Smart/Dumb OEX 옵션, equity P/C 등 proprietary ❌ paywall, 자체 proxy 필요

2-5. 한국 심리 (Korea S overlay)

피처 산식 데이터 가용성
신용잔고 시총비 신용/시가총액 KRX 🔧 신규 수집
미수금 결제 미납 KRX 🔧 신규
개인/외인/기관 거래대금 비중 KRX 개인 비중 ↑ = 역지표
신용잔고 Δ_20d_z derived 🔧 레버리지 변화

2-6. S축 Composite

sentiment_composite_z = mean([
    -vix_term_z,                      # backwardation = 단기 공포
    -vvix_z,                          # tail hedge 매수
    -pc_ratio_percentile_self,        # 옵션 sentiment
    -aaii_bull_bear_spread_z,         # 개인 심리 contrarian
    naaim_exposure_z,                 # 액티브 매니저 momentum (반대 부호 주의)
    -bofa_bull_bear_indicator_z,      # institutional contrarian
    foreign_kospi200_fut_z,           # positioning
    -vkospi_z,                        # 한국 직접 심리
    -credit_balance_pct_z,            # 한국 retail 레버리지 (역지표)
])
sentiment_delta_20d = sentiment_composite_z - sentiment_composite_z.shift(20)
# "개선 중인가" = sentiment_delta_20d > 0

3. L × S 결합 = Regime 4분면

3-1. 4분면 라벨

def classify_regime(L_z, S_z):
    if L_z >= 0 and S_z >= 0:    return "L_UP_S_UP_BULL"
    if L_z >= 0 and S_z <  0:    return "L_UP_S_DOWN_CONTRARIAN_BUY"  # ★ 최고 보상
    if L_z <  0 and S_z >= 0:    return "L_DOWN_S_UP_TOP_WARNING"
    if L_z <  0 and S_z <  0:    return "L_DOWN_S_DOWN_BEAR"

3-2. 분면별 funnel 행동

분면 candidate pool 섹터 tilt stoploss tail hedge
L↑S↑ Bull base × 1.6 momentum + cyclical trailing 완화 OFF
L↑S↓ Contrarian Buy base × 1.4 quality + beta (역추세) base OFF
L↓S↑ Top Warning base × 0.5 take profit, defensive base 부분 ON
L↓S↓ Bear base × 0.3 defensive + cash + 방어주 -3% → -1.5% (타이트) ON

3-3. KC Fed RORO Composite 차용

roro_z = pca_first_component([
    credit_spread_chg,    # HY OAS Δ
    equity_vol_chg,        # VIX Δ
    funding_liquidity_chg, # SOFR-IORB / TED
    fx_gold_chg,           # DXY Δ + Gold Δ
])
# 운영자 표준: PCA 1st component (Charistedman-Lundblad 2024)

3-4. Δ-기반 + 다중 컨펌 (R7 운영 원칙)

# Step 1: Regime level
regime = classify_regime(L_z, S_z)

# Step 2: Δ 측정
improving = (L_delta_20d > 0) and (S_delta_20d > 0)

# Step 3: 다중 컨펌
multi_confirm_count = sum([
    aaii_bear_dropping,            # Δ
    pc_ratio_dropping,             # Δ
    cot_managed_money_recovering,  # Δ
    audjpy_recovering,             # Δ
    foreign_kospi_net_turning_pos, # Δ
])
multi_confirm = multi_confirm_count >= 3

# Step 4: Tape divergence (Druckenmiller 룰)
tape_confirms = (price_5d_change > 0)  # 또는 더 정교한 시장 breadth

trigger_long = (regime == "L_UP_S_DOWN_CONTRARIAN_BUY") and multi_confirm and tape_confirms

4. R4 funnel 피처 (가격 기반)

R7 외, R4(Round 4 발굴 funnel) 피처는 기존 discovery_feature_spec.md 참조. 본 표는 매크로 축 중심이라 R4는 요약만:

영역 피처 가용성
R4 가격 모멘텀 RS Rating, 12-1/6-1/3-1 momentum, 신고가 근접 ✅ (FDR + 키움 일봉)
R4 거래량 RVOL, log-vol z, CMF, OBV slope
R4 VSA spread/close_pos/vol_ratio, 8신호 + Spring/UT ✅ (discovery/vsa_signals.py)
R4 Volume Profile POC/VAH/VAL, HVN/LVN, rotation ✅ (discovery/volume_profile.py)
R4 Wyckoff 4국면 + 11이벤트 + 3법칙 ✅ (discovery/wyckoff.py)
R4 Order Flow BVC, CVD, divergence ✅ (discovery/order_flow.py)
R4 RRG 테마 RS-Ratio × RS-Momentum, 4분면 🔧 산출기 신설
R4 MST 상관 클러스터 Mantegna 1999, 60d corr → 거리 🔧 산출기 신설
R4 Isolation Forest 다차원 outlier 🔧

5. R5 펀더·이벤트 피처

R5도 본 표 외 별도. 요약:

영역 피처 가용성
R5 EarnAccel ★ EPS 성장률 2차 미분 🔧 (DART 분기 재무 + 시계열 산출기)
R5 SUE (실제-기대)/σ 🔧 (FnGuide 컨센서스 ❌ 또는 시계열 기대모형 ✅)
R5 revenue_driven 매출 서프라이즈 동반 🔧
R5 quarters_to_breakeven 적자축소 외삽 🔧
R5 op_leverage EPS%/매출% 🔧
R5 코스피200 정기변경 컷오프 마진 × 패시브 매수/거래대금 🔧 (6/12월 결정론적)
R5 자사주 소각 CAR DART 공시 + 이벤트 스터디 🔧
R5 내부자 클러스터 DART 임원 매수 30일 내 2인+ 🔧
R5 M&A spread 시장내재 성공확률 🔧

6. 데이터 보강 갭 — 우선순위

R7 운영자 합의에 따라 우선순위:

P0 (즉시 필요 — L축 핵심)

  1. Fed Net Liquidity = WALCL + TGA + RRP daily 자동 수집기 (FRED 3 시리즈)
  2. FRED DGS3MO — Estrella probit 정식 산식
  3. FRED T10YIE 또는 DFII10 — Real yield
  4. FRED DRTSCILM (SLOOS) — 분기 수집 + tightening 지수

P1 (S축 핵심)

  1. AAII Bull-Bear Spread weekly CSV (open data)
  2. NAAIM Exposure Index weekly CSV (open data)
  3. CNN Fear & Greed Index daily (web scrape 또는 mirror)
  4. VVIX / SKEW yfinance 추가 수집

P2 (한국 핵심)

  1. 외인 KTB net position (BoK 또는 금감원)
  2. 신용잔고 / 미수금 (KRX 종합 통계)
  3. AUD/JPY yfinance 추가
  4. Broad USD index DTWEXBGS FRED 추가

P3 (보강)

  1. HY 1차 발행 잔액 SIFMA/LCD (paywall 가능)
  2. iTraxx Crossover 시장 데이터
  3. Naphtha-Brent crack swap CME
  4. FINRA Margin Debt monthly (3주 지연)

P4 (paywall - proxy 우선)

  • EPFR fund flows ❌ paywall → ETF flow proxy
  • BofA Bull & Bear Indicator ❌ paywall → 뉴스 trigger 수집
  • Goldman RAI ❌ paywall
  • SentimenTrader ❌ paywall → 자체 proxy

7. 첫 백테스트 설계 (PM 프레임 검증)

가설

"L×S 4분면 라벨이 한국 BUY_STRONG verdict의 D+20 alpha에 conditional 영향을 준다"

변수 (단순화 — P0/P1만, 즉시 산출 가능)

  • L축: Fed Net Liquidity Δ20d_z + HY z60 (S307 캐시 기간 외 Fed 데이터 추가 수집)
  • S축: AAII Bull-Bear Δ4w + VKOSPI z60d + 외인 KOSPI net z20d
  • regime label: 4분면

백테스트

  • 모집단: S307big 250종목 캐시 (47,456 samples)
  • 시점 t에 regime label 부여 (t-1 데이터까지만)
  • conditional alpha: mean(D+20 ret | regime, verdict) matrix
  • DSR + PBO + Combinatorial Purged CV 검증

성공 기준

  • regime별 BUY_STRONG D+20 alpha가 통계적으로 다름 (Wilcoxon p<0.05)
  • L↑S↓ 분면이 다른 분면보다 D+20 alpha 유의하게 높음 (R7 CF7 가설 검증)
  • DSR > 0 (다중검정 보정 후 양수)
  • 표본 cell n ≥ 30 (regime 4 × verdict 5 = 20 cell)

산출

  • data/backtest/lxs_v1/regime_alpha_matrix.parquet
  • docs/research/2026-MM-DD_lxs_first_backtest.md

8. 발굴 시스템 5층 통합 (R3 ~ R7)

단계 리서치 역할
① 발굴 funnel R4 종목 트랙 + 테마 트랙 → 후보 압축
② 펀더·이벤트 R5 EarnAccel / DART 이벤트
매크로 regime R6 + R7 (본 매핑) L×S 4분면 → funnel gate + 섹터 tilt
④ 차트·수급 layer R3 Layer A/B/C 정규화
⑤ LLM 종합 R1·R2 구조화 사실 → D+N verdict
⑥ base-rate 엔진 R3·R4·R6·R7 conditional 확률 + walk-forward

LLM macro_context yaml 표준:

macro_context:
  # L축
  liquidity_composite_z: +0.8
  liquidity_delta_20d: +0.3
  fed_net_liquidity_z_60d: +1.1
  hy_z_60d: +0.4

  # S축
  sentiment_composite_z: -1.5
  sentiment_delta_20d: +0.4
  vix_term_regime: "BACKWARDATION"
  aaii_bull_bear_spread_z: -1.8
  vkospi_z: +1.2

  # Korea overlay
  foreign_kospi_net_cum_z: -1.8
  pcr_percentile_self: 85
  credit_balance_pct_z: +0.7

  # Regime
  regime_quadrant: "L_UP_S_DOWN_CONTRARIAN_BUY"   # ★
  regime_confidence: 0.72
  multi_confirm_count: 4
  tape_divergence: true


9. 다음 작업 (실행 순서)

  1. P0 데이터 수집기 신설 (Fed Net Liquidity + DGS3MO + T10YIE + SLOOS) — scripts/fetch_fed_liquidity.py
  2. P1 sentiment 수집기 신설 (AAII + NAAIM + CNN F&G + VVIX/SKEW) — scripts/fetch_sentiment_indices.py
  3. L축 / S축 composite 산출기scripts/macro/build_lxs_regime.py
  4. 첫 백테스트 (§7) 실행
  5. 결과 따라 가중치 조정 + 4분면 임계 재조정
  6. LLM macro_context yaml 표준 적용morning/signal-synthesizer 입력 변경
  7. R7 신규 보강 갭 (P2/P3) 순차 신설