거래정지 종목이 "역사적 과매도"로 뜬 날 — 죽은 데이터가 만드는 가짜 신호
가격이 멈춘 종목에서는 RSI·ATR·거래량 지표가 조용히 퇴화해 강한 매수 신호를 냅니다. 실제 사고의 경과와 데이터가 살아 있는지 확인하는 방법을 정리했습니다.
최종 수정 2026-09-18
무슨 일이 있었나
어느 날 이 서비스의 리포트에 한 코스닥 종목이 다음과 같은 등급으로 올라왔습니다. 초단기·단기·중기·장기 모두 매수, 종합 의견은 "적극 매수 — 역사적 과매도 도달, V자 회복 기대". 위험 지표는 전부 "안전"이었습니다.
그 종목은 거래가 정지된 상태였습니다. 최근 250거래일의 종가가 전부 같은 가격이었고 거래량은 매일 0이었습니다. 살 수도 팔 수도 없는 종목에 시스템이 낼 수 있는 가장 강한 매수 신호가 붙은 것입니다.
지표는 어떻게 퇴화하는가
- RSI
- RSI는 최근 상승폭의 평균을 상승폭과 하락폭 평균의 합으로 나눈 값입니다. 가격이 전혀 움직이지 않으면 분자도 분모도 0에 가까워지고, 계산 방식에 따라 결과가 0 근처의 극단값으로 떨어집니다.
- 한계 RSI 20 아래는 "극단적 과매도"로 해석됩니다. 이 서비스에는 그 경우 다른 점수를 무시하고 적극 매수로 올리는 규칙이 있었고, 퇴화한 RSI가 그 규칙을 켰습니다.
- ATR (평균 변동폭)
- 고가·저가·종가가 매일 같으면 하루 변동폭은 0입니다. ATR은 0으로 수렴합니다. 변동폭이 작다는 것은 보통 "안정적"이라는 뜻이므로 위험 지표는 모두 양호하게 나옵니다.
- 한계 ATR은 손절 폭과 수량 계산의 분모입니다. 0에 가까운 ATR은 "손절 폭이 거의 없으니 수량을 얼마든지 늘려도 된다"는 계산을 만듭니다.
- 거래량 비율
- 오늘 거래량을 평균 거래량으로 나눈 값입니다. 둘 다 0이면 결과는 정의되지 않거나 0이고, "거래량 급증 없음 = 이상 없음"으로 읽힙니다.
- 상관·군집
- 움직이지 않는 종목은 어떤 종목과도 상관이 0에 가깝게 나옵니다. 분산 분석에서는 "다른 종목과 따로 움직이는 훌륭한 분산 자산"처럼 보입니다.
네 경우 모두 오류 메시지가 없습니다. 0으로 나누는 예외조차 나지 않는 경우가 많습니다. 숫자는 정상적으로 계산되고, 그 숫자는 정상 종목의 "좋은 상태"와 같은 모양을 하고 있습니다.
정지가 아니어도 생긴다
첫 조치는 거래정지로 판정된 종목의 매매 등급을 "판정 불가"로 덮어쓰는 것이었습니다. 하지만 이것은 증상만 막은 것이었습니다. 거래정지가 아닌데 같은 경로를 타는 종목이 있었습니다.
거래가 매우 드문 종목입니다. 한 종목은 750거래일 중 46%가 전일과 종가가 같았습니다. 정지된 것은 아니지만 절반 가까운 날에 아무도 거래하지 않았습니다. 이런 종목의 RSI와 ATR은 정상 종목과 같은 방식으로 해석할 수 없습니다.
그래서 "죽은 봉의 비율"을 따로 셉니다. 최근 봉 가운데 가격 변동이 없거나 거래량이 0인 봉이 20%를 넘으면, 극단적 RSI를 과매도가 아니라 데이터 퇴화로 보고 그 신호에 따른 가산점을 끕니다. 다른 지표의 배점은 건드리지 않았고, 정상 종목의 등급이 바뀌지 않는다는 것을 확인했습니다.
같은 문제가 백테스트를 망가뜨렸다
같은 종류의 종목이 백테스트에도 들어가 있었습니다. 백테스트는 거래마다 "손절 폭의 몇 배를 벌었는가"(R)를 계산하는데, 그 분모가 ATR입니다. 250일 동안 종가가 고정되어 ATR이 0.00000002였던 종목에서 거래 비용이 12억 R로 계산되었고, 전략 전체의 순기대값이 −118,288R로 찍혔습니다.
"ATR이 0보다 큰가"라는 검사는 통과했습니다. 0보다 크긴 했기 때문입니다. 지금은 진입 시점의 ATR이 가격의 0.2%에 못 미치는 표본을 제외합니다. 정상 종목의 ATR은 가격의 1~5%이므로 영향을 받지 않습니다.
방어 코드는 "0인가"가 아니라 "말이 되는 범위인가"를 물어야 합니다. 0에 아주 가까운 값은 0보다 더 위험합니다. 예외를 내지 않고 터무니없는 결과를 만들기 때문입니다.
휴장일도 같은 함정이다
가격이 멈추는 가장 흔한 이유는 거래정지가 아니라 휴장입니다. 많은 데이터 시스템은 휴장일에 직전 거래일의 값을 그대로 채워 넣습니다. 화면에 빈 날짜가 생기지 않게 하려는 것이지만, 그 값을 "새로운 하루"로 세면 문제가 됩니다.
- 예측 채점에서 다음 날 가격으로 복제된 값을 집으면 실제 수익률이 0.00%가 됩니다. 이 서비스에서는 하루치 예측 32건 중 30건이 이렇게 "변동 없음"으로 굳은 적이 있습니다.
- 같은 날이라도 주식은 휴장이고 암호화폐는 거래됩니다. 날짜 하나로 전 종목의 휴장 여부를 정하면 둘 중 하나는 반드시 틀립니다.
- 휴장일 목록을 한 해치만 넣어 두면 이듬해부터 모든 공휴일이 조용히 "개장일"이 됩니다. 미국 휴장일은 규칙으로 계산할 수 있지만, 음력 명절과 대체공휴일이 있는 국내는 계산할 수 없어 해마다 확인해야 합니다.
직접 확인하는 법
- 차트가 수평선입니까? 며칠 이상 같은 종가가 이어진다면 지표를 읽지 않습니다.
- 거래량이 0인 날이 자주 보입니까? 하루 거래대금이 내 주문 금액의 수십 배가 안 되는 종목은 지표 이전에 매매 자체가 어렵습니다.
- 극단적인 지표값(RSI 10, 변동성 0%)을 만나면 기회보다 데이터 이상을 먼저 의심합니다. 정말로 극단적인 상황은 드물고, 데이터가 깨진 경우는 흔합니다.
- 관리종목, 거래정지, 상장폐지 사유 발생 여부를 공시에서 확인합니다.
살 수 없는 종목에 매수 신호를 내는 것은 어떤 백테스트로도 정당화되지 않습니다. 지표를 믿기 전에 그 지표가 계산된 데이터가 살아 있는지부터 확인해야 합니다.
광고