가격의 리듬은 일정하지 않습니다. 어떤 날은 잔잔하게 움직이다가도, 뉴스 한 줄에 갑자기 호흡이 거칠어집니다. 바로 변동성(Volatility) 때문입니다. 많은 투자자는 "RSI(Relative Strength Index)"로 모멘텀의 과열·침체를 읽지만, 변동성이 커지는 구간에서 RSI의 신호가 잦아지고 거짓 신호가 늘어나는 경험을 합니다. 반대로 변동성이 낮으면 신호가 드물어 타이밍을 놓치기도 합니다. 이 글은 그 간극을 메우기 위해 "ATR(Average True Range)"로 변동성을 측정하고, 이를 RSI에 정량적으로 결합해 신호 품질을 끌어올리는 변동성 조정 모멘텀 지표를 제안합니다. 이름하여 vaRSI(Volatility-adjusted RSI). 설계 원리 → 계산식 → 실전 규칙 → 백테스트와 최적화 순으로, 실무에서 바로 써먹을 수 있게 구성했습니다.
개념과 설계: RSI와 ATR을 결합해 ‘왜곡 없는’ 모멘텀 만들기
RSI는 “상승 압력 vs 하락 압력”의 상대 강도를 0~100 스케일로 표현합니다. 직관적이고 빠르지만, 가격 변동폭 변화를 반영하지 못하는 태생적 한계가 있습니다. 예컨대 같은 RSI 65라도, 하루 평균 변동폭이 1%인 종목과 4%인 종목은 신호의 신뢰도와 후속 파동의 안정성이 다릅니다. 여기서 ATR이 등장합니다. ATR은 평균 진폭을 통해 시장 호흡의 크기를 보여 줍니다.
핵심 아이디어는 간단합니다. RSI의 편차(±)를 현재 변동성 수준으로 ‘나눠’ 표준화하자는 것입니다. 변동성이 과도하면 RSI의 과장된 움직임을 눌러주고, 변동성이 너무 낮으면 RSI의 미약한 움직임을 증폭해 상대 비교가 가능한 신호로 바꿉니다.
설계 목표 4가지
- 동일 종목 내 시기 간 비교 가능: 변동성 레짐(낮음↔높음)이 바뀌어도 신호 기준이 유지되어야 합니다.
- 종목 간 비교 가능: 고변동 자산과 저변동 자산을 한 프레임에서 판단할 수 있어야 합니다.
- 거짓 신호 억제: ATR 급등기(뉴스/갭)에서 RSI가 흔들릴 때 필터 역할을 해야 합니다.
- 단순성 유지: 계산은 복잡하지 않되, 파라미터 의존성을 낮춰야 합니다.
계산식(권장 기본값: RSI 기간 n=14, ATR 기간 m=14~20)
- 기본 지표 계산
- RSIₙ: 전통적 방식(와일더 스무딩)으로 산출
- ATRₘ: True Range의 m기간 평균
- 정규화 ATR: nATR% = (ATRₘ / 종가) × 100
(가격 스케일 차이를 제거해 종목 간 비교성을 확보)
- 기준 변동성(Base Volatility) 정의
- bATR% = nATR%의 중위수(또는 EMA), 기간은 m과 동일하게 시작(권장: 20)
중위수를 쓰면 이상치에 둔감해집니다.
- 스케일 보정 계수(Scaling factor)
- SF = clamp( bATR% / (nATR% + ε), 0.5, 1.5 )
- ε는 0으로 나눔 방지용 소량(예: 1e-8)
- clamp로 과도한 확대/축소를 제한
- 변동성 조정 RSI
- vaRSI = 50 + (RSIₙ − 50) × SF
- 변동성이 커지면(SF<1) RSI 편차를 줄여 거짓 신호를 완화
- 변동성이 낮으면(SF>1) 미약한 추세 신호를 보강
해석 팁: vaRSI는 여전히 0~100 사이에 위치하지만, 동일한 수치라도 상황별 맥락이 다릅니다. 예를 들어 vaRSI 60이더라도 고변동 상태에서 억제된 60인지, 저변동에서 확장된 60인지 확인하면 후속 전략이 달라집니다.
대안 설계(선택)
- 문턱 보정형(Threshold-Adjusted RSI)
- 상향 돌파 기준: 50 + T × SF, 하향 돌파: 50 − T × SF (T 권장 5~10)
- 신호는 단순히 “50±T”가 아니라 변동성에 따라 문턱이 넓어졌다 좁아집니다.
- z-정규화형
- zRSI = (RSI−50) / rolling_std(RSI) → zRSI를 nATR%로 한 번 더 나눔
- 민감하지만 과최적화 위험이 있어 초보자에겐 비추.
실전 규칙: 변동성 조정 RSI(vaRSI) 계산법과 매매 시나리오
계산식만으로는 부족합니다. 어디서 사고, 어디서 팔고, 언제 포지션 크기를 줄이고 늘릴지가 전략의 성패를 가릅니다. 아래 규칙은 현장에서 바로 적용하기 쉬운 기본 세트입니다.
1) 신호 정의
- 상승 신호: vaRSI가 상승 방향으로 55선 돌파(직전 봉 대비 증가)
- 하락 신호: vaRSI가 하락 방향으로 45선 하향 돌파(직전 봉 대비 감소)
- 필터: nATR%가 최근 20봉 중 상위 10%에 있을 때(고변동 구간), 첫 신호는 절반만 집행
- 이유: 고변동 구간의 첫 신호는 가짜일 확률이 높음. 두 번째 확인 신호에서 증액.
문턱(55/45)은 종목·주기에 맞춰 60/40 또는 52/48로 조정하세요. 변동성 낮은 종목은 좁게, 높은 종목은 넓게.
2) 포지션 사이징(ATR 기반)
- 1R = k × ATRₘ (k는 0.5~1.5 사이)
- 진입 수량 = 계좌 위험 허용치(예: 1%) / 1R
- 포지션 증감: vaRSI가 60→65→70으로 계단 상승할 때마다 ⅓씩 증액, 70 상회 구간 진입 시 더 이상 증액 금지(과열 경계).
3) 진입·청산 규칙(예시; 1시간봉/일봉 공용)
롱(매수)
- vaRSI 55 상향 돌파 + 종가가 20EMA 위.
- nATR%가 bATR%보다 낮거나 비슷(고변동 초기 피하기).
- 스탑: 진입가 − 1.2×ATRₘ.
- 익절 1차: R=1에서 50% 청산, 나머지는 트레일링 스탑(1×ATRₘ).
- vaRSI가 50 하향 이탈 시 잔여분 전량 청산.
숏(매도)
- vaRSI 45 하향 돌파 + 종가가 20EMA 아래.
- nATR%가 bATR%와 유사하거나 낮음(과열 변동기 첫 신호 회피).
- 스탑: 진입가 + 1.2×ATRₘ.
- 익절/트레일링은 롱과 대칭.
4) 시나리오 운영 팁
- 갭 발생: nATR% 급등 → 첫 신호는 절반만. 갭 메우기 여부 확인 후 증액.
- 레인지→추세 전환: vaRSI가 50 부근에서 수렴(±3p 이내) 후 방향성 이탈할 때, nATR%가 bATR% 아래면 초기 추세일 가능성↑.
- 과열 구간: vaRSI ≥ 70 또는 ≤ 30 구간 지속 시, **분할 청산 + 스탑 업(다운)**으로 이익 잠금.
5) 타임프레임별 권장 파라미터
15분 | 9~14 | 14 | 58/42 | 신호 많음, 수수료·슬리피지 주의 |
1시간 | 14 | 14~20 | 55/45 | 균형적, 데이트레이딩 적합 |
일봉 | 14~21 | 20 | 55/45 또는 60/40 | 스윙/포지션 트레이딩 |
백테스트와 실무 적용: 시장별 파라미터 최적화와 리스크 관리
전략은 검증 → 투입 자본 대비 리스크 산정 → 실행의 순서가 중요합니다. 아래 체크리스트로 시행착오를 줄이세요.
1) 백테스트 체크리스트
- 데이터 품질: 분봉은 체결강도·수수료 적용 필수, 일봉은 배당·분할 조정 확인.
- 워크포워드 테스트: 70/30 구간분할(학습/검증) + 롤링으로 과최적화 방지.
- 멀티마켓 검증: 코스피/나스닥/FX/암호화폐 등 레짐이 다른 시장에서 동시에 테스트.
- 로버스트니스: 문턱(55/45)을 ±3p 변화시켜도 성과가 비슷해야 신뢰 가능.
- 리스크 지표: MDD, 월별 손익 변동성, 승률보다 손익비/페이오프에 주목.
2) 파라미터 최적화 요령
- 문턱 최적화: 변동성 낮은 종목은 52/48, 높은 종목은 60/40 쪽이 흔들림을 줄임.
- **SF 클램프(0.5~1.5)**는 가능하면 고정: 과도한 가중은 오버핏 유발.
- bATR% 산출 방식: 중위수 vs EMA를 비교. 노이즈 많으면 중위수 승.
- nATR% 기간: ATR 기간과 동일 유지(단순성·일관성 확보).
3) 실행 단계 리스크 관리
- 포지션 상한: 종목당 자금 10~20% 내, 동시 상관 종목 3개 이내.
- 연속 손실 제한: 3연패 시 자동 휴식(데이터 재점검).
- 이벤트 리스크: 실적/금통위/거시지표 발표일에는 신규 진입 금지 또는 사이즈 절반.
- 체계적 기록: 진입 사유(vaRSI 크로스, nATR% 수준), 청산 이유(트레일/신호 반전)를 로그로 남겨 리파인 루프를 돌리세요.
4) 실제 예시(개념 시뮬레이션)
- 상승 추세 초입: nATR%가 bATR% 아래에서 vaRSI가 55 돌파, 종가가 20EMA 위. 첫 진입 1R, R=1 도달 시 50% 청산 후 나머지 트레일.
- 가짜 돌파 억제: 뉴스 급등으로 nATR% 상위 10% 급등, vaRSI 55 돌파라도 절반만 진입. 다음 봉 유지·확인 후 증액.
- 레인지 탈출 실패: vaRSI 55 돌파 직후 2봉 내 50 하향 재이탈 → 손절. 손실을 작게 끊는 것이 핵심.
결론
RSI는 빠르고 직관적이지만 변동성 변화에 취약합니다. ATR을 곁들이면 신호의 단단함을 크게 높일 수 있습니다. 제안한 vaRSI(50± 편차 × SF)는 고·저변동 국면 모두에서 일관된 잣대를 제공합니다. 문턱과 클램프 범위를 과도하게 만지지 말고, 멀티마켓·워크포워드 검증으로 탄탄하게 다져 보세요. 전략의 디테일은 시장이 알려 줍니다. 여러분은 기준을 지키면 됩니다.
FAQ
Q1. vaRSI의 55/45 문턱은 왜 기본값인가요?
→ 50선 근처의 미세한 요동을 피하면서도, 추세 초입 신호를 빠르게 잡기 위한 균형점입니다. 변동성이 낮은 자산은 52/48, 높은 자산은 60/40 추천.
Q2. ATR 기간을 14 대신 20으로 늘리면 뭐가 달라지나요?
→ 단기 뉴스성 변동에 둔감해져 거짓 신호가 줄지만, 대신 신호가 늦습니다. 종목 특성과 타임프레임에 맞춰 타협하세요.
Q3. EMA나 SMA 대신 와일더 방식이 꼭 필요한가요?
→ 필수는 아닙니다. 다만 와일더 스무딩은 RSI·ATR의 설계 철학과 일관성이 있어 기본으로 권합니다.
Q4. 추세 지표(예: MACD)와 함께 써도 되나요?
→ 됩니다. 다만 vaRSI 자체가 변동성 보정된 모멘텀이므로, 중복 확인으로 과도한 필터링이 되지 않도록 룰을 단순화하세요.
Q5. 포지션 증액은 어떤 기준으로 하나요?
→ vaRSI가 60→65→70으로 상향 계단식일 때만 ⅓씩, 70 상회 구간에서는 증액 중단. 반대로 50선 재이탈 시 증액분부터 환원.
Q6. 크립토 같은 초고변동 자산도 유효한가요?
→ 유효합니다. 다만 문턱을 60/40으로 넓히고, 스탑을 1.5×ATR로 다소 여유 있게 두는 편이 안전합니다.