기업은행 주가는 2026년 7월 중순부터 9월 하순까지 뚜렷한 추세 없이 21,600원과 19,840원 사이를 오갔다. 이런 박스권은 추세추종 지표에는 가장 불리한 환경이다. 이번 편에서 다루는 Know Sure Thing(KST)은 서로 다른 네 개의 기간으로 계산한 모멘텀을 가중치를 달리해 하나로 합친 오실레이터다. 만든 사람인 마틴 프링은 여러 주기의 모멘텀을 겹쳐 놓으면 단일 이동평균보다 추세 전환을 더 일찍, 더 신뢰성 있게 짚어낼 수 있다고 봤다. 이름 자체가 “이제 확실히 안다"는 뜻이다.

문제는 이 지표가 원래 요구하는 계산 기간이 꽤 길다는 점이다. 표준 설정은 10·15·20·30일 변화율을 10·10·10·15일로 다시 평활하고, 그 결과에 다시 9일 신호선을 얹는다. 이번에 확보한 데이터는 50거래일뿐이라 표준 설정을 그대로 쓰면 지표 자체도 마지막 며칠만 겨우 나오고 신호선은 아예 계산되지 않는다. 그래서 이 글은 지표를 “정석대로” 쓴 결과가 아니라, 데이터가 짧을 때 KST를 어떻게 축소해서 써야 하는지, 그리고 그렇게 축소한 지표가 실제로 몇 번이나 신호를 냈고 그 신호가 맞았는지를 그대로 기록한다.

이 글의 데이터 범위
종목      기업은행 (024110)
구간      2026-07-14 ~ 2026-09-23 (50거래일)
출처      stockanalysis.com/quote/krx/024110/history/
최고가    22,150원 (07/16 고가)
최저가    19,840원 (07/29 저가)
시작 종가  21,100원 (07/14)
종료 종가  20,400원 (09/23)
--------------------------------------------------
구간 등락  -3.32% (종가 기준)

이 글은 투자 권유가 아니다. 모든 수치는 수집한 과거 일봉을 그대로 계산한 결과이며, 미래 수익을 보장하지 않는다.

기업은행 일봉 개요

계산과 검증

KST는 네 단계로 만든다. 먼저 서로 다른 기간의 변화율(ROC)을 구하고, 각각을 다시 이동평균으로 매끄럽게 만든 뒤, 가중치를 곱해 더한다. 마지막으로 그 합계 자체를 짧게 평활한 신호선을 얹는다.

계산식
ROC(n)    = (종가[t] - 종가[t-n]) / 종가[t-n] × 100
--------------------------------------------------
RCMA-1   = SMA(ROC(R1), S1)
RCMA-2   = SMA(ROC(R2), S2)
RCMA-3   = SMA(ROC(R3), S3)
RCMA-4   = SMA(ROC(R4), S4)
--------------------------------------------------
KST      = RCMA-1×1 + RCMA-2×2 + RCMA-3×3 + RCMA-4×4
Signal   = SMA(KST, SIG)

프링이 제시한 표준값은 (R1..R4, S1..S4, SIG) = (10,15,20,30 / 10,10,10,15 / 9)다. 이 값을 이번 데이터 50거래일에 그대로 적용해서 numpy로 돌려봤다. 결과는 KST 자체가 유효한 날이 6일뿐이고, 9일 신호선은 단 하루도 계산되지 않았다. 가장 긴 ROC(30)이 첫 값을 내는 데만 31일이 걸리고, 거기에 SMA(15)를 얹고 나서야 RCMA-4가 나오는데, 그 지점이 이미 45일째다. 신호선까지 가려면 9일이 더 필요한데 데이터가 그만큼 남아있지 않다.

그래서 이번 글에서는 네 개 ROC와 RCMA 가중합이라는 구조와 기간 사이의 비율은 유지하되, 절대 기간을 표준값의 절반 안팎으로 줄였다. 채택한 값은 (R1..R4, S1..S4, SIG) = (5,8,10,15 / 5,5,5,8 / 5)다. 이렇게 하면 KST는 08월 14일부터, 신호선은 08월 21일부터 계산되어 총 28일치 KST와 24일치 신호선을 확보할 수 있다. 표준값보다 짧은 만큼 잡음에 더 민감해진다는 대가가 따르는데, 이 대가가 실제로 얼마나 되는지는 아래 민감도 항목에서 따로 확인했다.

표준값 vs 채택값
구분       표준(10·15·20·30)   채택(5·8·10·15)
--------------------------------------------------
KST 시작   계산 불가 수준        08/14 (28일치)
Signal 시작 계산 안 됨(0일)         08/21 (24일치)
유효 KST 개수 6개                 28개

KST와 Signal 라인

08월 14일 -24.28에서 시작한 KST는 08월 28일에 0선을 넘어서더니 09월 07일 30.66까지 올라갔다가, 09월 09일부터 신호선 아래로 꺾여 09월 23일 -24.28까지 다시 내려왔다. 두 달이 채 안 되는 구간 안에서 한 번의 완전한 상승·하락 사이클을 그린 셈이다.

신호 전수 나열

이 구간에서 확인할 수 있는 신호는 세 가지 종류다. KST와 신호선의 교차, 그리고 KST 자체의 0선 교차. 세 개 다 나열한다.

신호와 결과
날짜       유형          종가      +5거래일    데이터 끝까지
--------------------------------------------------
08/28    0선 골든        20,850   -0.72%     -2.16%
09/09    Signal 데드     20,600   -1.94%     -2.91%→반등
09/17    0선 데드        20,150   +1.24%     +1.24%

신호 발생 시점

08월 28일 0선 골든크로스는 빗나갔다. 신호 발생 시점 종가 20,850원에서 5거래일 뒤엔 20,700원으로 이미 -0.72% 밀렸고, 데이터가 끝나는 09월 23일에는 20,400원으로 -2.16%까지 벌어졌다. 이 지표가 “이제 오른다"고 말한 지점이 사실상 그 구간의 국지적 고점 근처였다.

09월 09일의 신호선 데드크로스는 방향은 맞혔다. 크로스 시점 종가 20,600원이 5거래일 뒤 20,200원으로 -1.94% 내려갔고, 09월 22일에는 20,000원(-2.91%)까지 더 밀렸다. 다만 데이터의 마지막 날인 09월 23일 하루 만에 20,400원으로 반등하면서 최종 낙폭은 -0.97%로 줄었다. 신호가 맞긴 했지만 그 유효기간이 열흘을 넘기지 못했다.

09월 17일의 0선 데드크로스는 이번 구간에서 가장 확실하게 틀린 신호다. “추세가 하락으로 전환됐다"고 알렸지만 데이터가 끝나는 09월 23일까지 가격은 오히려 20,150원에서 20,400원으로 +1.24% 올랐다. 표본 구간이 짧아 이 신호의 최종 승패를 끝까지 지켜보지는 못했다는 한계는 남는다.

한 가지 더 적어둘 게 있다. KST가 0선을 넘어 상승하기 시작한 건 08월 28일이지만, 이보다 앞서 신호선 자체가 유효해지는 시점은 08월 21일이다. 그런데 KST가 처음으로 신호선을 아래에서 위로 뚫는 골든크로스는 이 관측 구간 안에서 한 번도 잡히지 않았다. 08월 14일부터 08월 20일 사이, 신호선이 아직 계산되지 않던 구간에서 이미 골든크로스가 일어났을 가능성이 높다는 뜻이다. 예열 구간이 짧다 보니 이 지표가 낸 가장 중요했을 신호 하나를 통째로 놓친 셈이다.

민감도 — 신호선 기간을 바꾸면

신호선 기간(SIG)을 5가 아니라 3이나 9로 바꾸면 결과가 어떻게 달라지는지 같은 데이터로 다시 계산했다.

Signal 기간별 교차 횟수
SIG=3   교차 3회   시작 08/19
SIG=5   교차 1회   시작 08/21   (채택)
SIG=9   교차 1회   시작 08/27

민감도 비교

SIG=3으로 줄이면 교차가 세 번 잡힌다. 그런데 그중 두 번(08월 25일 데드, 08월 26일 골든)은 하루 간격으로 붙어 있는 전형적인 휩쏘다. 나머지 한 번(09월 08일 데드)은 채택값이 잡아낸 09월 09일 데드크로스와 사실상 같은 신호를 하루 먼저 알린 것뿐이다. 반대로 SIG=9로 늘리면 신호선이 08월 27일에야 시작되어 관측 가능한 기간이 더 짧아지지만, 교차 횟수는 채택값과 똑같이 1회로 나온다. 즉 이번 구간에서는 신호선을 짧게 잡을수록 진짜 신호 하나에 잡음 신호가 따라붙고, 길게 잡을수록 관측 자체가 늦게 시작된다는 트레이드오프가 뚜렷하게 보였다.

봇 게이트에 넣을 것인가

넣지 않는 쪽으로 판단했다. 이유는 세 가지다. 첫째, 이번처럼 데이터 구간이 짧을 때는 표준 기간을 못 쓰고 임의로 절반씩 줄여야 하는데, 그 축소 비율에 따라 신호 발생 시점 자체가 달라진다는 걸 민감도 항목에서 확인했다. 둘째, 관측된 세 개 신호 중 방향이 맞은 것은 하나뿐이고 그마저 유효기간이 짧았다. 셋째, KST는 이동평균의 이동평균을 여러 겹 쌓은 구조라 본질적으로 후행성이 강하다. 이번 관측에서도 0선 골든크로스가 가격의 국지적 고점 근처에서 나왔다는 점이 이 후행성을 그대로 보여준다. 다만 완전히 버리기보다는, 다른 선행지표가 먼저 진입 신호를 낸 뒤 KST의 0선 방향을 “현재 큰 흐름이 상승 쪽인가 하락 쪽인가"를 확인하는 배경 필터로만 곁들이는 정도는 시도해볼 만하다.

남는 것

이번 회차에서 가장 오래 붙들고 있었던 문제는 지표 자체의 해석보다 “표준 파라미터를 쓸 수 있는 데이터인가"를 먼저 확인하는 일이었다. 50거래일이라는 구간은 짧은 편이 아니라고 생각했는데, KST처럼 이동평균을 세 번 겹치는 지표 앞에서는 절반도 안 되는 워밍업만 제공했다. 지표 이름과 계산식만 보고 파라미터를 그대로 옮겨 쓰면 신호선 자체가 비어버릴 수 있다는 걸 직접 확인한 편이었다.

두 번째로 남는 인상은, 좁은 박스권에서는 이런 합성 모멘텀 지표가 추세 전환보다 추세의 “끝물"을 알려주는 경우가 더 많았다는 점이다. 08월 28일 골든크로스와 09월 17일 데드크로스 둘 다, 신호가 뜬 시점이 가격 기준으로는 이미 국지적 전환점을 살짝 지난 뒤였다.

기업은행의 다음 구간이 이번처럼 좁은 박스권을 유지할지, 아니면 방향이 뚜렷해질지는 지켜봐야 안다. 이번 데이터로는 KST가 그 답을 미리 주지 못했다.

약어 풀이

  • 이 글에 나온 영어 약어를 풀어 둔다.
  • KST (Know Sure Thing): 마틴 프링이 고안한 합성 모멘텀 오실레이터. 서로 다른 기간의 변화율을 가중합해 하나의 선으로 만든다.
  • ROC (Rate Of Change): 변화율. 현재 종가가 n일 전 종가 대비 몇 퍼센트 움직였는지를 나타낸다.
  • SMA (Simple Moving Average): 단순이동평균. 최근 n개 값을 그대로 평균한 값이다.
  • RCMA (Rate of Change Moving Average): ROC를 다시 이동평균으로 매끄럽게 만든 값. KST는 이 RCMA 네 개를 가중합해서 만든다.
  • SIG (Signal): 이 글에서 KST 신호선을 만들 때 쓴 이동평균 기간을 가리키는 표기다.
  • KRX (Korea Exchange): 한국거래소. 코스피·코스닥 등 국내 증권시장을 운영한다.