불러오는 중…
불러오는 중…
Hawkeye Market Sentiment
국내 시장 심리(0~100)를 나타내는 지수입니다. CNN Fear & Greed와 유사한 스케일이며, KOSPI 모멘텀(125일선), 종목폭/거래량강도, 변동성, 그리고 Naver 투자자별 매매동향 일자별 순매수(외국인·개인)를 반영해 계산합니다.
실시간 호가가 아닙니다. 서버 DB에 저장된 스냅샷(동일 값은 메모리 캐시에도 올려 빠르게 읽습니다)을 보여 주며, 편집자가 Refresh할 때만 네이버 등 원천 데이터를 다시 집계해 갱신됩니다. 일반 페이지 새로고침만으로는 수치가 바뀌지 않습니다.
스냅샷 기준 시각 2026. 5. 26. AM 6:46:20
중립
quant.md 기준 팩터: Momentum/Breadth/Volume/Volatility는 Naver, Foreign/Retail은 Naver 투자자별 매매동향 일자별 순매수(억원, sise_trans_style / investorDealTrendDay). 외국인은 최근 5거래일 순매수 누적, 개인은 최근 3거래일 순매수 누적에 z-score+sigmoid, Retail 방향(-) 반영. new_high/dispersion은 미구현이라 neutral(50) 상수 처리.
20D 모멘텀(%): 21.1788 / z: 0.8979 (mean: 10.0244, std: 12.4228, hist: 60)
상승: 786 / 하락: 1771 / 당일 adv/(adv+dec): 0.3074
상승 거래량: 728273642 / 하락 거래량: 5713264263 / 비율: 0.1131
20일 rolling std: 3.255 / z: 0.0658 / sigmoid(raw): 51.6 / 최종 greed-score(반전): 48.4
외국인 수급은 Naver 투자자별 매매동향(일자별 순매수, 억원)을 바탕으로, 최근 5거래일 누적 순매수 -109826억원을 기준으로 누적 시계열에 대해 평균·표준편차를 잡고 z-score를 만든 뒤, 그 값을 0~100으로 환산한 중간 점수입니다. (중간 점수: 48.6)
지수 최종 합성에서는 외국인 수급을 정방향으로 넣습니다(높은 외국인 순매수는 greed를 높이는 쪽).
개인 수급은 Naver 투자자별 매매동향(일자별 순매수, 억원)을 바탕으로, 최근 3거래일 누적 순매수 -22254억원을 기준으로 누적 시계열에 대해 평균·표준편차를 잡고 z-score를 만든 뒤, 그 값을 0~100으로 환산한 중간 점수입니다. (중간 점수: 24.1)
지수 최종 합성에서는 개인 수급을 역방향으로 넣습니다(quant: Retail '-' → 높은 개인 순매수는 greed를 낮추는 쪽으로 반영).
최종 점수는 아래 6가지 하위 점수(각 0~100)를 quant.md 가중치로 가중 평균한 값입니다. 표는 `new_high/dispersion`(각 10%)를 제외한 6개 팩터(총 80%)만 보여줍니다. (final 계산에서는 두 항목을 neutral 50으로 상수 처리)
| 항목 | 가중치 | 점수 |
|---|---|---|
| 모멘텀(20D 수익률)KOSPI 20일 수익률을 z-score 정규화 후 sigmoid 스케일로 0~100 점수화합니다. | 15% | 71.1 |
| 시장 넓이(Breadth)당일 KOSPI·KOSDAQ adv/(adv+dec) 비율을 일별로 쌓아, 그 시계열의 z-score를 sigmoid로 0~100에 맞춥니다. | 10% | 30.7 |
| 거래량 압력(Volume Pressure)상승 종목 거래량/전체(상승+하락) 거래량 비율을 0~100으로 정규화합니다. | 10% | 11.3 |
| 변동성최근 KOSPI 수익률의 rolling(20) std에 대해 z-score 정규화 후 sigmoid 스케일로 0~100 점수화합니다(방향: -). | 10% | 48.4 |
| 외국인 수급최근 5거래일 외국인 순매수 누적(억원)을 최근 구간 z-score 정규화 후 sigmoid로 0~100 점수화합니다. | 20% | 48.6 |
| 개인 심리최근 3거래일 개인 순매수 누적(억원)을 z-score+sigmoid로 0~100으로 만든 뒤, quant.md 방향(Retail은 -)으로 최종 greed에 반영합니다. | 15% | 75.9 |
quant.md: momentum = price.pct_change(20). 최근 히스토리(z_history)에서 평균/표준편차를 계산한 뒤 z-score를 sigmoid로 변환해 0~100으로 만듭니다.
Naver `sise_index` 상승·하락 종목수로 당일 adv_rate를 구하고, 서버 캐시에 일별 adv_rate가 누적됩니다. 최근 구간 평균·표준편차로 z-score → sigmoid(quant.md). Naver가 과거 일자별 종목수를 주지 않아 히스토리는 배포 이후 스냅샷이며, 안정적이려면 Redis 등 영구 캐시를 권장합니다. 히스토리가 부족하면 당일 비율을 직접 스케일합니다.
Naver `sise_quant.naver`에서 상승/하락 종목 거래량을 각각 합산해 volume_pressure = up_vol/(up_vol+down_vol)로 계산하고 volume_pressure*100을 점수로 사용합니다.
quant.md: volatility = returns.rolling(20).std(). volatility z-score를 sigmoid로 0~100 생성 후, quant.md 방향(Volatility는 -)에 따라 최종 greed-score를 반전해 계산합니다.
데이터: sise_trans_style.naver / investorDealTrendDay.naver 일자별 순매수. 일별 외국인 순매수를 5거래일 누적한 시계열의 최신 값에 z-score → sigmoid(quant.md) 적용. 수집 실패 시 proxy/중립 폴백.
일자별 개인 순매수를 3거래일 누적한 시계열로 동일하게 z-score+sigmoid 후 greed 합성 시 100에서 빼 방향(-) 반영. 수집 실패 시 proxy/중립 폴백.
투자 권유가 아닌 시장 심리 참고용 지표입니다. 외국인·개인 순매수(Naver)나 특정 원천 데이터 수집에 실패한 경우 해당 컴포넌트는 중립(50)으로 폴백될 수 있습니다.