이동평균선은 늘 늦다. 가격이 급하게 달리면 뒤에서 허둥지둥 따라오고, 가격이 옆으로 기면 가격을 가로질러 헛신호를 낸다. 존 맥긴리가 이 문제를 풀겠다고 내놓은 것이 맥긴리 다이내믹(McGinley Dynamic)이다. 평균을 내는 대신 직전 값에서 출발해 “가격이 얼마나 멀리 있는가"에 따라 보정 폭을 스스로 늘리고 줄인다. 가격이 위로 달아나면 선이 더 빨리 따라붙고, 아래로 처지면 천천히 내려온다. 이 글은 그 말이 실제 일봉에서 얼마나 맞는지를 LG에너지솔루션으로 확인한 기록이다.
종목 선택에는 이유가 있다. 이 종목은 2026년 7월 말 300,500원까지 내려간 뒤 한 달 만에 378,000원까지 올랐고, 9월부터는 좁은 박스에서 오르내렸다. 강한 추세 구간과 지루한 횡보 구간이 한 화면에 같이 들어 있어서, 적응형 선이 어느 쪽에서 쓸모가 있는지 비교하기 좋다.
데이터에는 한계가 하나 있다. 60거래일 이상을 모으려 했지만 출처 페이지가 한 번에 보여 주는 일봉이 50행이었고, 페이지와 기간 파라미터를 바꿔 몇 번 더 요청해도 더 오래된 행은 나오지 않았다. 그래서 이 글은 50거래일 기준이다. 서로 다른 두 요청에서 겹치는 행은 모두 같은 값이었다.
종목 LG에너지솔루션
코드 373220 (KRX)
구간 2026-07-22 ~ 2026-10-02, 50거래일
출처 stockanalysis.com 일봉
--------------------------------------------------
최고 종가 378,000원 (08-31)
최저 종가 300,500원 (07-29)
장중 최고 387,000원 (09-01)
장중 최저 290,500원 (07-29)
시작 종가 321,000원 (07-22)
마지막 종가 371,000원 (10-02)
구간 등락 +15.58%이 글은 투자 권유가 아니다. 지표를 직접 계산해 본 학습 기록이며, 매매 판단과 그 결과는 읽는 사람의 몫이다.

계산식과 파라미터
맥긴리 다이내믹은 재귀식이다. 오늘 값을 어제 값과 오늘 종가만으로 만든다.
식 MD(t) = MD(t-1) + ( C(t) - MD(t-1) ) / ( k * N * ( C(t) / MD(t-1) )^4 )
--------------------------------------------------
C(t) t 일의 종가
N 기간. 이 글은 10
k 상수. 맥긴리 원안의 0.6
MD(0) 첫 종가 321,000원으로 시작 (시드)
보정 종가가 선보다 높으면 (C/MD)^4 가 1보다 커져서 분모가 커지고 보정 폭이 줄어든다
보정 종가가 선보다 낮으면 (C/MD)^4 가 1보다 작아져서 분모가 줄고 보정 폭이 커진다지표 라이브러리 없이 numpy 배열과 반복문으로 직접 구현했다. 검산용으로 첫 계산을 손으로 해 보면 이렇다. 7월 23일 종가가 348,000원이고 전날 선이 321,000원이므로 (348,000 / 321,000)의 4제곱이 약 1.381이다. 분모는 0.6 곱하기 10 곱하기 1.381이 되고, 보정은 27,000을 그 값으로 나눈 약 3,258원이다. 선은 324,258원이 된다. 코드가 낸 값과 같다.
N을 10으로 잡은 이유는 두 가지다. 50거래일 자료에서 20을 쓰면 시드의 영향이 가시지 않은 채 구간이 끝나 버린다. 5를 쓰면 종가를 거의 그대로 따라가서 이동평균으로 쓸 이유가 없다. 10은 그 중간이고, 비교 대상인 10일 지수이동평균(EMA)과 같은 눈높이이기도 하다. k는 원안 0.6을 그대로 썼다. 뒤에서 N과 k를 바꿨을 때 결론이 어떻게 달라지는지 따로 본다.
재귀식이라서 예열 문제가 있다. 첫 값을 첫 종가로 박아 놓았으니 처음 며칠은 선이 시드에 끌려 다닌다. 이 글은 첫 10거래일(7월 22일부터 8월 4일까지)을 예열로 보고, 그 안에서 난 교차 5번(7월 23일, 28일, 30일, 8월 3일, 4일)은 평가에서 뺀다. 나머지 40거래일이 유효 구간이다. 선 값은 나오지만 믿고 쓸 수 있는 구간은 아직 아니다.
선은 종가를 어떻게 따라갔나

차트의 갈색 선이 맥긴리 다이내믹이다. 8월 초 급등 구간에서 선이 얼마나 뒤처지는지가 눈에 띈다. 8월 10일 종가는 367,500원이었는데 선은 333,617원이었다. 8월 14일에는 종가 369,500원에 선 345,784원이었다. 가격이 달아날 때 선이 천천히 따라붙는 것은 설계대로다. 대신 이 구간에서 선 위에 머문 종가는 8월 4일 상향 교차부터 8월 21일 하향 교차까지 12거래일이었다. 다만 8월 4일 교차는 예열 구간 안에 있으므로 성적표에는 넣지 않았다.
문제는 9월 1일 이후다. 이 22거래일 동안 종가는 347,500원에서 371,000원 사이를 오르내렸는데, 선은 357,021원에서 361,819원 사이, 폭으로 4,798원짜리 좁은 띠 안에서만 움직였다. 종가는 이 띠를 계속 가로질렀다. 적응형이라는 말에는 방향성이 있는 시장을 따라가는 능력이 들어 있고, 방향이 없는 시장에서 쉬는 능력은 들어 있지 않다.
교차 신호 전수 점검
예열 이후 종가가 선을 위로 뚫거나 아래로 뚫은 횟수는 16번이다. 8번이 상향, 8번이 하향이다. 신호가 난 날 종가에 들어가 5거래일 뒤 종가에서 나오는 것으로 계산했다. 상향 신호는 올라야 맞고, 하향 신호는 내려야 맞는다. 마지막 3번(9월 28일, 29일, 10월 1일)은 5거래일이 아직 지나지 않아 평가하지 못했다. 평가 가능한 신호는 13번이다.

날짜 방향 종가 5일 뒤 종가 방향 기준 수익률
--------------------------------------------------
08-21 하향 343,500 370,000 (08-28) -7.71%
08-24 상향 362,000 378,000 (08-31) +4.42%
08-25 하향 349,500 367,000 (09-01) -5.01%
08-26 상향 351,000 347,500 (09-02) -1.00%
09-02 하향 347,500 371,000 (09-09) -6.76%
09-03 상향 365,500 365,000 (09-10) -0.14%
09-04 하향 358,500 360,000 (09-11) -0.42%
09-07 상향 362,500 351,500 (09-14) -3.03%
09-08 하향 348,500 365,500 (09-15) -4.88%
09-09 상향 371,000 367,000 (09-16) -1.08%
09-11 하향 360,000 364,000 (09-18) -1.11%
09-15 상향 365,500 350,500 (09-22) -4.10%
09-21 하향 352,000 357,000 (09-30) -1.42%맞은 신호는 8월 24일 한 건이다. 종가 362,000원에서 상향 교차가 났고, 5거래일 뒤 8월 31일에 378,000원으로 +4.42%를 줬다. 이 값이 이번 구간의 최고 종가이기도 하다. 나머지 12건은 신호 방향의 반대로 갔다. 평균을 내면 신호 방향 기준 -2.48%다.
빗나간 쪽을 구체적으로 보자. 8월 21일에는 종가 343,500원이 선 아래로 내려가 하향 교차가 났는데, 5거래일 뒤 8월 28일 종가는 370,000원으로 +7.71% 올라 있었다. 9월 2일 하향 교차(347,500원)도 9월 9일 371,000원으로 +6.76%를 줬다. 9월 8일 하향(348,500원)도 9월 15일 365,500원으로 +4.88%였다. 이 세 건에서는 하향 신호가 난 날이 단기 저점이었다. 반대편도 비슷하다. 9월 15일 상향 교차(365,500원)는 9월 22일 350,500원, -4.10%로 끝났다.
더 나쁜 점은 신호가 오래 가지 못한다는 것이다. 연속한 신호 사이의 간격 15개 중 12개가 2거래일 이하였다. 8월 24일에 선 위로 올라선 종가가 다음 날 바로 선 아래로 내려갔고(8월 25일), 그다음 날 다시 올라섰다(8월 26일). 사흘 사이 종가는 362,000원, 349,500원, 351,000원으로 움직였고 그동안 선은 350,000원 안팎에 머물렀다. 추세 신호로 읽기 어렵고, 선 주변을 서성이는 잡음으로 보인다. 8월 26일 상향 교차는 5거래일 유지됐지만 그날 종가 351,000원과 선 350,435원의 차이가 565원이었다.
해석에는 주의가 필요하다. 13건 중 12건이 “반대로 갔다"는 결과는 방향 예측이 틀렸다는 뜻이다. 반대 방향으로 거래했다면 돈을 번다는 뜻은 아니다. 표본이 13개뿐이고, 이 구간의 박스 성격이 결과를 만들었을 가능성이 높다. 평균회귀가 통하는 박스에서는 선을 막 넘은 가격이 곧 되돌아오는 일이 흔하다. 다른 구간에서도 같은 결과가 나온다는 증거는 이 글에 없다.
파라미터를 바꾸면

설정 교차 평가가능 적중 방향 기준 평균
--------------------------------------------------
N=5 18 15 2 -2.27%
N=10 16 13 1 -2.48%
N=20 10 7 0 -2.65%
EMA(10) 18 15 2 (비교용)N을 5로 줄이면 교차가 18번으로 늘고 적중은 15건 중 2건이다. 20으로 늘리면 교차가 10번으로 줄지만 평가 가능한 7건 중 적중은 0건이다. 신호를 줄인다고 정확해지지 않았다. 흔들림을 덜 타는 대신 늦게 알려 주고, 늦게 알려 준 뒤에는 이미 되돌림이 시작되어 있었다. 10일 EMA도 18번 교차해서 15건 중 2건만 맞췄다. 맥긴리 다이내믹이 이 구간에서 EMA보다 낫다고 말할 근거는 나오지 않았다.
k를 바꿔도 마찬가지다. k=0.4면 교차 18회, k=0.6이면 16회, k=0.8이면 12회다. k를 키울수록 선이 느려져 신호가 줄어드는 방향이다. 종가와 선 사이의 평균 절대 간격도 확인해 보았다. 예열 이후 N=5는 6,729원, N=10은 9,903원, N=20은 14,635원이고, EMA(10)은 8,256원이었다. 같은 10이라도 맥긴리 다이내믹이 종가에서 더 멀리 떨어져 있다. 추세 구간에서 뒤처지는 것이 평균 간격을 키웠을 것이다. 원래 약속이었던 “시장 속도에 더 잘 붙는다"는 이 자료로는 확인하지 못했다.
봇 게이트에 넣을 것인가
단독 진입 신호로는 넣지 않는다. 16회 중 12회가 2거래일 안에 뒤집히는 신호를 진입 조건으로 쓰면 수수료와 슬리피지만 쌓인다. 다만 다른 용도는 남아 있다. 지금처럼 가격이 선 위에 있는지만 보는 추세 필터, 즉 하루 한 번 “선 위냐 아래냐"를 확인해서 다른 신호의 방향을 거르는 용도다. 이 글의 표본으로는 그 필터의 성능도 검증하지 못했으므로, 쓰려면 더 긴 자료로 따로 시험해야 한다.
정리하며
가장 최근 값만 적어 두면, 10월 2일 종가 371,000원은 선 359,558원보다 +3.18% 위에 있다. 10월 1일에 상향 교차가 났고 아직 유지 중이다. 이 신호가 5거래일 뒤 어떻게 되었는지는 이 글의 평가에 들어가지 않았다. 앞의 13건이 보여 준 평균대로라면 틀릴 쪽에 걸어야 하겠지만, 13건으로 규칙을 만들 용기는 없다.
맥긴리는 이동평균의 지연을 줄이려 했다고 하는데, 이번 자료에서는 지연이 줄었다는 증거를 찾지 못했다. 8월 초 상승장에서는 선이 한참 뒤에 있었고, 9월 박스에서는 선이 너무 가운데에 얌전히 있어서 가격이 매일 선을 건넜다. 이 지표를 다시 시험한다면 추세 구간만 따로 떼어, 선이 뒤처지는 폭이 오히려 손익에 도움이 되었는지를 확인하고 싶다. 박스 구간은 그 반대다. 다음에 이 종목이 다시 돌아올 때 같은 계산을 새 자료로 돌려 보면 알 수 있을 것이다.
이 글의 모든 수치는 수집한 일봉과 직접 계산한 값이다. 지표 계산과 신호 평가는 과거 자료에 대한 것이며 미래 수익을 보장하지 않는다. 투자 판단과 책임은 본인에게 있다.
약어 풀이
* 이 글에 나온 영어 약어를 풀어 둔다.
- EMA (Exponential Moving Average): 지수이동평균. 최근 가격에 더 큰 가중치를 주어 계산하는 이동평균.
- KRX (Korea Exchange): 한국거래소. 코스피와 코스닥이 거래되는 시장.
- MD (McGinley Dynamic): 맥긴리 다이내믹. 이 글의 계산식에서 지표 값을 가리키는 기호.