이동평균 채널은 이름이 여러 가지로 쓰이는 지표다. 종가의 이동평균에 비율을 얹는 엔벨로프로 부르기도 하고, 고가와 저가를 각각 평균 내서 위아래 띠를 만들기도 한다. 이 글은 뒤쪽을 쓴다. 상단은 고가의 이동평균, 하단은 저가의 이동평균이다. 띠의 폭이 곧 최근 하루 변동폭의 평균이라, 변동성이 큰 종목일수록 띠가 넓어진다.
KB금융을 고른 이유는 구간의 모양이 뚜렷해서다. 7월 말에 저가 156,000원까지 밀렸다가 9월 중순에 고가 181,700원까지 올랐고, 그 뒤 10월 들어 다시 내려왔다. 오르고 꺾이는 한 바퀴가 50거래일 안에 다 들어 있다. 채널 돌파가 추세 시작을 알려 주는지, 그냥 흔들림에 반응하는지 가르기 좋은 표본이다.
종목 KB금융 (105560)
구간 2026-07-27 ~ 2026-10-08 (50거래일)
출처 stockanalysis.com 일봉
--------------------------------------------------
최고가 181,700원 (09-14)
최저가 156,000원 (07-29)
종가 최고 181,600원 (09-14)
종가 최저 160,000원 (08-20)
마지막 종가 162,800원 (10-08)이 글은 지표 계산 결과를 기록한 학습 자료이며 투자 권유가 아니다.

계산식과 파라미터
채널은 세 줄이다. 기간을 n 이라 하면 아래와 같다.
상단 Upper(t) = (High(t-n+1) + ... + High(t)) / n
하단 Lower(t) = (Low(t-n+1) + ... + Low(t)) / n
중심 Mid(t) = (Upper(t) + Lower(t)) / 2
--------------------------------------------------
폭 Upper(t) - Lower(t) = SMA(High - Low, n)
상향 신호 Close(t) > Upper(t)
하향 신호 Close(t) < Lower(t)폭이 SMA(High-Low) 와 같다는 점이 중요하다. 이 띠는 하루 값폭의 평균이라서, 종가가 띠 밖으로 나가려면 평소 하루 변동 한 번 정도만 움직이면 된다. 볼린저 밴드의 표준편차 2배 띠보다 훨씬 좁다. 그래서 밖으로 나가는 일이 자주 생긴다.
파라미터는 20을 기본으로 골랐다. 한 달 영업일에 가깝고 이동평균 지표에서 가장 흔한 값이다. 10과 30은 민감도 확인용이다. 계산은 numpy 로 직접 구현했고 지표 라이브러리는 쓰지 않았다.
예열 구간 때문에 유효값이 줄어든다는 점을 먼저 적는다. 시세는 50거래일치만 받았다. 기간 20 이면 처음 19일은 값이 없어서 유효한 날이 31거래일(8월 24일부터)이다. 기간 10 은 41일, 기간 30 은 21일이다. 표본이 작으므로 아래 수치는 이 구간의 기록으로만 읽어야 한다. 9월 24일부터 26일은 추석 연휴로 일봉이 없어서, 아래의 5거래일은 달력일이 아니라 일봉 행 기준이다. 신호일을 하루로 보면 같은 날 시작한 5일 수익률이 서로 겹치고, 연속으로 켜진 신호끼리는 독립이 아니라는 점도 같이 기억해 둔다. 상향 신호 15번은 사실 세 덩어리(3일, 11일, 1일)로 묶인다.
채널 안에는 거의 머무르지 않았다

유효한 31거래일 중 종가가 채널 안에서 끝난 날은 9일뿐이다. 상단 위가 15일, 하단 아래가 7일이다. 마지막 날(10-08) 기준 상단은 175,700원, 하단은 170,965원, 중심선은 173,332.5원이고 폭은 4,735원이다. 마지막 종가 162,800원은 하단보다 8,165원 아래에 있다.
상태가 바뀐 날만 순서대로 적으면 이렇다.
- 08-24 하단 이탈 (종가 163,100원)
- 08-25 채널 복귀
- 08-28 상단 돌파 (171,600원), 09-01까지 3거래일 상단 위
- 09-02 채널 복귀
- 09-03 상단 돌파 (177,900원), 이후 09-17까지 연속 11거래일 상단 위
- 09-18 채널 복귀, 09-21 다시 돌파, 09-22 복귀
- 09-30 하단 이탈 (168,800원), 마지막 날까지 연속 하단 아래
신호 17번을 전부 늘어놓는다
신호일 이후 5거래일 종가가 신호 방향으로 움직였으면 적중, 반대면 빗나감으로 셌다. 마지막 5거래일의 신호는 결과가 아직 없어서 뺐다. 그래서 신호는 17번이다.

상향 신호는 15번 중 8번이 올랐다. 08-28(+0.23%), 08-31(+1.50%), 09-01(+1.46%), 09-04(+3.43%), 09-07(+3.24%), 09-08(+1.21%), 09-09(+2.73%), 09-10(+3.34%)이다. 7번은 빗나갔다. 09-03(-2.53%), 09-11(-1.69%), 09-14(-2.26%), 09-15(-0.06%), 09-16(-1.98%), 09-17(-2.79%), 09-21(-4.90%)이다.
하향 신호는 2번이다. 08-24는 5거래일 뒤 +6.25%로 반등해서 빗나갔다. 09-30은 -3.55%로 맞았다.
빗나간 쪽을 더 들여다볼 가치가 있다. 09-14는 종가 181,600원으로 이 구간의 종가 최고이면서 상단 돌파 신호가 켜진 날이다. 5거래일 뒤 종가는 -2.26%였다. 가장 강하게 돌파한 날이 사실상 꼭지였다. 09-21도 마찬가지다. 상단을 한 번 더 뚫었지만 5거래일 뒤 -4.90%로, 이 표에서 상향 신호 중 가장 나쁜 결과였다. 09-03도 같은 식이다. 종가 177,900원에서 하루 +5.20% 급등한 날이어서 채널 밖으로 튀어 나갔고, 5일 뒤 -2.53%였다.
상향 신호 15번의 5거래일 평균 수익률은 +0.06%다. 같은 기간 신호와 상관없이 모든 유효일을 합친 평균은 -0.04%(26일)다. 차이는 0.10%포인트라서 의미를 두기 어렵다.
거래량과 두 번의 하단 이탈
거래량을 같이 보면 이야기가 조금 더 구체적이다. 이 구간 거래량 최대는 08-31의 3,030,441주다. 그날 종가 173,300원으로 상단 돌파 신호가 켜졌고 5거래일 뒤 +1.50%였다. 큰 거래량을 동반한 돌파가 맞았다고 쓸 수 있는 사례는 이 하나뿐이다. 반대로 같은 시기 09-14 돌파는 거래량이 1,105,336주로 평범했고 꺾였다. 이 두 건으로 거래량 필터가 통한다고 말하면 과장이다. 표본이 둘이다.
하단 이탈 두 번은 겉모습이 비슷했다. 08-24는 종가 163,100원으로 하단 164,415원 아래였고, 바로 앞 08-20에는 종가 160,000원까지 내려가 있었다. 한 번 크게 밀린 뒤라 반등이 나왔다고 해석할 수 있다. 09-30은 종가 168,800원으로 하단 172,175원 아래였고 거래량 1,072,267주를 동반했다. 이쪽은 직전에 꼭지(09-14)를 찍고 내려오던 길이었다. 같은 하단 이탈이라도 앞의 흐름이 다르면 뒤가 달랐다는 정도만 말할 수 있다. 채널 하나로는 그 앞의 흐름을 구분하지 못한다.
파라미터를 바꾸면

같은 방식으로 기간만 바꿔 셌다.
기간 상향 신호 하향 신호
--------------------------------------------------
10 10번 중 5번 적중 8번 중 4번 적중
20 15번 중 8번 적중 2번 중 1번 적중
30 13번 중 4번 적중 1번 중 1번 적중기간 10 에서 상향 신호의 평균은 -0.12%, 하향 신호는 +0.31%였다. 두 방향 모두 평균이 반대로 갔다. 기간 30 은 상향 신호 13번의 평균이 -1.05%로 4번만 적중했다. 띠가 느리게 따라올수록 상단 돌파가 고점 근처에서 나왔다는 뜻이다. 기간 20 이 가장 낫게 보이는 것은 이 구간에서 우연히 그렇게 맞아떨어졌을 가능성이 크다. 기간을 하나 고르면 결론이 달라지는 지표는 믿고 쓰기 어렵다.
봇 게이트에 넣을 것인가
먼저 이 지표가 무엇을 해 주는지 정리한다. 채널은 가격이 평소 변동폭의 한 번쯤 위나 아래로 나갔다는 사실을 알려 줄 뿐, 그 뒤가 이어질지 되돌릴지는 말하지 않는다. 이어지는 장에서는 추세 추종 신호처럼 보이고 되돌리는 장에서는 과열 신호처럼 보인다. 같은 신호가 장세에 따라 반대 뜻이 되므로 장세를 따로 판정하는 장치가 있어야 쓸 수 있다.
단독 진입 신호로는 넣지 않는다. 상향 돌파가 연속으로 11거래일 켜져 있었는데 그 안에서 적중과 빗나감이 섞였고, 09-11 이후의 상향 신호 6번은 전부 빗나갔다. 띠가 하루 변동폭 평균이라 너무 얇은 것도 이유다.
다만 채널 하단 이탈이 며칠째 이어지는 상태(09-30부터 연속 6거래일)를 변동성 필터와 함께 쓰면 무엇이 달라지는지는 아직 확인하지 못했다.
남는 것
이번 구간에서 챙길 것은 두 가지다. 하나, 돌파 신호의 질은 돌파한 날의 모양에 따라 갈렸다. 하루 급등으로 튀어 나간 날(09-03, +5.20%)과 종가 최고점에서 켜진 날(09-14)은 모두 5거래일 뒤 내려왔다. 둘, 하단 이탈은 08-24에는 반등으로, 09-30에는 하락 지속으로 갈렸다. 두 사례를 가른 것이 무엇인지 이 표본으로는 설명되지 않는다.
셋, 이 지표는 값이 쉽게 나오는 만큼 쉽게 속는다. 17번의 신호 가운데 9번이 맞았다는 숫자는 동전 던지기와 구분되지 않는다. 그래도 빗나간 8번을 날짜별로 적어 두면 어떤 날의 돌파를 조심해야 하는지 윤곽은 잡힌다. 급등한 날, 종가 최고점인 날, 고점 부근에서 연속으로 이어진 돌파가 그 후보다. 이 후보가 다른 종목에서도 반복되는지는 이 시리즈의 다음 편들로 확인한다.
10월 들어 종가는 하단 아래에서 닫히고 있다. 이 상태가 몇 거래일을 더 가는지, 그리고 채널로 복귀할 때 어느 쪽에서 들어오는지는 다음 구간에서 확인할 숙제로 남긴다.
이 글은 개인 학습 기록이며 투자 판단의 책임은 본인에게 있다.
약어 풀이
* 이 글에 나온 영어 약어를 풀어 둔다.
- SMA (Simple Moving Average): 단순 이동평균. 최근 n 개 값을 같은 비중으로 평균 낸 값.