거래정지 종목이 "역사적 과매도"로 뜬 날 — 죽은 데이터가 만드는 가짜 신호

가격이 멈춘 종목에서는 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건이 이렇게 "변동 없음"으로 굳은 적이 있습니다.
  • 같은 날이라도 주식은 휴장이고 암호화폐는 거래됩니다. 날짜 하나로 전 종목의 휴장 여부를 정하면 둘 중 하나는 반드시 틀립니다.
  • 휴장일 목록을 한 해치만 넣어 두면 이듬해부터 모든 공휴일이 조용히 "개장일"이 됩니다. 미국 휴장일은 규칙으로 계산할 수 있지만, 음력 명절과 대체공휴일이 있는 국내는 계산할 수 없어 해마다 확인해야 합니다.

직접 확인하는 법

  1. 차트가 수평선입니까? 며칠 이상 같은 종가가 이어진다면 지표를 읽지 않습니다.
  2. 거래량이 0인 날이 자주 보입니까? 하루 거래대금이 내 주문 금액의 수십 배가 안 되는 종목은 지표 이전에 매매 자체가 어렵습니다.
  3. 극단적인 지표값(RSI 10, 변동성 0%)을 만나면 기회보다 데이터 이상을 먼저 의심합니다. 정말로 극단적인 상황은 드물고, 데이터가 깨진 경우는 흔합니다.
  4. 관리종목, 거래정지, 상장폐지 사유 발생 여부를 공시에서 확인합니다.

살 수 없는 종목에 매수 신호를 내는 것은 어떤 백테스트로도 정당화되지 않습니다. 지표를 믿기 전에 그 지표가 계산된 데이터가 살아 있는지부터 확인해야 합니다.

광고