상관계수는 두 자산이 같은 방향으로 움직이는 정도를 -1에서 1 사이 숫자 하나로 요약한 값이다. 1이면 완전히 같이 가고, -1이면 완전히 반대로 간다. “로그 상관계수(Correlation - Log)“는 여기에 한 단계를 더 넣는다. 가격에 자연로그를 먼저 씌운 뒤 그 값으로 상관계수를 계산하는 방식이다. 로그를 씌우면 가격 수준이 다른 두 자산도 같은 눈금으로 비교할 수 있고, 큰 변동이 몇 배씩 부풀려 상관계수를 왜곡하는 문제가 줄어든다.

한미반도체는 이 지표를 시험하기에 거친 구간을 하나 갖고 있었다. 2026년 7월 16일 275,000원까지 오른 뒤 7월 29일 148,900원까지 12거래일 만에 45.85% 빠졌다. 그리고 7월 31일 하루 만에 27.98% 반등했다. 이후 8월 한 달을 거쳐 9월 초까지 지수보다 큰 폭으로 오르는 구간이 다시 나타났다. 폭락에서는 시장 전체가 같이 흔들렸을 가능성이 크고, 반등 후반부에서는 종목 고유의 힘이 더 크게 작용했을 가능성이 있다. 이 둘을 로그 상관계수 하나로 구분해낼 수 있는지가 이번 글의 질문이다.

이 글의 데이터 범위
종목      한미반도체 (042700, KRX)
비교자산  KODEX 200 (069500, KRX, 코스피200 추종 ETF)
구간      2026-06-26 ~ 2026-09-07 (50거래일)
출처      stockanalysis.com 일봉
--------------------------------------------------
최고가    275,000원 (7/16)
최저가    148,900원 (7/29)
낙폭      -45.85% (7/16 고가 → 7/29 저가, 12거래일)

이 글은 투자 권유가 아니다. 계산 과정과 결과를 있는 그대로 기록한다.

로그 상관계수, 계산식과 파라미터

코스피 지수 자체는 stockanalysis.com에서 일봉을 받지 못했다. 대신 코스피200을 그대로 추종하는 상장지수펀드 KODEX 200의 종가를 비교 대상으로 썼다. 지수 선물이나 현물 대신 실제로 거래되는 ETF 가격을 쓴 것이라 코스피200 대비 추적오차만큼의 차이가 섞일 수 있다. 다만 이 구간에서 그 오차가 이 글의 결론을 뒤집을 정도로 크다고 볼 근거는 따로 확인하지 못했다.

계산식은 다음과 같다.

로그 상관계수 계산식
x = ln(종가_한미반도체),  y = ln(종가_KODEX200)
--------------------------------------------------
corr[t] = sum((x[i]-mean(x)) * (y[i]-mean(y)))
          / sqrt(sum((x[i]-mean(x))^2) * sum((y[i]-mean(y))^2))
          단, i = t-N+1 ... t
--------------------------------------------------
윈도 길이  N = 20 (기본값)

N을 20으로 잡은 이유는 단순하다. 한 달 남짓의 거래일 수이고, 이 지표를 처음 만든 트레이딩뷰의 기본값이기도 하다. numpy로 직접 짠 함수는 매 시점 t에서 직전 20개 종가의 로그값을 떼어내 평균을 빼고, 공분산을 두 표준편차의 곱으로 나누는 표준 피어슨 상관계수 그대로다. 지표 라이브러리는 쓰지 않았다.

문제는 예열구간이다. 50거래일 중 처음 19일은 20개 값이 채워지지 않아 계산이 안 된다. 그래서 실제로 값이 나오는 날은 7월 24일부터 9월 7일까지 31일뿐이다. 하필 이 구간이 7월 16일 고점과 7월 29일 저점 사이의 가장 극적인 하락 구간과 겹친다. 지표가 유효해지는 7월 24일에는 이미 주가가 20만원까지 내려온 뒤였다. 폭락의 초입은 로그 상관계수로 보지 못했다는 뜻이고, 이 글의 결론은 그 이후 구간에 대해서만 유효하다.

한미반도체 일봉과 거래량 개요

실측: 0.60에서 0.91로, 다시 0.62로

유효구간 31일의 궤적은 한 방향으로 깔끔하게 움직이지 않았다. 7월 24일 0.6002로 시작해 7월 27일 0.5722까지 살짝 더 내려갔다가, 이후 8월 26일 0.9132까지 거의 두 달 가까이 꾸준히 올랐다. 그리고 8월 27일부터 다시 흘러내려 9월 7일 0.6189로 마감했다.

로그 상관계수 N=20 궤적
7/24  0.6002   최초 유효값
7/27  0.5722   구간 최저
8/10  0.8619   0.85 상향 돌파
8/26  0.9132   구간 최고
9/07  0.6189   최고 대비 -0.2944

로그 상관계수 N=20 시계열

7월 말부터 8월 말까지 오른 구간은 직관과 맞는다. 7월 29일 저점을 찍고 7월 31일 27.98% 반등한 뒤, 8월 내내 한미반도체와 KODEX 200이 거의 같은 리듬으로 오르내렸다. 패닉에 가까운 급락과 그 뒤를 잇는 반등 초입에서는 종목 개별 재료보다 시장 전체의 방향이 주가를 끌고 간다는 통념이 이 구간에서는 실제로 확인됐다.

신호로 써볼 만한 지점은 0.85를 상향 돌파한 8월 10일이다. 이날 상관계수는 0.8619였고, 다음 거래일인 8월 11일 한미반도체는 3.65% 올랐다. 같은 날 KODEX 200은 1.02% 올라 방향은 일치했다. 다만 이 구간에서 0.85 돌파는 이 한 번뿐이라 표본 하나로 맞았다고 말하기는 어렵다. 통계적으로 의미를 부여할 수 있는 개수가 아니다.

디커플링 구간, 4승 4패의 성적표

8월 26일 0.9132로 정점을 찍은 뒤 상관계수가 흘러내리는 동안 실제로 무슨 일이 있었는지를 하루 단위로 뜯어봤다. 상관계수가 떨어진다는 건 두 자산이 서로 다르게 움직이기 시작했다는 뜻이고, 그렇다면 한미반도체가 KODEX 200보다 더 많이 오르거나 더 적게 빠지는 날이 늘어야 그 해석이 맞다.

디커플링 구간 일별 초과수익, 8/27~9/7
8/27  +1.14% / +1.32%   이탈
8/28  -1.13% / -1.79%   적중
8/31  +0.46% / +0.41%   적중
9/01  -2.49% / +0.25%   이탈
9/02  -0.70% / -4.06%   적중
9/03  -1.41% / +0.11%   이탈
9/04  +9.26% / +2.04%   적중
9/07  +4.57% / +4.82%   이탈
--------------------------------------------------
일별 적중  4승 4패
누적      한미반도체 +9.57%, KODEX 200 +2.89%

디커플링 구간 지수화 비교와 일별 적중 여부

여덟 거래일 중 정확히 절반은 예상과 다르게 움직였다. 8월 27일은 상관계수가 막 정점을 지난 날인데도 두 자산이 거의 같은 폭으로 올라 디커플링의 흔적이 없었다. 9월 1일과 9월 3일은 한미반도체가 KODEX 200보다 더 빠졌다. 상관계수가 낮아지고 있다고 해서 항상 유리한 쪽으로 갈라서는 게 아니라는 뜻이다. 반대로 9월 4일은 하루 만에 9.26% 오르며 디커플링 스토리에 가장 크게 힘을 실었다. 결과적으로 누적 수익률은 한미반도체가 6.68%포인트 앞섰지만, 그 우위는 여덟 번 중 네 번의 큰 승리에서 나온 결과였다. 나머지 절반은 오히려 뒤졌다.

전체 31일 구간에서 상관계수 값과 다음 날 방향 일치율의 관계도 따로 봤다. 상관계수가 0.85 이상이었던 13일 중 다음 날 방향이 일치한 날은 11일(84.6%)이었고, 0.75 미만이었던 9일 중에서는 8일(88.9%)이 일치했다. 전체 30일 평균은 25일(83.3%)이다. 세 숫자가 서로 크게 다르지 않다. 로그 상관계수가 높다고 다음 날 방향까지 더 잘 맞힌다는 근거는 이 구간에서는 나오지 않았다.

파라미터를 바꾸면 결론이 달라진다

윈도 길이 N을 10과 40으로도 계산해봤다.

윈도 길이별 로그 상관계수 비교
N=10  41개 유효,  범위 -0.04 ~ 0.95
N=20  31개 유효,  범위  0.57 ~ 0.91
N=40  11개 유효,  범위  0.66 ~ 0.80
--------------------------------------------------
9/07 값  N=10 0.6805 · N=20 0.6189 · N=40 0.8031

윈도 길이 10·20·40 로그 상관계수 비교

N=10은 훨씬 예민하다. 7월 15일 상한가(+29.88%)처럼 종목 혼자 튄 날 직후인 7월 21일에는 상관계수가 -0.0421까지 떨어졌다. 9월 1일에도 -0.0333을 찍었다. 둘 다 종목 고유의 큰 변동이 낀 직후라는 공통점이 있다. 반응은 빠르지만 그만큼 며칠 뒤면 다시 0.9대로 튀어 올라 신호로 쓰기엔 너무 자주 흔들린다.

N=40은 정반대다. 표본이 길어 노이즈는 줄지만 반응이 느리다. 9월 7일 기준 N=40 값은 0.8031로, 같은 날 N=20의 0.6189보다 한참 높다. N=20만 보면 “상관관계가 풀리고 있다"고 읽히는데, N=40으로 보면 “8월 말 잠깐 흔들렸다가 다시 붙는 중"으로 읽힌다. 같은 두 가격 시계열에서 윈도 하나만 바꿨는데 정반대에 가까운 그림이 나온다. 이 지표를 쓸 때는 윈도 길이를 먼저 정하고, 그 선택의 이유를 같이 적어두지 않으면 결론을 얼마든지 원하는 쪽으로 고를 수 있다는 뜻이기도 하다.

봇 게이트에 넣을 것인가

이번 구간만 놓고 보면 로그 상관계수를 단독 진입 신호로 넣기는 어렵다. 상관계수가 높다고 다음 날 방향을 더 잘 맞히는 것도 아니었고(83~89% 사이에서 큰 차이 없음), 0.85 상향 돌파처럼 뚜렷해 보이는 이벤트도 이번 구간에서는 딱 한 번뿐이라 통계로 다루기엔 표본이 너무 적다.

다만 국면을 나누는 필터로는 쓸모가 있어 보인다. N=20 기준으로 상관계수가 0.85를 넘어가면 시장 전체 흐름을 따라가는 전략의 비중을 늘리고, 상관계수가 떨어지기 시작하면 종목 개별 재료에 기반한 전략으로 무게를 옮기는 식이다. 다만 N=10처럼 짧은 윈도는 하루이틀 만에 신호가 뒤집혀 휩쏘가 심하므로, 게이트로 쓴다면 N=20 이상을 기본으로 하고 하루짜리 급변에는 반응하지 않도록 최소 유지 기간을 같이 걸어야 할 것 같다.

남기고 싶은 것

이번 구간에서 확인한 건 두 가지다. 하나는 패닉에 가까운 하락과 그 직후 반등에서는 로그 상관계수가 실제로 0.9까지 올라가며 통념을 뒷받침했다는 점이다. 다른 하나는 그 상관계수가 다시 풀리는 국면에서, 종목이 매일 시장을 이길 거라는 기대는 여덟 번 중 네 번만 맞았다는 점이다. 디커플링은 방향이 아니라 누적된 크기의 문제였다.

윌리엄 오닐은 개별 종목의 힘도 결국 시장 전체 방향 안에서 발휘된다고 여러 차례 강조했다. 이번 8거래일의 4승 4패는 그 말과 크게 어긋나지 않는다. 종목이 시장을 이긴 날들의 폭이 진 날들보다 컸을 뿐, 매일 이긴 것은 아니었다.

한 라운드 더 지나 데이터가 쌓이면 N=40의 “다시 붙는 중"이라는 해석과 N=20의 “풀리는 중"이라는 해석 중 어느 쪽이 맞았는지 확인할 수 있을 것이다. 이 글에서는 그 답을 미리 정하지 않는다.

투자 판단과 매매의 책임은 전적으로 본인에게 있다. 이 글은 참고 자료일 뿐이다.

약어 풀이

  • 이 글에 나온 영어 약어를 풀어 둔다.
  • KRX (Korea Exchange): 한국거래소. 코스피·코스닥을 운영하는 국내 유일의 증권 거래소.
  • ETF (Exchange Traded Fund): 상장지수펀드. 특정 지수를 추종하도록 설계돼 거래소에서 주식처럼 매매되는 펀드.
  • KODEX (Korea Index EXchange-traded fund): 삼성자산운용의 ETF 브랜드. 이 글에서는 코스피200을 추종하는 KODEX 200을 지수 대체 자료로 썼다.