목적은 기존 V8 Stage나 미리 정한 단계 수를 정답으로 사용하는 것이 아니다. 상위 100종목의 실제 5년 데이터에서 가장 적합한 상태 수와 반복적으로 나타나는 상태 조합을 찾는 것이다.
기준일: 2026-08-30
분석 기간: 2021-08-30~2026-08-28
운영 관점의 기본 국면은 하락·횡보·상승 3개 방향으로 단순화하는 것이 가장 적절하다. 다만 방향만으로는 완만한 상승, 급등, 약한 조정, 투매를 충분히 설명할 수 없으므로 아래 정보를 별도의 연속 보조축으로 함께 본다.
| 구분 | 표현 | 역할 |
|---|---|---|
| 기본 방향 | 하락 / 횡보 / 상승 | 현재 가격 흐름의 방향 |
| 추세 강도 | 연속 점수 + 약함/보통/강함/극단 | 같은 상승·하락 안에서 변화율의 크기 구분 |
| 가속도 | 악화/안정/개선 | 추세가 강해지는지 약해지는지 구분 |
| 변동성 | 수축/보통/확대/극단 | 평온한 추세와 충격성 움직임 구분 |
| 거래활동 | 과거 대비 백분위 | 거래대금·거래량이 동반되는지 확인 |
| Event | 돌파/과열/구조적 단절/투매 등 | 짧고 강한 상태를 지속 국면과 분리 |
따라서 강한 상승이나 강한 하락은 별도의 Stage가 아니라
상승 또는 하락 + 강도·변동성 오버레이로 표현한다. 이 구조는 국면을 매수·매도
신호로 직접 사용하기 위한 것이 아니라, 신호의 유효성을 조건부로 평가하기 위한 배경 정보다.
현재 상태: 이 페이지는 분석 결과를 반영한 권장 정의다. 실제 운영 식별기와 V8 Stage, 매수·매도 신호 로직은 아직 변경하지 않았다.
| 항목 | 내용 |
|---|---|
| 대상 | 현재 SP 시가총액 상위 100종목 |
| 분석 기간 | 2021-08-30~2026-08-28 |
| 평가 stock-day | 117,418 |
| 이동평균 준비 구간 포함 | 135,541행 |
| 5년 전체 데이터 | 89종목 |
| 부분 데이터 | 신규 상장 등을 포함한 11종목 |
| 모델 | 경제축 HMM K=2~12, 수리 Quant GMM K=2~6 |
| 학습/검증 | 2024년 말까지 학습, 2025년 이후 외표본 검증 |
| 미래정보 | 미래수익률은 상태 발굴에 사용하지 않음 |
경제축 모델은 추세, 가격 위치, 변동성, 상대 거래활동, 캔들 특성을 같은 비중의 축으로 사용했다. 수리 Quant 모델은 과거 수익률 평균·분산·왜도·첨도·자기상관·허스트 프록시·시장 동조화를 사용했다.
아래 세 상태는 방향 3분류의 최종 정의가 아니라, K=3 군집 실험에서 발견된 원형이다. 번호는 데이터 중심을 약세에서 강세 순으로 표시하기 위한 것이며 순차적인 생애주기를 뜻하지 않는다.
가격이 낮은 위치에서 하락 추세가 지속되고 거래활동도 위축된 상태다. 하락·소외·바닥 탐색이 함께 포함된다.
단순한 횡보만을 의미하지 않는다. 저변동 상태에서 완만한 상승과 정상적인 조정이 함께 나타나는 가장 일반적인 상태다.
강한 추세와 거래활동 증가가 동반된 상태다. 고점 급등과 직후 변동성 조정도 포함하므로 단순한 안전 상승 상태는 아니다.
| K | 분리도 | 반복학습 안정성 | 최소 점유율 | 지속기간 중앙값 | 판단 |
|---|---|---|---|---|---|
| 2 | 0.339 | 1.000 | 41.0% | 19일 | 가장 안정적이나 지나치게 단순 |
| 3 | 0.167 | 0.998 | 28.4% | 14일 | 실용적 최적안 |
| 4 | 0.125 | 1.000 | 20.5% | 11일 | 참고 모델 |
| 5 | 0.103 | 0.996 | 14.6% | 9일 | 과도한 세분 시작 |
| 8 | 0.047 | 0.531 | 5.9% | 6일 | 불안정 |
| 12 | 0.039 | 0.417 | 2.3% | 5일 | 경계 조각화 |
종합점수만 보면 K=2가 가장 높다. 하지만 K=3은 K=2보다 외표본 설명력이 크게 개선되고 각 상태가 28% 이상이며 거의 전 종목에 나타난다. K=4에서는 중립과 완만한 상승이 분리되지만, 고변동 급상승 상태의 지속기간 중앙값은 4일에 불과했다. 따라서 상태 수를 계속 늘리기보다 방향과 강도·변동성을 분리하는 편이 해석과 재현성에 유리하다.
K=4 보조 실험에서는 두 상태가 다음처럼 구분됐다.
| 특성 | 중립·횡보형 | 완만한 상승형 |
|---|---|---|
| 점유율 | 29.2% | 28.1% |
| 지속기간 중앙값 | 11일 | 12일 |
| 60일 수익률 | -1.75% | +11.24% |
| 120일 수익률 | -0.78% | +18.21% |
| 양의 수익 종목 비율 | 42.0% | 75.7% |
| 상대 거래활동 | 0.89배 | 1.04배 |
즉 둘은 데이터상 구분 가능하다. 다만 이를 별개의 생애주기 Stage로 고정하기보다
기본 방향을 횡보/상승으로 나누고 추세 강도를 연속값으로 함께 표시하는 것이 더 자연스럽다.
추가 검산에서 강한 하락 상태는 넓은 약세 상태 안에 주로 포함됐다.
P(강한 하락 | 약세 상태): 70.8%P(약세 상태 | 강한 하락): 86.7%따라서 강한 하락은 독립 단계보다 하락 방향 + 극단 강도/변동성 하위 유형으로 두는 편이 타당하다.
같은 상태가 이어지는 날을 하나의 구간으로 압축한 뒤 패턴을 집계했다. 아래 번호는 3절의 발견 상태 번호이며, 새 방향 국면 식별기의 하락/횡보/상승 번호가 아니다. 따라서 이 표는 반복 구조의 근거로 보존하되 새 국면의 전이 통계로 재해석하지 않는다. 아래 비중은 같은 길이의 모든 패턴 중 차지하는 비율이다.
| 패턴 | 의미 | 횟수 | 비중 | 관측 종목 |
|---|---|---|---|---|
| 2→3 | 안정 상태에서 강한 모멘텀으로 | 1,135 | 21.7% | 98 |
| 3→2 | 강한 모멘텀에서 안정 상태로 | 1,134 | 21.7% | 98 |
| 2→1 | 안정 상태에서 약세로 | 979 | 18.7% | 98 |
| 1→2 | 약세에서 안정 상태로 | 953 | 18.2% | 98 |
| 1→3 | 약세에서 강한 모멘텀으로 직접 전환 | 537 | 10.3% | 97 |
| 3→1 | 강한 모멘텀에서 약세로 직접 전환 | 498 | 9.5% | 97 |
2↔3과 1↔2가 가장 일반적이다. 직접적인 1↔3 전환도 약 20%이므로 모든 종목이 중간 상태를 거치는 것은 아니다.
| 패턴 | 해석 | 비중 | 관측 종목 |
|---|---|---|---|
| 2→3→2 | 모멘텀 상승 후 정상 상태 복귀 | 17.7% | 98 |
| 2→1→2 | 조정·약세 후 정상 상태 복귀 | 13.2% | 98 |
| 3→2→3 | 강세 중 조정 후 재가속 | 13.0% | 97 |
| 1→2→1 | 약세 반등 후 재하락 | 9.5% | 97 |
| 3→2→1 | 강세 둔화 후 약세 전환 | 8.9% | 97 |
| 1→2→3 | 약세에서 안정, 이후 강세 전환 | 8.9% | 98 |
가장 보편적인 패턴은 일방향 진행보다 A→B→A 형태다.
| 패턴 | 비중 |
|---|---|
| 2→3→2→3 | 11.0% |
| 3→2→3→2 | 10.6% |
| 1→2→3→2 | 7.3% |
| 2→3→2→1 | 7.0% |
| 2→1→2→3 | 6.8% |
| 2→1→2→1 | 6.6% |
| 2→3→2→3→2 | 8.9% |
| 3→2→3→2→3 | 6.8% |
2↔3 진동이 가장 강하다. 상승 종목이 Stage 3에 한 번 진입한 뒤 계속 머무르기보다 Stage 2와 Stage 3 사이를 오가며 추세를 이어가는 경우가 많다.
일상적인 전이와 별도로 15% 이상 움직인 큰 파동 1,596개를 분석했다.
| 패턴 | 비중 | 종목 수 | 평균 상승폭 |
|---|---|---|---|
| 1→2→3 | 13.1% | 66 | +64.3% |
| 1→2 | 11.6% | 59 | +31.8% |
| Stage 3 내부 상승 지속 | 7.2% | 40 | +68.4% |
| 2→3 | 6.6% | 44 | +83.4% |
| 1→2→3→2→3 | 4.7% | 35 | +61.1% |
큰 상승에서는 1→2→3이 가장 대표적이지만 전체의 13%다. 2→3, Stage 3 내부 상승, 재가속 패턴도 상당하다.
| 패턴 | 비중 | 종목 수 | 평균 하락폭 |
|---|---|---|---|
| 2→1 | 16.8% | 62 | -26.1% |
| 3→2→1 | 15.9% | 65 | -27.9% |
| Stage 3 내부 급락 | 11.2% | 53 | -34.5% |
| 3→2 | 8.8% | 40 | -21.4% |
| Stage 1 내부 하락 지속 | 4.5% | 26 | -24.2% |
큰 하락의 대표 패턴은 3→2→1과 2→1이다. Stage 3 내부에서도 급락할 수 있으므로 고변동 강세 상태에는 과열 이후 급격한 조정 위험이 함께 존재한다.
수익률 평균·분산·왜도·첨도·자기상관·허스트 프록시·시장 동조화로 GMM을 비교한 결과 K=2가 가장 안정적이었다.
| Quant 상태 | 점유율 | 특성 |
|---|---|---|
| Q1 | 62.4% | 평균수익률이 거의 0이고 변동성이 낮은 평균회귀·저변동 상태 |
| Q2 | 35.3% | 양의 표류, 높은 변동성·첨도·양의 왜도를 가진 활동적 상승·충격 혼합 상태 |
제안한 4개 상태를 강제하지 않고 K=4 중심을 확인했지만 다음 문제가 있었다.
따라서 수리 Quant 특징은 기본 방향보다 위험도 보조축으로 사용한다.
평균회귀와 Random Walk는 같은 개념이 아니다. 평균회귀는 일반적으로 H<0.5 또는 음의 자기상관과 관련되고, Random Walk는 H≈0.5에 가깝다.
기본 방향
하락 / 횡보 / 상승
항상 함께 표시할 정보
추세 강도 / 가속도 / 변동성 / 거래활동
필요할 때만 발생하는 Event
돌파 / 과열 / 구조적 단절 / 투매 / 변동성 수축·폭발
예시는 상승·강함·가속 개선·변동성 확대, 하락·보통·가속 악화·변동성 극단,
횡보·약함·변동성 수축처럼 표현한다. 변동률의 크기와 변동성은 국면 이름에
억지로 합치지 않고 별도 정보로 유지한다.
이 방식은 4~6개의 고정 이름에 모든 상황을 끼워 맞추는 것보다 유연하다. 다만 현재 분석은 Top100 생존 종목을 사용했고 실제 거래대금·장기 수급이 빠진 가격 중심 분석이라는 제한이 있다. 새 정의로 전환확률과 종목군·시장 국면별 통계를 다시 계산한 후 운영 식별기에 적용해야 한다.
첫 운영 버전은 설명 가능한 룰 기반 Core로 만들고, 통계 모델과 딥러닝은 같은 기간에 병렬 계산하는 Challenger로 둔다. 처음부터 세 모델을 투표로 합치거나, 룰이 만든 라벨을 딥러닝이 그대로 모사하게 만들지 않는다.
표준 시점 데이터
└─ 공통 Feature Engine
├─ Rule Core → 공식 방향·강도·가속도·변동성·활동성
├─ Quant Challenger → Kalman / sticky HMM 확률과 불일치 경고
└─ Event Engine → 수축·돌파·과열·투매·구조적 단절
후속 단계
└─ TCN Challenger → 미래 경로·전환 위험 예측
공식 상태는 Core가 만들고 Challenger는 확률, 신뢰도, Core와의 불일치를 기록한다. Challenger가 여러 외표본 구간과 종목군에서 반복적으로 순증분을 보인 뒤에만 운영 판단에 반영한다.
핵심 역할은 다음처럼 분리한다. Rule Core는 현재 어디에 있는지를 설명하고, 통계·ML 모델은 앞으로 가능한 결과의 분포를 예측한다. 현재 상태와 미래 예측을 하나의 범주형 Stage에 섞지 않는다.
| 제안 | 그대로 사용하기 어려운 이유 | 초안의 처리 |
|---|---|---|
| EMA20/60 대비 고정 ±2% | 저변동 ETF와 고변동 테마주에 같은 의미가 아님 | 직전 완료 봉의 ATR%·실현변동성으로 거리 표준화 |
(C-C20)/ATR20 |
가격 수준·기간에 따라 척도가 달라지고 방향 점수와 중복 가능 | 로그수익률을 변동성으로 나누고 단·중·장기별 산출 |
| 252일 Min-Max | 한 번의 극단값에 장기간 끌려감 | 과거 자료만 쓰는 ECDF 또는 median/MAD 기반 robust score |
| Strength의 EMA5-EMA20 | 가속도 후보로는 유용하나 고점 매도세를 직접 측정하지 않음 | 가격 가속도로 사용하고 윗꼬리·수급 이탈은 Event로 분리 |
| ATR 원값 백분위 | 주가 수준이 다른 종목끼리 비교 불가 | ATR/종가와 실현변동성의 과거 백분위 사용 |
| 외인+기관 순매수 원화 Z-score | 시총·거래대금이 큰 종목에 종속되고 두 주체의 상쇄를 숨김 | 거래대금 또는 유동시총 대비 비율로 각각 표준화하고 합의 여부 별도 표시 |
| 거래대금 90% + 수급 Z 2 돌파 확정 | 아직 검증되지 않은 희소한 고정 조건 | 돌파 후보/수급 확인 Event로 분리해 임계값 그리드 검증 |
| GARCH를 기본 변동성으로 사용 | 짧은 표본에서 수렴 실패와 모형 오차가 잦음 | EWMA·실현변동성을 기준선으로 두고 GARCH는 Challenger |
| 룰 라벨을 딥러닝이 모사 | 룰의 오류까지 복제하며 룰 이상의 정보가 생기지 않음 | 미래 정규화 수익·변동성·전환 위험을 보조 목표로 학습 |
| RNN 은닉상태로 히스테리시스 | 상태 유지 규칙을 설명·통제하기 어려움 | 모델 밖 유한상태기계로 진입·이탈·확인기간을 명시 |
단일 종합값을 만들기 전에 단기·중기·장기 벡터를 보존한다.
| 축 | 초기 기간 | 기본 산출 |
|---|---|---|
| 단기 | 10~20일 | 단기 로그수익, EMA 기울기, 가격 위치 |
| 중기 | 40~60일 | 중기 로그수익, EMA 기울기, 가격 위치 |
| 장기 | 120~240일 | 장기 로그수익, EMA 기울기, 가격 위치 |
기간 h의 변동성 정규화 모멘텀 후보는 다음과 같다.
z_mom(h,t) = log(C[t] / C[t-h]) / (sigma20[t-1] * sqrt(h))
z_slope(h,t) = log(EMA_h[t] / EMA_h[t-k]) / (sigma20[t-1] * sqrt(k))
EMA 쌍 자체를 쓰는 더 단순한 기준선도 함께 비교한다.
z_spread(f,s,t) = (EMA_f(log(C))[t] - EMA_s(log(C))[t]) / ATR_pct[t-1]
이 값은 EMA 간격이 평소 일간 변동폭의 몇 배인지 나타낸다. signed_strength는 부호를
보존하고, 화면용 강도 등급은 그 절댓값으로 만든다. 하락 추세가 강해질 때도 가속도의
방향을 잘못 표시하지 않도록 가속도는 절대 강도가 아니라 signed strength의 변화로 계산한다.
장 마감 후 다음 거래일에 사용할 때는 완료된 t 봉까지 사용할 수 있다. 장중 화면은
미완성 당일 봉을 공식 상태에 섞지 않고 잠정 상태로 분리한다. 모든 rolling 통계와
백분위 기준분포는 해당 계산시점 이전 자료로만 만든다.
방향 점수는 각 기간의 모멘텀·기울기·이평선 위치를 합성하되, 초기 가중치는 고정한 뒤 walk-forward 학습구간에서만 조정한다. 화면에는 종합 방향과 함께 다음처럼 기간별 충돌을 그대로 남긴다.
종합: 상승
단기: 하락 / 중기: 상승 / 장기: 상승
해석: 장기 상승 안의 단기 조정
강도는 -100~+100의 signed robust score와 자기 과거 대비 백분위를 함께 저장한다.
252일 Min-Max는 쓰지 않는다. 가속도는 강도 변화의 단·중기 차이로 계산하되
개선/안정/악화 해석만 맡고, 반전 확정 신호로 사용하지 않는다.
변동성과 활동성은 하나로 합치지 않고 다음 원변수를 보존한다.
히스테리시스는 고정 ±2% 밴드가 아니라 진입 문턱과 이탈 문턱을 다르게 둔 상태기계로 구현한다.
SIDEWAYS → UP: 방향점수 >= enter_up 을 q일 확인
UP → SIDEWAYS: 방향점수 <= exit_up
SIDEWAYS → DOWN: 방향점수 <= enter_down 을 q일 확인
DOWN → SIDEWAYS: 방향점수 >= exit_down
조건: enter_up > exit_up, enter_down < exit_down
초기 후보는 변동성 정규화 점수의 여러 구간과 확인기간 1~3일을 함께 시험한다. 우선 전역 임계값을 고정하고 시장·업종·주가패턴 군은 신뢰도 보정에 사용한다. 군별 임계값이 반복적으로 개선될 때만 전역값 쪽으로 축소하는 계층 보정을 허용한다. 종목마다 임계값 전체를 재학습하지 않고, 충분한 표본이 있을 때 변동성·주기 특성에 따른 제한된 보정만 허용한다.
다음 항목은 기본 국면이 아니라 짧은 사건이다.
| Event | 후보 정보 |
|---|---|
| 수축 | 변동성 백분위 하락, 실제 캔들 범위 축소, 거래활동 감소 |
| 돌파 | 횡보→상승 전환, 전고점 통과, 거래대금 증가, 수급 확인 여부 |
| 과열·분산 | 상승·강도 극단, 가속 악화, 윗꼬리/범위 수축, 외인·기관 이탈 |
| 투매 | 하락·강도 극단, 변동성 급등, 하단 이탈, 대량 매도 |
| 구조적 단절 | 개별·시장 수익률의 꼬리 사건, 상관 급증, 기존 분포 이탈 |
수급은 필수조건으로 미리 고정하지 않는다. 가격 단독, 거래대금 확인, 외국인 확인,
기관 확인, 양주체 확인을 나눠 어느 종목군·시장 국면에서 실제 순증분이 있는지 검증한다.
현재 Top100 고정 목록은 생존편향이 있으므로 운영 검증은 당시 시점의 종목 universe와 상장·상폐 episode를 사용한다. 수정주가, 원주가, 거래량, 기업행사 기준도 한 계보로 고정한다. 수급 원천의 커버리지가 달라지는 시기는 별도 데이터 era로 나눈다.
하락 < 횡보 < 상승 순서를 재현하는지 본다.국면 모델의 1차 성공 기준은 매매수익 극대화가 아니라 낮은 상태 왕복, 기간·종목군별 재현성, 방향별 미래 분포의 단조성이다. 매수·청산 규칙은 이 조건을 통과한 뒤 별도로 개발한다.
analysis/stage_count_patterns_5y_top100.pyanalysis_results/stage_count_patterns_5y_top100_v1/report.mdanalysis_results/stage_count_patterns_5y_top100_v1/model_selection.csvanalysis_results/stage_count_patterns_5y_top100_v1/stage_profiles.csvanalysis_results/stage_count_patterns_5y_top100_v1/ngram_patterns.csvanalysis_results/stage_count_patterns_5y_top100_v1/swing_patterns.csvanalysis_results/stage_count_patterns_5y_top100_v1/quant4_model_selection.csv앞으로 검증이 끝난 주요 분석 결과는 문서 목록에 순번을 부여해 추가한다. 잠정 실험이나 실행 실패 결과는 주요 결론으로 올리지 않고, 데이터 범위·방법·핵심 통계·제한사항·재현 자료를 함께 기록한다.