S342 — 시장상황 영역 원자화 설계 (논의용 초안)¶
일자: 2026-06-01 (Mon) Topic: topic_backtest_mar_apr.md 선행: S341 차트/수급 slice/step 정식 통합 완료. 차트 템플릿(관찰 원자 + 종합자 + slice + 양방향 검증) 재사용. 상태: 🟡 PM 조율 중 (분할안·검증 방식 미확정)
0. PM 확정 / 미확정¶
| 항목 | 상태 |
|---|---|
| verdict 의미 | ✅ 자금흐름 방향 + 우호도 (확장 — LEADING 섹터명을 verdict에 구조화, 차트 today_phase처럼) |
| 분할 개수 | ✅ 6관찰 확정 (아래 §3.확정) |
| 변화+누적 프레임 | ✅ 누적 보강 완료 (CumulativeFlow — deriv 5 + fx 5). PM "변화만이 아니라 누적도" |
| 국내/미국 파생 분리 | ✅ 국내 파생 독립 관찰 (basis 7/7 -8.6d 한국 선행, S317 검증). 미국 VIX→심리, SPY옵션/COT→큰손 |
| 검증 방식 | 🟡 양방향 시점(risk-on 날 vs risk-off 날) — D1 빌더 과거 빌드 범위 확인 후 선정 |
3.확정 — 6관찰 분할 (PM 확정 2026-06-01)¶
| # | 관찰 | 받는 블록/필드 | 변화·누적 | 국내/미국 |
|---|---|---|---|---|
| 1 | 위험환경 | liquidity + rates(레벨·curve·HY신용·금리방향) | rates ChangeSet | 미국 |
| 2 | 심리·변동성 레짐 | sentiment + 미국 VIX 기간구조 | vix_chg | 미국 |
| 3 | 자금이동①글로벌자산 | fx_commodity(달러·원화·금·구리·WTI) | 변화+누적 짝 | 글로벌 |
| 4 | 자금이동②글로벌큰손 | cot_flow + 미국 SPY/QQQ 옵션 | lev_net_z_52w 누적 | 미국 |
| 5 | 자금이동③섹터도착 | sector_flow 12섹터 | d20+accel | 미국 |
| 6 | 국내파생포지셔닝 | derivatives(basis·선물OI 4종·국내옵션) | 변화+누적 짝 | 국내 |
- 금리 처리: 레벨(curve 역전)과 방향(상승/감쇄)을 한 관찰(1)이 함께 — 분리하면 해석 끊김.
- context(s308/s317/이벤트/yesterday_verdict)는 관찰 아님(메타) → 종합자에만 전달.
1. 현황 — macro-judge 단일 에이전트 (원자화 대상)¶
차트 S339 chart-judge 단일화와 동일 구조: 하나의 macro-judge가 D1Input 8블록 전부 읽고 verdict. → 차트와 같은 문제: 강신호(예: VIX contango·유동성 HIGH)로 결론 내고 약신호(예: COT 엔 숏 극단, 원화 d20 +4.2% 약세)를 흐릿하게 넘길 위험. 원자 분리 = 빼먹기 구조적 차단.
D1Input 8블록 (2026-05-29 실측, 전부 ★★): - liquidity: Fed 순유동성 5874B, lev HIGH 3/5(SPY·GSPC·SOX), WALCL/deposit MID - rates: 미 10Y 4.48·2Y 4.0·curve +0.48, HY OAS 2.71 EUPHORIA, kr_10y_chg_z +1.48 - sentiment: VIX 15.6, VKOSPI_fut_oi_chg_z +0.52, FnG 61.4 GREED, pcr_vol_z +0.97 - fx_commodity: DXY -0.3%(d5)·원화 +4.2%(d20 약세)·WTI -8.9%·gold +1.3%·copper +0.8% - cot_flow: spx lev_net -40만(숏)·ndx lev z -1.44·jpy lev -6.5만(엔 숏) - sector_flow: 반도체·AI소프트·태양광·우주항공·방산 LEADING / 화석에너지 DOWNTREND, VIX contango - derivatives: basis_z +1.37·fut_oi_chg_z +0.61·PCR_oi 2.17, kospi200 선물 OI d5 +2233 - context: s308_regime·s317 신호·이벤트 (메타, 관찰 아님)
2. 의미 축 추출 (분할 기준 = "한 에이전트가 받으면 빼먹을 이질성")¶
차트 원자화 원칙(S340): 자기 데이터만 받으면 안 보면 단락이 안 채워짐 = 누락 불가. 8블록을 사람이 시장을 읽는 의미 단위로 묶으면:
| 의미 축 | 묶이는 블록/필드 | 질문 |
|---|---|---|
| A. 위험환경(유동성·신용) | liquidity + rates(HY OAS·curve) | "돈이 풍부하고 신용이 열려 있나" |
| B. 심리·변동성 레짐 | sentiment + sector_flow(VIX 기간구조) | "공포냐 탐욕이냐, risk-on/off" |
| C. 자금이동(글로벌) | fx_commodity + cot_flow | "달러/현금 회귀냐 위험선호냐, 큰손 방향" |
| D. 수혜 섹터(자금 도착지) | sector_flow.sectors 12개 | "자금이 어느 섹터로 들어가나" → verdict 방향 |
| E. 국내 포지셔닝(파생) | derivatives(basis·선물OI·옵션) | "국내 선물·옵션 포지션이 매수/헷지냐" |
| F. 금리·자금조달 방향 | rates(미금리 방향·가속) | "금리가 오르나 내리나, 가속/감쇄" |
주의 — 중복: VIX 기간구조가 sentiment·sector_flow 양쪽에 있음. HY OAS는 신용인데 rates 블록 안. rates는 "레벨/curve"(환경)와 "방향/가속"(자금이동 신호)이 한 블록에 섞여 있음.
3. 분할안 후보 (개수별)¶
안-3 (PM 3축 그대로 — 큰 묶음)¶
- 글로벌 자산: liquidity + rates + fx_commodity (환경 + 자금이동 일부)
- 파생 포지셔닝: derivatives + sentiment(VIX) + cot_flow
- 자금이동·섹터: sector_flow + 심리
→ 장점: PM 용어 직결, 종합자 부담 적음. 단점: 블록이 커서 "안 봐도 채워지는" 누락 위험 잔존 (예: 1번이 fx와 금리 둘 다 받으면 한쪽 흐릿). 차트 5분할 교훈과 역행.
안-4 (PM 3축 + 심리 독립 — 권장 후보)¶
- 위험환경: liquidity + rates(HY OAS·curve·금리방향)
- 심리·변동성: sentiment + VIX 기간구조
- 자금이동: fx_commodity + cot_flow + sector_flow(섹터 LEADING)
- 국내 파생 포지셔닝: derivatives(basis·선물OI·옵션)
→ 장점: 심리(VIX 중복)를 한 곳으로 모음, 자금이동을 한 관찰이 통합 서술(달러+큰손+섹터 = 일관 그림). 단점: 3번이 여전히 큼(fx+cot+sector). 자금 "출발(달러회귀)"과 "도착(섹터)"이 한 관찰.
안-5 (차트와 동수 — 세밀)¶
- 유동성·신용 (liquidity + HY OAS)
- 심리·변동성 (sentiment + VIX 기간구조)
- 금리·자금조달 (rates 방향·가속·curve)
- 자금이동·섹터 (fx_commodity + cot_flow + sector_flow)
- 국내 파생 포지셔닝 (derivatives)
→ 장점: 누락 최소, 차트 템플릿 1:1. 단점: 유동성·금리 블록이 얇아질 수 있음(과분할 위험).
4. 검증 방식 후보 (차트=양방향 종목, 시장=양방향 시점)¶
차트는 진입정답/회피정답 종목 2개로 했음. 시장상황은 종목이 아니라 날짜(레짐)가 단위: - 후보 A: risk-on 날 vs risk-off 날 — 과거 시점 2개. 예: 안정 상승일(VIX contango·자금유입) vs 급락/공포일(VIX backwardation·달러회귀). D1 빌더로 과거 날짜 빌드 가능한지 먼저 확인 필요. - 후보 B: 오늘(2026-06-01) 1시점 단방향 — 작동+파싱만, verdict 방향 대조 없음(약함).
미확인: D1 빌더가 과거 날짜(예: 3월 급락일)를 빌드할 수 있는가? panel_4y_daily 시계열 커버 필요. → 다음 단계에서 빌더 과거 빌드 가능 범위 확인 후 양방향 시점 선정.
5. PM 논의 포인트¶
- 분할 개수: 안-3 / 안-4 / 안-5 중. (권장: 안-4 — 심리 중복 해소 + 자금이동 일관 서술. 단 자금이동 관찰이 큼)
- 자금이동 관찰을 더 쪼갤까: "출발(달러·금·현금 회귀)" vs "도착(섹터 LEADING)"을 2개로? (안-4→5)
- rates 처리: 레벨/curve(환경)와 방향/가속(자금이동 신호)이 한 블록 — 어느 관찰에 줄지.
- 검증 시점: 과거 risk-off 날 선정 (D1 빌더 과거 빌드 범위 확인 후).
- context 블록: 관찰 아님(메타). 종합자에만 전달 (yesterday_verdict·이벤트).
6. 추후 보강 항목 (PM "추후 논의" — 지금 미구현, 기록만)¶
6.1 관찰5 — 글로벌 섹터 "거래대금 이동" 보강 (✅ 구현 완료 2026-06-02)¶
구현됨: fetch_sector_flow._dollar_flow()(amt5_over_20·amt5_eok_usd) + SectorEtfFlow schema +
관찰5 명세 "가격 vs 거래대금 교차"(flow_confirmed/flow_divergent) + 종합자 envelope.
실측: 반도체 가격+18%인데 거래대금 0.83(분배의심) vs 태양광 +20% 거래대금 1.34(진짜쏠림). 기존 5/29 데이터 재수집은 백필 시.
(참고) 최초 진단¶
PM 문제제기 (2026-06-01): "자금이동을 보는데 등락(가격) 데이터만 있나? 거래대금 이동을 볼 자료는?"
현황 진단 (코드 확인 scripts/fetch_sector_flow.py):
- 현재 sector_flow는 ETF 종가(Close)만 수집 → d1/d5/d20 등락률 + accel + status. 거래량/거래대금 미수집.
- 코드 주석(라인 5): "거래량은 yfinance 당일치가 부정확해 제외, 등락률 주축".
- 즉 현재 "섹터 자금이동" = 섹터 가격 모멘텀의 다른 이름(가격↑=자금유입 간접추정, 자금량 직접측정 아님).
가용성 확인 (yfinance 실측, 2026-06-01):
- yfinance ETF Volume 가용 → Close × Volume = 달러 거래대금 산출 가능.
- 당일 절대값은 부정확하나 5일평균/20일평균 비율(거래대금 이동의 방향·가속)은 노이즈 희석되어 산출 가능.
- 실측 증거 (가격 ≠ 거래대금): 반도체(SMH) 가격 d20 +18% LEADING인데 거래대금 ×0.84 감소(끝물 신호) /
태양광(TAN) 가격 +25% + 거래대금 ×1.60 급증(진짜 쏠림) / 화석에너지 비슷.
→ 같은 LEADING이라도 자금 빠지는 중 vs 들어오는 중 구분 = 가격만으론 못 봄.
보강 설계 (착수 시):
- fetch_sector_flow._changes에 거래대금(Close×Volume) 5d/20d 평균 비율 + accel 추가 (등락 d5/d20 프레임 재사용).
- 관찰5 명세에 "가격 LEADING vs 거래대금 유입 일치/괴리" 교차 항목 추가 (분배 신호 — 가격↑ 자금↓).
- 차트 cum_delta·fx 누적과 같은 "변화+자금량" 짝 프레임의 섹터판.
6.2 한국 시장 내부 자금 편중도 (별건, 추후 논의)¶
PM 문제제기: "한국 시장이 특정 종목에 엄청나게 편중". 현재 D1Input에 시장 집중도(breadth/concentration) 없음.
- 가용 데이터: data/market_top/*.json (거래대금 상위 100, amount_억·volume, 2026-04-09~ 32일).
- 산출 가능: top1/3/5/10 거래대금 점유율, HHI, 1위 종목 — 소수 종목 쏠림도 + 시계열 변화.
- theme_concentration.py는 테마 내 강한종목 집결도(D4 종목발굴용)이지 시장 전체 편중 아님 — 구분 필요.
- 신규 관찰(시장 폭/편중) 또는 관찰1 확장 여부는 추후 논의.