1. RSI (Relative Strength Index)
일정 기간 동안의 상승폭과 하락폭을 비교하여 현재 가격의 과매수/과매도 상태를 판단하는 오실레이터 지표
계산 방식
RSI = 100 - (100 / (1 + RS))
RS = 평균 상승폭(EMA) / 평균 하락폭(EMA)
파라미터
- 기간
- 14일 (기본값)
- 과매도 기준
- RSI < 30
- 과매수 기준
- RSI > 70
값별 해석
| RSI 범위 | 의미 | 매매 신호 |
| < 20 | 극심한 과매도 | 강한 매수 단기 반등 가능성 높음 |
| 20 ~ 25 | 과매도 | 매수 |
| 25 ~ 30 | 과매도 진입 | 약한 매수 |
| 30 ~ 50 | 약세 구간 | 중립 |
| 50 ~ 70 | 강세 구간 | 중립 |
| > 70 | 과매수 | 주의 조정 가능성 |
점수 배점
| 구분 | 조건 | 점수 |
| 단기 | RSI < 20 (극심한 과매도) | 15점 |
| 단기 | RSI < 25 | 12점 |
| 단기 | RSI < 30 | 9점 |
| 장기 | RSI 45~60 (건강한 상승대) | 8점 |
| 장기 | RSI 40~45 또는 60~65 | 5점 |
| 장기 | RSI 35~40 또는 65~70 | 3점 |
2. MACD (Moving Average Convergence Divergence)
단기 및 장기 지수이동평균의 차이를 이용하여 추세의 방향, 강도, 전환점을 파악하는 지표
계산 방식
MACD Line = EMA(12) - EMA(26)
Signal Line = EMA(9) of MACD Line
Histogram = MACD Line - Signal Line
골든크로스: MACD Line이 Signal Line을 상향 돌파
데드크로스: MACD Line이 Signal Line을 하향 돌파
파라미터
- Fast EMA
- 12일
- Slow EMA
- 26일
- Signal EMA
- 9일
값별 해석
| 상태 | 의미 | 매매 신호 |
| 골든크로스 + 히스토그램 > 0 | 상승 추세 전환 확인 | 강한 매수 |
| 골든크로스 + 히스토그램 < 0 | 상승 전환 초기 | 매수 |
| MACD > Signal, MACD > 0 | 상승 추세 유지 | 보유 |
| 히스토그램 반등 (아직 크로스 전) | 반등 초기 신호 | 관망 |
| 데드크로스 | 하락 추세 전환 | 매도 주의 |
점수 배점
| 구분 | 조건 | 점수 |
| 단기 | 골든크로스 + 히스토그램 > 0 | 12점 |
| 단기 | 골든크로스 + 히스토그램 < 0 | 8점 |
| 단기 | 히스토그램 반등 중 | 3점 |
| 장기 | MACD > Signal + MACD > 0 | 12점 |
| 장기 | MACD > Signal | 7점 |
| 장기 | MACD > 0 | 4점 |
3. 볼린저밴드 (Bollinger Bands)
이동평균선에 표준편차를 적용하여 가격 변동 범위를 설정하고, Z-Score로 현재 가격의 상대적 위치를 판단하는 지표
계산 방식
중심선 (SMA) = 20일 단순이동평균
상단밴드 = SMA + 2 x 표준편차
하단밴드 = SMA - 2 x 표준편차
Z-Score = (현재가 - SMA) / 표준편차
1시그마 근접: -1.2 ≤ Z-Score ≤ -0.8 (하단 밴드 근처)
파라미터
- 기간
- 20일
- 표준편차 배수
- 2σ
- 1시그마 근접 범위
- -1.2 ~ -0.8
값별 해석
| Z-Score 범위 | 위치 | 매매 신호 |
| ≤ -2.0 | 하단밴드 하회 (2σ 이하) | 강한 매수 극단적 과매도 |
| -2.0 ~ -1.5 | 하단밴드 근접 | 매수 |
| -1.2 ~ -0.8 | 1시그마 근접 (평균회귀 후보) | 매수 관심 |
| -0.8 ~ 0.8 | 중심선 부근 | 중립 |
| 0.3 ~ 1.0 | SMA 상방 (장기 건강한 위치) | 장기 유리 |
| ≥ 2.0 | 상단밴드 상회 | 과매수 주의 |
점수 배점
| 구분 | 조건 | 점수 |
| 단기 | Z-Score ≤ -1.5 (2σ 근접) | 12점 |
| 단기 | Z-Score ≤ -1.2 | 9점 |
| 단기 | Z-Score ≤ -0.8 (1σ 근접) | 7점 |
| 장기 | Z-Score 0.3~1.0 (SMA 위, 과열 아님) | 8점 |
| 장기 | Z-Score 0.0~0.3 | 4점 |
| 장기 | Z-Score 1.0~1.5 | 3점 |
4. ADX (Average Directional Index)
추세의 강도와 방향을 측정하는 지표. +DI와 -DI의 관계로 방향을, ADX 값으로 강도를 판단
계산 방식
True Range = max(High-Low, |High-Prev Close|, |Low-Prev Close|)
+DM = High - Prev High (양수일 때만, +DM > -DM일 때만)
-DM = Prev Low - Low (양수일 때만, -DM > +DM일 때만)
+DI = 100 x EMA(+DM) / EMA(TR)
-DI = 100 x EMA(-DM) / EMA(TR)
DX = 100 x |+DI - -DI| / (+DI + -DI)
ADX = EMA(DX)
파라미터
- 기간
- 14일
- 약한 추세 임계값
- ADX < 25
값별 해석
| ADX | 추세 강도 | +DI vs -DI | 의미 |
| < 25 | 약한 추세 (weak) | - | 평균회귀 전략 유효 |
| 25 ~ 40 | 중간 추세 (moderate) | +DI > -DI | 상승 추세 |
| 25 ~ 40 | 중간 추세 (moderate) | -DI > +DI | 하락 추세 |
| ≥ 40 | 강한 추세 (strong) | +DI > -DI | 강한 상승 |
| ≥ 40 | 강한 추세 (strong) | -DI > +DI | Falling Knife 위험 |
점수 배점
| 구분 | 조건 | 점수 |
| 단기 | 약한 추세 (ADX < 25) | 12점 (평균회귀 유효) |
| 단기 | 중간 추세 + 비하락 | 6점 |
| 단기 | 강한 하락 추세 | -15점 (페널티) |
| 장기 | ADX ≥ 30 + bullish | 15점 |
| 장기 | ADX ≥ 25 + bullish | 10점 |
| 장기 | ADX ≥ 20 + bullish | 6점 |
5. 거래량 (Volume)
일정 기간 평균 거래량 대비 현재 거래량의 비율을 분석하여 시장 참여도와 신호 신뢰도를 판단
계산 방식
거래량 비율 = 당일 거래량 / 20일 평균 거래량
거래량 스파이크 = 거래량 비율 ≥ 1.5
파라미터
- 평균 기간
- 20일
- 스파이크 임계값
- 1.5배
값별 해석
| 거래량 비율 | 의미 | 매매 신호 |
| < 0.7 | 거래량 감소 | 약한 신호 과매도여도 신뢰 낮음 |
| 0.7 ~ 1.0 | 평균 이하 | 주의 |
| 1.0 ~ 1.3 | 평균 수준 | 중립 |
| 1.3 ~ 1.5 | 평균 이상 | 관심 증가 |
| 1.5 ~ 2.0 | 거래량 급증 | 신호 확인 |
| ≥ 2.0 | 거래량 폭증 | 강한 신호 확인 바닥 가능성 |
점수 배점
| 구분 | 조건 | 점수 |
| 단기 | 과매도 + 거래량 ≥ 2.0x | 10점 |
| 단기 | 과매도 + 거래량 스파이크 | 8점 |
| 단기 | 과매도 + 거래량 < 0.7x | -5점 (페널티) |
| 장기 | 거래량 ≥ 1.5x | 8점 |
| 장기 | 거래량 ≥ 1.3x | 6점 |
| 장기 | 거래량 ≥ 1.0x | 4점 |
6. ATR (Average True Range)
일정 기간의 가격 변동폭 평균을 계산하여 변동성을 측정하고, 손절가와 목표가 설정에 사용
계산 방식
True Range = max(High - Low, |High - Prev Close|, |Low - Prev Close|)
ATR = 14일 True Range 이동평균
ATR% = ATR / 현재가 x 100
손절가 = 현재가 - ATR x 2.0 (stop multiplier)
목표가 = 칼만 블렌딩 목표가 (또는 20일 SMA)
R:R 비율 = (목표가 - 현재가) / (현재가 - 손절가)
파라미터
- 기간
- 14일
- 손절 배수
- 2.0 ATR
- 최소 R:R 비율
- 2.0:1 (미달 시 필터링)
값별 해석
| ATR% | 변동성 | 의미 |
| < 1.5% | 낮은 변동성 | 안정적, 좁은 손절 범위 |
| 1.5% ~ 3.0% | 보통 | 일반적 종목 수준 |
| 3.0% ~ 5.0% | 높은 변동성 | 넓은 손절 필요, 수익 가능성도 큼 |
| > 5.0% | 매우 높은 변동성 | 고위험/고수익, 포지션 크기 조절 필요 |
ATR은 직접 점수에 반영되지 않지만, R:R 비율이 2:1 미만이면 추천 대상에서 제외됩니다.
7. 상대강도 (Relative Strength vs SPY)
개별 종목의 수익률을 SPY(S&P 500 ETF)와 비교하여 시장 대비 성과를 판단하는 지표
계산 방식
상대강도(N일) = 종목 N일 수익률 - SPY N일 수익률
5일, 10일, 20일 세 기간을 계산하여
3개 중 2개 이상 양수이면 "아웃퍼폼"으로 판단
파라미터
- 단기
- 5일
- 중기
- 10일
- 장기
- 20일
값별 해석
| 20일 상대강도 | 의미 | 매매 신호 |
| > +5% | 강한 아웃퍼폼 | 시장 대비 강세 |
| +2% ~ +5% | 아웃퍼폼 | 양호 |
| 0 ~ +2% | 소폭 아웃퍼폼 | 중립~양호 |
| < 0 | 언더퍼폼 | 시장 대비 약세 |
점수 배점
| 구분 | 조건 | 점수 |
| 단기 | 20일 RS > +5% | 8점 |
| 단기 | 20일 RS > 0 | 5점 |
| 장기 | 20일 RS > +5% | 12점 |
| 장기 | 20일 RS > +2% | 8점 |
| 장기 | 20일 RS > 0 | 4점 |
8. 52주 위치 (52-Week Position)
현재 가격이 52주 고점과 저점 사이 어디에 위치하는지를 백분율로 표시. 0%는 52주 최저점, 100%는 최고점
계산 방식
52주 위치(%) = (현재가 - 52주 최저가) / (52주 최고가 - 52주 최저가) x 100
파라미터
- 산출 기간
- 252 거래일 (약 1년)
- 저점 근처 기준
- 10% 이하
값별 해석
| 52주 위치 | 의미 | 매매 신호 |
| ≤ 5% | 52주 최저점 근처 | 단기 반등 기대 |
| 5% ~ 10% | 저점 근처 | 단기 매수 관심 |
| 20% ~ 40% | 하위권 | 중립 |
| 40% ~ 70% | 중간대 | 장기 투자 적합 성장 여력 |
| 70% ~ 90% | 상위권 | 주의 |
| ≥ 90% | 52주 고점 근처 | 과열 가능 |
점수 배점
| 구분 | 조건 | 점수 |
| 단기 | ≤ 5% (최저점 근처) | 8점 |
| 단기 | ≤ 10% | 5점 |
| 장기 | 40~70% (성장 여력) | 8점 |
| 장기 | 30~40% 또는 70~80% | 4점 |
| 장기 | 20~30% 또는 80~90% | 2점 |
9. 칼만 필터 (Kalman Filter)
노이즈가 섞인 가격 데이터를 필터링하여 실제 추세를 추정하고, 다음 시점의 가격을 예측하는 확률적 필터
계산 방식
상태 벡터: [가격, 속도(velocity)]
관측값: 종가
Predict: x_pred = F * x (상태 전이)
Update: Kalman Gain으로 관측값 반영
예측가 = 필터된 가격 + 속도 (1-step ahead)
블렌딩 목표가 = α x 예측가 + (1-α) x 볼린저 SMA
(α = 0.5, 50:50 블렌딩)
파라미터
- 프로세스 분산
- 1e-5 (상태 변화 민감도)
- 측정 분산
- 1e-2 (노이즈 수준)
- 블렌딩 비율
- α = 0.5 (칼만 50% : SMA 50%)
값별 해석
| 지표 | 값 | 의미 |
| 예측가 > 현재가 | 양수 차이 | 상승 예상 |
| 예측가 < 현재가 | 음수 차이 | 하락 예상 |
| 추세 속도 > 0 | 양수 velocity | 상승 추세 (장기 하드 필터) |
| 추세 속도 < 0 | 음수 velocity | 하락 추세 (장기 추천 제외) |
| velocity/price > 0.5% | 강한 속도 | 장기 추천 유리 |
점수 배점
단기 추천
점수 없음 (목표가 계산에 사용)
장기 추천
최대 8점
| 구분 | 조건 | 점수 |
| 장기 | velocity/price > 0.5% | 8점 |
| 장기 | velocity/price > 0.3% | 5점 |
| 장기 | velocity/price > 0.1% | 3점 |
| 장기 (하드필터) | velocity ≤ 0 | 추천 제외 |
10. OBV (On Balance Volume)
가격 상승일에는 거래량을 더하고 하락일에는 빼서 누적하여, 기관/세력의 매집(accumulation)과 분산(distribution) 행위를 감지
계산 방식
가격 상승일: OBV = 전일 OBV + 당일 거래량
가격 하락일: OBV = 전일 OBV - 당일 거래량
가격 보합: OBV = 전일 OBV
OBV SMA = OBV의 20일 이동평균
매집(accumulation): OBV 상승 + OBV > OBV SMA
분산(distribution): OBV 하락 + OBV < OBV SMA
Bullish Divergence: 가격 횡보/하락 + OBV 상승 + OBV > OBV SMA
파라미터
- SMA 기간
- 20일
- 추세 판단 기준
- 최근 5일 OBV 변화
값별 해석
| OBV 추세 | 의미 | 매매 신호 |
| accumulation | 기관/세력 매집 중 | 매수 긍정 |
| distribution | 매도 압력 증가 | 매도 압력 |
| neutral | 방향성 없음 | 중립 |
| Bullish Divergence | 가격 하락 중 OBV 상승 | 강한 매집 신호 |
점수 배점
| 구분 | 조건 | 점수 |
| 단기 | Bullish Divergence | 8점 |
| 단기 | 매집 + 과매도 | 7점 |
| 단기 | 매집 | 4점 |
| 단기 | 분산 (distribution) | -4점 (페널티) |
| 장기 | 매집 + OBV > SMA | 8점 |
| 장기 | 매집 | 5점 |
| 장기 | Bullish Divergence | 4점 |
| 장기 | neutral | 2점 |
11. Stochastic Oscillator
일정 기간의 가격 범위에서 현재 가격의 상대적 위치를 측정하는 오실레이터. %K와 %D 교차로 매매 시점 판단
계산 방식
%K = (현재가 - N일 최저가) / (N일 최고가 - N일 최저가) x 100
%D = %K의 M일 단순이동평균
Bullish Cross: 과매도 구간(%K < 30)에서 %K가 %D를 상향 돌파
파라미터
- %K 기간
- 14일
- %D 기간
- 3일 (SMA)
- 과매도
- %K < 20
- 과매수
- %K > 80
값별 해석
| %K 범위 | 의미 | 매매 신호 |
| < 15 | 극심한 과매도 | 강한 매수 (RSI 동시 과매도 시) |
| < 20 | 과매도 | 매수 관심 |
| 20 ~ 30 | 과매도 탈출 구간 | Bullish Cross 확인 시 매수 |
| 40 ~ 70 | 중립~강세 | 장기 건강한 모멘텀 |
| > 80 | 과매수 | 주의 |
점수 배점
| 구분 | 조건 | 점수 |
| 단기 | Stochastic + RSI 동시 과매도, %K < 15 | 8점 |
| 단기 | Stochastic + RSI 동시 과매도 | 6점 |
| 단기 | Bullish Cross (과매도 구간 교차) | 5점 |
| 단기 | 단독 Stochastic 과매도 | 3점 |
| 장기 | %K 50~70 (건강한 모멘텀) | 5점 |
| 장기 | %K 40~50 또는 70~75 | 3점 |
| 장기 | %K 30~40 | 1점 |
12. TTM Squeeze
볼린저밴드와 켈트너채널의 상대적 위치로 변동성 수축(Squeeze)을 감지하고, 이후 방향성 돌파를 예측하는 지표
계산 방식
볼린저밴드: 20일 SMA ± 2σ
켈트너채널: 20일 SMA ± 1.5 x ATR(20)
Squeeze ON: 볼린저 하단 > 켈트너 하단 AND 볼린저 상단 < 켈트너 상단
(볼린저가 켈트너 안에 들어감 = 변동성 수축)
Squeeze OFF: 볼린저가 켈트너 밖으로 나옴 (변동성 폭발/돌파)
모멘텀 = 종가 - (Donchian 중심선 + 볼린저 SMA) / 2
모멘텀 방향: increasing (상승) / decreasing (하락)
파라미터
- 볼린저밴드
- 20일, 2σ
- 켈트너채널
- 20일, 1.5 ATR
값별 해석
| 상태 | 모멘텀 | 의미 | 매매 신호 |
| Squeeze ON | 상승 (increasing) | 변동성 수축 + 상방 에너지 축적 | 매수 준비 (5일+ 연속 시 강함) |
| Squeeze ON | 하락 | 변동성 수축 + 하방 압력 | 관망 (과매도 시 반등 가능) |
| Squeeze OFF | 상승 (increasing) | 돌파 진행 중 | 매수 추세 시작 |
| Squeeze OFF | 하락 | 하방 돌파 | 주의 |
점수 배점
| 구분 | 조건 | 점수 |
| 단기 | Squeeze ON + 상승 모멘텀 + 5일+ 연속 | 7점 |
| 단기 | Squeeze ON + 상승 모멘텀 | 5점 |
| 단기 | Squeeze ON + 하락 모멘텀 (과매도 시) | 2점 |
| 단기 | Squeeze OFF + 상승 모멘텀 (increasing) | 4점 |
| 장기 | Squeeze OFF + 상승 모멘텀 (increasing) | 8점 |
| 장기 | Squeeze OFF + 상승 모멘텀 | 5점 |
| 장기 | Squeeze ON + 상승 모멘텀 + 5일+ | 6점 |
| 장기 | Squeeze ON + 상승 모멘텀 | 4점 |
추천 시스템 설명
단기 vs 장기 추천 차이점
단기 추천 (Enhanced)
- 전략: 평균 회귀 (Mean Reversion)
- 보유 기간: 1~4주
- 핵심 원리: 과매도 종목의 반등 포착
- 핵심 지표: RSI, 볼린저밴드, 거래량
- ADX 선호: 약한 추세 (<25) = 회귀 유효
- 최소 점수: 50점 이상
- 100점 만점 가중치 합산 시스템
장기 추천 (Trend Following)
- 전략: 추세 추종 (Trend Following)
- 보유 기간: 1~3개월
- 핵심 원리: 상승 추세 종목에 합류
- 핵심 지표: ADX, 상대강도, MACD
- ADX 선호: 강한 상승 (≥30, bullish)
- 최소 점수: 40점 이상
- 상위 3개 종목 추천
필터링 조건
아래 조건에 해당하는 종목은 점수와 무관하게 추천에서 제외됩니다.
| 필터 | 적용 대상 | 조건 | 이유 |
| Falling Knife |
단기 |
ADX > 25 + bearish |
강한 하락 추세에서의 매수는 위험 |
| 저거래량 과매도 |
단기 |
과매도 + 거래량 < 0.7x |
거래량 없는 과매도는 반등 신뢰도 낮음 |
| R:R 비율 |
단기 |
R:R < 2:1 |
리스크 대비 수익률이 불리 |
| 추세 방향 |
장기 |
칼만 velocity ≤ 0 |
상승 추세가 아닌 종목 제외 |
| 추세 방향 |
장기 |
ADX bearish |
하락 추세 종목 제외 |
| 과매수 |
장기 |
RSI ≥ 75 |
이미 과열된 종목 제외 |
| 거래량 부족 |
장기 |
거래량 비율 < 0.7 |
관심도 낮은 종목 제외 |
| 지수 ETF 제외 |
장기 |
SPY, QQQ, DIA, IWM |
개별 종목만 추천 대상 |
신뢰도 등급 (단기 추천)
| 등급 | 점수 | 의미 |
| High | ≥ 70점 | 복수 지표 일치, 높은 신뢰도. 보유기간 2~4주 권장 |
| Medium | 50 ~ 69점 | 일부 지표 일치, 중간 신뢰도. 소량 진입 후 확인 |
| 50점 미만은 추천 대상에서 제외 |
점수 요약 (100점 만점)
| 지표 | 단기 배점 | 장기 배점 | 핵심 역할 |
| RSI | 15점 | 8점 | 과매도 감지 / 건강한 모멘텀 |
| ADX | 12점 | 15점 | 추세 약화 확인 / 추세 강도 |
| MACD | 12점 | 12점 | 추세 전환 / 모멘텀 유지 |
| 볼린저밴드 | 12점 | 8점 | 가격 위치 / SMA 위 건강성 |
| 거래량 | 10점 | 8점 | 신호 확인 / 관심도 |
| 상대강도 | 8점 | 12점 | 시장 대비 성과 |
| 52주 위치 | 8점 | 8점 | 저점 근접 / 성장 여력 |
| OBV | 8점 | 8점 | 매집/분산 감지 |
| Stochastic | 8점 | 5점 | 과매도 보조 확인 |
| TTM Squeeze | 7점 | 8점 | 변동성 폭발 감지 |
| 합계 | 100점 | 100점 (+칼만 8점) | |
장기 추천은 11개 지표 (칼만 필터 포함) 합산 최대 108점이며, 단기 추천에서 칼만 필터는 점수 배점 없이 목표가 계산에만 사용됩니다.