왜 코포크 곡선, 왜 고려아연
코포크 곡선은 원래 채권 트레이더 에드윈 코포크가 미국 주식시장의 큰 바닥을 잡으려고 1962년에 만든 지표다. 단기 등락을 걸러내고 “추세가 바닥을 치고 방향을 튼 시점"만 잡아내려는 목적으로 설계됐다. 계산 방식은 뒤에서 그대로 풀어 적지만, 핵심만 먼저 말하면 두 개의 서로 다른 기간 변화율을 더한 값을 다시 한번 가중평균으로 매끄럽게 만든 것이다. 원래는 월봉에 썼던 지표라 반응이 느리다. 그 느림이 일봉에서는 어떻게 작동하는지 확인하는 게 이번 글의 목적이다.
이 지표의 기간 값 자체가 특이하게 정해졌다는 점도 짚을 만하다. 14개월과 11개월이라는 숫자는 통계적으로 최적화한 값이라기보다, 큰 손실을 겪은 투자자가 심리적으로 회복하는 데 걸리는 시간을 물어 정했다고 전해진다. 설계자가 잡은 기준은 시장의 기계적 패턴보다 사람의 회복 속도 쪽에 훨씬 가까이 붙어 있다. 그만큼 원래부터 “빠른 반응"과는 거리가 먼 지표였다.
고려아연은 이 지표를 시험하기 좋은 표본을 최근 두 달 동안 만들어냈다. 6월 말부터 완만하게 밀리던 주가가 7월 29일 종가 923,000원까지 내려간 뒤, 8월 25일 종가 1,427,000원까지 한 달이 채 안 되는 사이 54.6% 올랐다. 그리고 다시 9월 4일까지 14.4% 되돌렸다. 느리게 반응하도록 설계된 지표가 이런 급격한 왕복 구간에서 신호를 몇 번이나 냈는지, 그 신호가 언제 나왔고 실제로 맞았는지를 그대로 대조했다.

그림 1의 캔들을 보면 6월 25일부터 7월 29일까지는 완만한 하락, 그 이후 8월 25일까지는 가파른 상승, 다시 9월 4일까지는 조정이라는 세 국면이 한 화면에 다 들어 있다. 특히 8월 6일과 25일 앞뒤로 거래량이 평소의 서너 배로 튀는 게 눈에 띈다. 8월 6일 거래량은 85,088주로 이 구간 최대치였고, 8월 25일에도 67,239주가 몰렸다. 거래량이 실리며 방향이 바뀐 두 지점이 뒤에서 살펴볼 코포크 신호와 정확히 겹치는지가 관전 포인트다.
종목 고려아연 (010130, KRX)
구간 2026-06-25 ~ 2026-09-04 (50거래일)
출처 stockanalysis.com/quote/krx/010130/history
--------------------------------------------------
구간 시작 종가 1,110,000원 (06/25)
구간 저가(종가) 923,000원 (07/29)
구간 고가(종가) 1,427,000원 (08/25)
구간 마지막 종가 1,222,000원 (09/04)
--------------------------------------------------
저점→고점 +54.60% (07/29 → 08/25)
고점→마지막 -14.37% (08/25 → 09/04)이 글은 투자권유가 아니다. 특정 종목의 매수·매도를 권하지 않으며, 지표 하나의 작동 방식을 검증하는 게 전부다.
계산과 실측
코포크 곡선은 두 단계로 만든다. 먼저 두 개의 변화율(Rate of Change)을 구하고, 그 합을 다시 한 번 가중이동평균(Weighted Moving Average)으로 다듬는다.
ROC(n, t) = (종가(t) - 종가(t-n)) / 종가(t-n) × 100
--------------------------------------------------
1단계 ROC(14, t) + ROC(11, t) 를 매일 계산
2단계 위 값을 최근 10일 가중이동평균(WMA)으로 평활
가중치 당일 10, 하루 전 9, … 9일 전 1 (합 55로 나눔)
--------------------------------------------------
코포크(t) = WMA₁₀( ROC(14,t) + ROC(11,t) )파라미터 14, 11, 10은 임의로 고르지 않았다. 코포크가 원래 월봉에서 쓰던 값을 그대로 가져온 것이고, 지금 가장 널리 쓰이는 차트 플랫폼들도 일봉에 이 값을 기본값으로 그대로 얹는다. 다만 여기서 원래 설계와 달라지는 지점 하나는 분명히 밝혀둔다. 원래 설계는 “14개월, 11개월 변화율"이었다. 일봉에 그대로 옮기면 “14거래일, 11거래일"이 되어 원래 의도했던 시간 척도보다 훨씬 촘촘하게 반응한다. 느리게 반응하도록 설계된 지표를 훨씬 빠른 창에 그대로 옮겨 쓴 것이라, 원래 월봉에서보다 신호가 자주 나올 수밖에 없는 구조다. 이 글에서 확인하려는 것도 바로 그 잦아진 신호가 실제로 쓸모 있는지다.
이 계산 방식 때문에 예열 구간이 길다. ROC(14)가 성립하려면 14거래일치 과거 종가가 있어야 하고, 거기에 WMA(10)를 씌우려면 그 값이 다시 10일 쌓여야 한다. 결국 첫 유효값이 나오기까지 23거래일이 그냥 소모된다. 이번에 확보한 50거래일 중 실제로 코포크 값이 찍히는 구간은 27거래일뿐이다. 그림 2의 회색 음영이 그 23거래일 예열 구간이다.

실제로 찍힌 값을 보면, 7월 30일 -14.97로 저점을 찍은 뒤 방향을 틀어 8월 25일 47.51까지 올라갔다가 다시 9월 4일 12.90까지 내려왔다. 이 구간에서 코포크가 방향을 튼(저점에서 위로, 고점에서 아래로) 지점을 전부 신호로 잡아 여섯 개를 골랐다. 각 신호가 나온 뒤 다음 신호가 나올 때까지 주가가 신호 방향대로 움직였는지 대조했다.
# 날짜 구분 코포크값 결과
--------------------------------------------------
1 07/30 매수 -14.97 적중 (다음 신호까지 +31.78%)
2 08/18 매도 43.00 적중 (다음 신호까지 -6.07%)
3 08/19 매수 42.77 적중 (다음 신호까지 +8.12%)
4 08/20 매도 45.03 실패 (다음 신호까지 +8.56%)
5 08/24 매수 43.60 적중 (다음 신호까지 +6.18%)
6 08/25 매도 47.51 적중 (마지막 종가까지 -14.37%)
1번 신호가 가장 값어치 있다. 7월 30일, 코포크가 0보다 한참 아래인 -14.97에서 처음 위로 꺾였다. 이게 코포크 원래 설계가 노리던 “저점 반전” 신호 그대로다. 이후 주가는 8월 25일까지 31.78% 올랐다. 느리게 반응하도록 만든 지표인데도 이번 구간의 저점은 거의 놓치지 않았다. 다만 저점을 확인한 날짜(7월 30일)가 실제 종가 최저점(7월 29일)보다 하루 늦었다는 점도 함께 적어둔다. 하루 차이라 이번엔 큰 문제가 안 됐지만, 변동성이 더 큰 종목이었다면 그 하루 사이 값이 꽤 벌어질 수 있다.
문제는 그다음이다. 8월 18일부터 25일까지 일주일 사이에 코포크가 매도, 매수, 매도, 매수, 매도로 다섯 번 방향을 바꿨다. 이 구간 코포크 값은 42.77에서 47.51 사이, 폭으로 치면 5포인트가 채 안 되는 좁은 박스 안에서 오르내렸을 뿐이다. 그런데도 그 작은 흔들림이 방향 전환으로 잡혀 신호를 다섯 번이나 냈다. 4번 신호(8월 20일 매도)는 이 구간에서 유일하게 틀렸다. 매도 신호가 나온 뒤에도 주가는 8.56% 더 올라 8월 24일에 신고가를 냈다. 반면 6번 신호(8월 25일 매도)는 실제 고점과 정확히 일치했다. 다섯 번 중 네 번은 맞았지만, 그 넷 중 셋은 같은 상승 추세 안에서 짧게 오르내린 잡음성 신호였고 실질적으로 방향을 바꾼 신호는 1번과 6번, 두 개뿐이었다.
파라미터를 바꾸면 이 그림이 어떻게 달라지는지도 확인했다. WMA 평활 길이를 10에서 5로 줄이면 첫 유효값이 7월 22일로 앞당겨져 32개 값을 쓸 수 있게 된다. 그런데 그 대가로 신호가 하나 더 생긴다. 7월 27일에 -7.62까지 잠깐 반등했다가 다시 밀리면서 매도 신호가 하나 끼어드는데, 이 신호가 나오고 사흘 뒤인 7월 30일이 바로 진짜 바닥이었다. 짧은 평활로 이 매도 신호를 그대로 따랐다면 진짜 반전 직전에 흔들려 나갔을 자리다. 평활을 짧게 쓰면 예열 구간이 줄어 쓸 수 있는 값은 늘지만, 그만큼 이런 잡음성 신호도 함께 늘어난다는 걸 이번 비교로 확인했다. 반대로 평활을 20으로 늘리면 예열 구간이 33거래일로 늘어나 유효값이 17개까지 줄어든다. 표본이 27개에서 17개로 줄면 신호 몇 개를 비교하는 것 자체가 통계적으로 별 의미가 없어진다.

이 지표를 봇 게이트에 넣을지는 신중해야 한다는 게 이번 실측의 결론이다. 큰 방향 전환(1번, 6번)은 정확히 잡았지만, 옆으로 흔들리는 구간에서는 방향 전환 판정 자체가 잡음에 취약했다. 제로선 교차만 보면 이번 구간에는 8월 6일 상향 돌파 한 번뿐이었고 하향 돌파는 9월 4일까지 나오지 않았다. 제로선 교차를 조건으로 걸면 신호는 확 줄지만 그만큼 잡음도 줄어든다. 게이트에 쓴다면 “저점에서 위로 꺾일 때"만 인정하고, 옆으로 흔들리는 구간의 잦은 전환은 별도 필터로 걸러내는 편이 나아 보인다.
남기는 것
이번 구간에서 남는 건 두 가지다. 하나는 느리게 설계된 지표라도 일봉에 옮기면 옆걸음 구간에서 잡음을 그대로 낸다는 점이고, 다른 하나는 그 잡음 속에서도 큰 저점과 큰 고점만큼은 놓치지 않았다는 점이다. 원래 월봉에서 태어난 지표를 일봉에 얹어 쓰는 관행이 얼마나 타당한지는 이번 한 종목, 두 달 데이터만으로 답할 수 없다. 확보한 50거래일 중 지표가 실제로 성립한 구간은 27일뿐이었으니 이 정도 표본으로 일반화하기도 조심스럽다.
거래량도 같이 보면 조금 더 보인다. 8월 6일과 25일, 지표가 크게 움직인 두 지점 모두 거래량이 이 구간 상위권으로 튀었다. 반면 8월 18일부터 25일까지 잡음성 신호가 연달아 나온 구간의 거래량은 18,300주(8월 19일)에서 67,239주(8월 25일)까지 편차가 컸다. 거래량이 실린 날의 전환은 신뢰하고, 거래량이 얇은 날의 잔파동은 걸러내는 필터를 더하면 이번에 나온 네 번의 애매한 신호 중 일부는 줄일 수 있었을 것으로 보인다. 이건 이번 데이터로 검증하지 못했으니 다음에 확인할 숙제로 남긴다.
제시 리버모어는 회고록에서 “돈을 벌게 한 건 정확한 판단이 아니라 진득하게 버틴 것이었다"는 말을 남겼다. 이번 코포크 곡선도 비슷한 그림을 보여줬다. 여섯 번의 신호 중 값어치 있었던 건 저점을 잡은 1번과 고점을 잡은 6번, 두 번뿐이었고 그 사이 넷은 좁은 박스 안에서 오르내린 잡음이었다. 신호마다 일일이 반응했다면 잡음에 더 많이 흔들렸을 구간이다. 다음 회차에 이 종목이 다시 큐에 들어오면 옆걸음 구간을 걸러내는 필터를 더해 같은 데이터를 다시 짚어볼 생각이다.
이 글은 투자 조언이 아니며, 언급된 종목의 매매를 권하지 않는다.
약어 풀이
- 이 글에 나온 영어 약어를 풀어 둔다.
- ROC (Rate of Change): 일정 기간 전 대비 가격이 몇 퍼센트 변했는지 나타내는 변화율.
- WMA (Weighted Moving Average): 최근 값일수록 더 큰 가중치를 주는 이동평균.
- KRX (Korea Exchange): 한국거래소. 국내 주식이 거래되는 거래소를 가리킨다.