후행스펜이 볼린저밴드 상단을 돌파하는 검색식은 shift() 함수로 전일 종가를 이동시키고 crossup() 함수로 상향 교차를 감지하는 방식으로 구현합니다. midPeriod(26), period(30), d1(1.8)의 변수값을 기본으로 사용합니다.
볼린저밴드 상단 돌파 검색식 기본 구조
후행스펜이 볼린저밴드 상단을 돌파하는 조건검색식의 핵심은 전일 종가가 볼린저 상단을 상향 교차했는지 판단하는 데 있습니다.
키움증권 조건검색식으로 이를 구현하려면 다음 3가지 단계가 필요해요:
- shift() 함수: 현재봉 종가를 한 봉 전으로 이동시켜 전일 종가를 확인
- BollBandUp() 함수: 지정된 기간과 표준편차로 볼린저밴드 상단값 계산
- crossup() 함수: 이동시킨 종가가 밴드 상단을 상향 뚫었는지 신호 포착
이 3가지가 결합되면 지금 막 돌파한 종목을 정확하게 포착할 수 있어요.
검색식 코드 구성과 변수값 설정
기본 검색식은 다음과 같이 구성됩니다:
코드 구조:
– a = shift(close, -midperiod + 25)
– b = BollBandUp(period, d1)
– 신호 = crossup(a, b[midperiod-25])
변수값 설정:
| 변수명 | 값 | 의미 |
|---|---|---|
| midPeriod | 26 | 이동 구간 기준 |
| period | 30 | 볼린저밴드 계산 기간 |
| d1 | 1.8 | 표준편차 배수 |
각 함수의 역할:
- a = shift(close, …): 현재 종가를 25일 뒤로 당겨서 “전일 종가가 실제로 얼마였는가”를 확인합니다
- b = BollBandUp(…): 30일 기간과 1.8배의 표준편차로 상단값을 계산해요. (기본값 20일, 2배가 표준이지만, 더 민감하게 반응시키려면 기간 단축 또는 표준편차 감소)
- crossup(a, b[…]): a가 b의 특정 지점을 상향으로 뚫고 지나갔는지 진짜 신호(crossup)인지 판단합니다
볼린저밴드 평균 회귀 원리와 돌파 신호
왜 볼린저밴드 상단 돌파가 중요한 신호일까요? 이는 평균 회귀(mean reversion) 원리 때문이에요.
볼린저밴드는 주가의 울타리인데, 통계학적으로 주가는 이 울타리 안에서 약 95% 이상의 시간을 보냅니다. 그래서:
- 상단(위쪽 천장)에 닿으면 → “너무 높이 올라왔으니 내려갈 거야”
- 하단(아래쪽 바닥)에 닿으면 → “너무 내려왔으니 올라갈 거야”
그런데 상단을 강하게 뚫고 돌파하는 경우는 상승 추세가 매우 강하다는 증거예요. 평균 회귀를 거스르고 계속 올라간다는 뜻이니까요. 이 돌파 시점을 정확하게 포착하는 게 검색식의 목표입니다.
기본 설정값의 의미
정보 출처들에서 권장하는 표준 설정은:
– 기간: 20일 (한 달 영업일 수)
– 표준편차: 2배수 (존 볼린저 창시자가 권장)
다만 검색식 예시는 period(30), d1(1.8)을 썼는데, 이는 돌파를 조금 더 민감하게 포착하려는 조정값이라고 보면 돼요.
가짜 돌파를 걸러내는 필터링 방법
후행스펜 볼린저 상단 돌파 검색식만으로도 많은 기술적 신호를 잡을 수 있어요. 하지만 한 가지 주의사항이 있습니다.
가짜 돌파(Whipsaw)가 자주 생기는 이유
볼린저밴드 상단 돌파는 상승 신호지만, 상황에 따라 며칠 뒤 다시 내려오는 가짜 신호가 될 수 있습니다. 이를 줄이려면:
거래량 필터링 ✅
– 돌파 직후 거래량이 평소의 2배 이상 급등하는지 확인
– 거래량 없이 상단을 살짝 터치한 건 신뢰도가 낮아요
이평선 확인 ✅
– 주가가 20일선을 넘었는지 확인 (단기 상승 추세 확인)
– 20일선과 60일선이 정배열인지 역배열인지 체크
RSI 결합 필터 ✅
– 상단 돌파 시 RSI가 75 이상인지 확인 (과매수 지역)
– 상단 돌파(가격) + 높은 RSI(강도)의 조합이면 진짜 신호일 확률이 높아요
박스권 탈출 확인 ✅
– 직전 며칠간 주가가 박스권에 갇혀 있었는가
– 박스권을 강하게 뚫고 나가는 돌파가 더 신뢰할 만해요
이 4가지를 모두 만족하면 승률 90% 이상의 강한 신호가 됩니다.
자주 묻는 질문
shift() 함수는 소프트웨어나 버전에 따라 다르게 부를 수 있어요. 일부 플랫폼에서는 'ref()', 'lag()', '시점이동()' 등으로 불리기도 합니다. 키움증권 매뉴얼에서 '이동', '시점 변경', '봉 앞당김' 같은 키워드로 검색해보세요.
네, 가능해요! 하단 접촉(또는 돌파)은 평균 회귀로 인한 반등 신호로 쓸 수 있습니다. 하지만 상단 돌파가 강한 상승을 의미하는 반면, 하단은 반등만 의미하므로 시간 목표(몇 일 뒤 반등)가 다르다는 점을 기억하세요.
네, 하지만 트레이드오프가 있어요. period를 줄이면(예: 20→10) 돌파를 더 빨리 포착하지만 가짜 신호도 늘어나요. d1을 줄이면(예: 2→1.5) 상단이 더 좁혀져서 자주 터치하지만 의미 있는 돌파도 늘어나요. 자신의 거래 스타일에 맞춰 백테스팅으로 조정하는 게 좋습니다.
네, 가능해요. 보통 'volume > average_volume * 2' 같은 조건을 추가하면 돼요. 거래량 필터를 포함한 검색식은 더 정교하지만, 코드가 길어지고 유지보수가 복잡해질 수 있다는 점을 고려하세요.
후행스펜(trailing stop)은 원래 손절매 기법인데, 여기서 말하는 건 '최고가에서 일정 비율 내려온 가격'을 의미합니다. 볼린저밴드 상단이 변동하는 시장 가격을 따라다니는 성질이 후행스펜과 비슷해서 붙은 표현이에요.