볼린저밴드 스퀴즈 검색식 — 밴드폭 좁아진 종목 찾는 법과 함정 3가지
밴드폭이 좁아진 종목을 실제로 뽑아내는 검색식을 HTS와 스크리너 양쪽으로 정리했습니다. 스퀴즈를 숫자로 정의하는 기준과, 이 신호를 단독으로 쓰면 안 되는 이유까지 다룹니다.
“밴드가 좁아지면 곧 큰 움직임이 나온다.” 볼린저밴드를 다루는 글은 거의 예외 없이 이 문장으로 끝납니다. 그런데 정작 오늘 어떤 종목의 밴드가 좁아져 있는지 알아내는 방법은 아무도 알려주지 않습니다.
이유가 있습니다. “좁다”는 말이 숫자가 아니기 때문입니다. 검색식은 숫자로만 만들 수 있는데, 대부분의 설명은 그림까지만 보여주고 멈춥니다.
이 글에서는 스퀴즈를 검색식에 넣을 수 있는 형태로 정의하고, 실제로 종목을 뽑는 절차를 HTS와 스크리너 양쪽으로 비교합니다. 그리고 마지막에 이 신호를 단독으로 쓰면 왜 거의 쓸모가 없는지를 실제 숫자로 보여드립니다.
볼린저밴드 스퀴즈가 정확히 무엇을 재는가
밴드부터 정리하겠습니다. 볼린저밴드는 20일 이동평균(중심선)을 기준으로 위아래에 표준편차의 2배를 더하고 뺀 선입니다. 표준편차는 최근 20일 종가가 평균에서 얼마나 흩어져 있는지를 재는 값이니, 밴드의 폭은 곧 최근 변동성의 크기입니다.
그래서 스퀴즈는 밴드 자체가 아니라 밴드의 폭으로 정의합니다. 이걸 밴드폭(bandwidth)이라고 부르고, 계산은 이렇게 합니다.
중심선 = 20일 종가 이동평균
표준편차 = 20일 종가 표준편차
상단 = 중심선 + 2 × 표준편차
하단 = 중심선 - 2 × 표준편차
밴드폭 = (상단 - 하단) / 중심선
중심선으로 나누는 이유는 주가 수준이 다른 종목끼리 비교하기 위해서입니다. 10만 원짜리와 2천 원짜리의 밴드 간격을 원 단위로 비교하면 아무 의미가 없습니다.
스퀴즈는 방향을 알려주지 않는 신호입니다. “곧 크게 움직인다”까지가 이 지표가 말할 수 있는 전부이고, 위로 갈지 아래로 갈지는 별도의 근거가 필요합니다. 스퀴즈를 매수 신호로 소개하는 글이 많은데, 지표의 정의상 그렇게 될 수 없습니다.
“좁다”를 숫자로 바꾸는 두 가지 기준
밴드폭을 구했으면 다음 질문은 “얼마나 작아야 좁은 것인가”입니다. 여기서 기준이 갈립니다.
| 기준 | 방식 | 문제 |
|---|---|---|
| 절대값 | 밴드폭 < 0.05 처럼 고정값 | 종목별 변동성 체질이 달라 우량주만 잔뜩 걸리거나 아무것도 안 걸림 |
| 상대 순위 | 최근 N일 중 최저 수준 | 기준일 N을 정해야 하고, N에 따라 결과가 크게 달라짐 |
실무에서 쓸 만한 건 상대 순위 쪽입니다. 종목마다 평소 변동성이 다르기 때문에, “이 종목 기준으로 최근 들어 가장 조용하다”가 훨씬 안정적인 정의입니다.
kscreener는 최근 120거래일(약 반 년) 중 밴드폭이 최저 수준일 때를 스퀴즈로 판정합니다. 표준편차는 증권사 HTS 관행에 맞춰 모표준편차를 씁니다. 이 두 가지는 임의로 정한 값이고, 바꾸면 결과가 달라집니다. 기준을 밝히지 않은 스퀴즈 목록은 비교가 불가능하다는 점을 기억해 두세요.
방법 1 — HTS 조건검색식으로 직접 짜기
키움증권 영웅문 기준입니다. 다른 증권사도 구조는 비슷합니다.
- 조건검색(화면번호 0150)에서 기술적분석 → 변동성지표 → Bollinger Band를 찾습니다.
- 대부분의 HTS는 밴드폭을 바로 제공하지 않습니다. 상단·하단 값을 각각 불러온 뒤 사용자 수식으로
(상단 - 하단) / 중심선을 만들어야 합니다. - 만든 밴드폭에 “최근 120일 최저” 조건을 겁니다. 수식 편집기에서
Lowest(밴드폭, 120)과 현재 밴드폭을 비교하는 형태가 됩니다. - 거래량이 지나치게 적은 종목이 결과를 오염시키므로 20일 평균 거래대금 하한을 함께 겁니다.
장점은 내 기준으로 자유롭게 조정할 수 있다는 것입니다. 단점은 사용자 수식 문법을 익혀야 하고, 증권사마다 함수 이름이 달라서 검색해도 그대로 쓸 수 있는 예제를 찾기 어렵다는 점입니다. 조건검색식 자체가 막막하다면 RSI 과매도 종목 찾는 3가지 방법에서 같은 절차를 RSI로 더 자세히 다뤘습니다.
방법 2 — 스퀴즈 조건이 이미 계산된 스크리너 쓰기
kscreener는 국내 상장 종목 전체의 밴드폭을 매일 계산해 두고, 조건 목록에서 체크 한 번으로 거를 수 있게 해뒀습니다.

결과는 이렇게 나옵니다. 아래는 2026년 7월 28일 종가 기준, 최근 1주 안에 스퀴즈가 발생한 종목을 시가총액 순으로 정렬한 화면입니다.

| HTS 조건검색식 | kscreener | |
|---|---|---|
| 준비 시간 | 수식 작성에 30분~1시간 | 체크 1회 |
| 기준 변경 | 자유 | 고정(120거래일) |
| 다른 조건과 조합 | 가능 | 가능 |
| 과거 이력 확인 | 어려움 | 신호별 발생 시점 표시 |
| 비용 | 계좌 필요 | 무료 |
그런데 이렇게만 하면 안 되는 이유
여기가 이 글의 핵심입니다. 위 방법으로 목록을 뽑고 나면 대개 세 가지 문제에 부딪힙니다.
함정 1 — 스퀴즈는 생각보다 흔합니다
2026년 7월 28일 종가 기준으로 전체 2,566개 종목 중 당일 스퀴즈 조건을 만족한 종목이 68개, 최근 1주(5거래일) 안에 한 번이라도 만족한 종목이 179개였습니다. 1주 기준으로 보면 전체의 약 7%에 해당합니다.
100종목이 넘는 목록은 스크리닝 결과가 아니라 그냥 또 다른 시장입니다. 스퀴즈를 단독 조건으로 쓰면 걸러내는 효과가 거의 없다는 뜻이고, 실제로는 추세·거래대금·다른 신호와 겹쳐서 써야 목록이 다룰 만한 크기로 줄어듭니다.
함정 2 — 방향이 없으니 손실 구간이 대칭입니다
앞에서 짚은 대로 스퀴즈는 방향을 말해주지 않습니다. 그런데 사람은 목록을 보면 자연히 매수 후보로 읽습니다. 아래는 위 목록 맨 위에 있던 종목의 6개월 일봉입니다.

밴드가 좁아진 것은 분명히 보입니다. 하지만 이 그림 어디에도 위로 벌어질지 아래로 벌어질지에 대한 정보는 없습니다. 스퀴즈를 근거로 방향을 걸면, 맞을 확률과 틀릴 확률을 대칭으로 떠안는 셈입니다.
함정 3 — 좁아진 상태가 오래 이어지기도 합니다
“곧 큰 움직임”에서 곧이 언제인지는 정해져 있지 않습니다. 밴드폭이 최저를 찍은 뒤 몇 주 동안 더 조용히 흐르는 경우가 드물지 않고, 그 사이에 진입해 있으면 시간만 소모합니다. 돌파가 나온 뒤에도 하루 이틀 만에 되돌려 반대로 가는 경우가 있어, 돌파 확인 규칙을 미리 정해두지 않으면 매매가 흔들립니다.
kscreener는 신호별 과거 통계를 제공하지만 스퀴즈는 백테스트 대상에서 제외해 두었습니다. 진입 시점을 특정할 수 있는 신호(크로스, 터치, 다이버전스)와 달리 스퀴즈는 “상태”라서, 언제 샀다고 볼지 정하는 순간 결과가 그 규칙에 좌우되기 때문입니다. 조건을 정하기 나름인 숫자를 승률이라고 내놓는 것보다 제공하지 않는 편이 맞다고 판단했습니다.
정리
- 스퀴즈는 밴드가 아니라 밴드폭으로 정의합니다.
(상단 - 하단) / 중심선 - “좁다”의 기준은 절대값보다 최근 N일 중 최저가 안정적입니다. kscreener는 120거래일을 씁니다
- HTS는 자유도가 높지만 사용자 수식을 직접 짜야 하고, 스크리너는 기준이 고정된 대신 즉시 확인됩니다
- 스퀴즈는 방향을 알려주지 않고, 2026-07-28 기준 1주 내 179종목이 걸릴 만큼 흔합니다. 단독 조건으로는 거의 걸러지지 않습니다
- 실제로 쓰려면 추세·거래대금·다른 신호와 겹치고, 돌파 확인 규칙을 미리 정해두어야 합니다
다음 글에서는 스퀴즈 다음으로 자주 묻는 MACD 골든크로스 검색식을 같은 방식으로 다루겠습니다. 골든크로스는 스퀴즈와 반대로 진입 시점이 뚜렷해서 통계를 붙일 수 있는 신호입니다.