평균실질변동폭(Average True Range, ATR)은 방향을 재는 지표가 아니다. 오늘 가격이 오를지 내릴지는 알려주지 않는다. 대신 하루 동안 가격이 얼마나 크게 흔들렸는지, 그 폭만 잰다. 웰스 와일더가 1978년에 상품 선물 시장을 보며 만든 개념인데, 당시 상품 시세는 밤사이 갭이 잦아서 단순히 고가에서 저가를 뺀 값만으로는 그날의 진짜 변동폭을 못 재는 경우가 많았다. 그래서 전일 종가까지 끌어들인 진범위(True Range)라는 값을 세웠고, 이걸 일정 기간 평균 낸 것이 ATR이다. 오실레이터처럼 과매수·과매도를 말해주지 않는 대신, 지금 시장이 얼마나 거칠게 움직이고 있는지를 숫자 하나로 요약해준다.
HD현대중공업은 이번 관찰 구간에서 그 거친 움직임을 그대로 보여줬다. 2026년 6월 11일부터 8월 21일까지 50거래일 동안, 6월 15일 종가 714,000원으로 고점을 찍은 뒤 7월 29일 434,000원까지 39.22% 미끄러졌다. 그러다 8월 10일 532,000원까지 22.58% 반등했고, 다시 밀려 8월 21일 453,000원으로 마감했다. 급락과 반등과 재하락이 두 달 안에 다 들어 있는 구간이라, 변동성이 국면에 따라 어떻게 늘고 줄었는지 보기에 알맞은 표본이다. 조선업종은 수주·환율·후판 가격 이슈가 겹치면서 하루 등락폭이 큰 편에 속하는데, 이 구간에서 하루 최대 등락률은 6월 15일의 +9.85%와 6월 23일의 -7.55%였다.
종목 HD현대중공업(329180)
구간 2026-06-11 ~ 2026-08-21 (50거래일)
출처 stockanalysis.com
--------------------------------------------------
최고종가 714,000원 (06-15)
최저종가 434,000원 (07-29)
고점대비낙폭 -39.22%
최근종가 453,000원 (08-21)이 글은 투자 권유가 아니다. 계산과 해석은 참고용이며 매매 판단과 그 결과에 대한 책임은 각자에게 있다.

계산과 실측
ATR은 두 단계로 만든다. 먼저 하루하루의 진범위(TR)를 구하고, 그다음 그걸 일정 기간 평균 낸다.
TR(t) = max( 고가(t)-저가(t), |고가(t)-종가(t-1)|, |저가(t)-종가(t-1)| )
--------------------------------------------------
ATR(t) = ( ATR(t-1) x 13 + TR(t) ) / 14 (와일더 평활, n=14)
최초값 = 첫 14개 TR의 단순평균기간은 14일로 잡았다. 와일더가 1978년 저서에서 제시한 원래 값이고, 지금 거의 모든 차트 플랫폼의 기본값도 여전히 14다. 하루하루의 노이즈에 너무 흔들리지 않으면서도 최근 3주 안팎의 변동성을 반영하는 균형점이라 그렇다. 이 글에서는 비교를 위해 7일 ATR도 같이 계산해뒀다. 기간을 반으로 줄이면 반응은 빨라지지만 그만큼 하루 이틀의 튀는 값에도 쉽게 흔들린다.
ATR(14)는 첫 14개 봉을 평균 내야 첫 값이 나오는 구조라서, 50거래일 중 앞의 13일은 유효한 값이 없다. 이 글의 신호 분석에서도 그 구간은 뺐다. 첫 유효값은 6월 30일의 43,464원(종가 대비 7.34%)이었다.

실제로 계산해보면 재미있는 지점이 하나 나온다. 주가는 6월 말부터 7월 내내 거의 쉬지 않고 흘러내렸는데, ATR(14)은 오히려 줄어드는 구간이 많았다. 6월 30일 43,464원이던 ATR은 7월 27일 34,783원까지 내려갔다가, 7월 하순의 급락(7/28 -7.30%, 7/29 -3.77%)에 다시 튀어 올랐고, 8월 들어서는 다시 완만하게 줄어 8월 21일에는 28,351원(종가 대비 6.26%)까지 내려왔다. 가장 낮은 비율은 8월 20일의 6.03%, 가장 높은 비율은 7월 14일의 8.68%였다. 추세가 한 방향으로 꾸준히 이어질 때는 하루 범위가 오히려 좁아지고, 방향이 꺾이거나 급하게 쏠리는 날에만 범위가 벌어진다는 걸 숫자로 보여주는 대목이다. 진범위 자체로 보면 가장 컸던 날은 6월 15일의 69,000원(그날 +9.85%), 가장 작았던 날은 8월 20일의 7,000원이었다.
신호 : 전일 ATR의 1배를 넘은 날
ATR 혼자서는 방향을 말해주지 않으니, 실전에서는 보통 필터로 쓴다. “오늘 범위가 최근 평균보다 유난히 컸는가"를 보고, 그런 날을 변동성이 확장된 날로 표시하는 식이다. 이 글에서는 당일 TR이 전일 ATR(14)의 1.0배를 넘은 날을 그렇게 표시하고, 다음날 종가가 그날과 같은 방향으로 더 갔는지(적중) 아니면 반대로 꺾이거나 멈췄는지(반전)를 전부 세어봤다. 50거래일 중 조건을 만족한 날은 10일이었다.
- 07-06: TR 44,000원(전일 ATR 41,420원의 1.06배), 당일 +1.04%, 다음날 -5.32% → 반전
- 07-07: TR 59,000원(1.42배), 당일 -5.32%, 다음날 -6.34% → 적중
- 07-08: TR 48,000원(1.12배), 당일 -6.34%, 다음날 -1.93% → 적중
- 07-20: TR 39,000원(1.01배), 당일 -7.33%, 다음날 +0.67% → 반전
- 07-23: TR 37,500원(1.04배), 당일 +7.21%, 다음날 -2.51% → 반전
- 07-28: TR 41,000원(1.18배), 당일 -7.30%, 다음날 -3.77% → 적중
- 07-29: TR 48,500원(1.38배), 당일 -3.77%, 다음날 +3.23% → 반전 (이날이 구간 최저가였다)
- 07-30: TR 39,500원(1.09배), 당일 +3.23%, 다음날 +7.37% → 적중
- 08-10: TR 37,000원(1.13배), 당일 +5.14%, 다음날 -5.45% → 반전
- 08-11: TR 40,000원(1.21배), 당일 -5.45%, 다음날 -1.39% → 적중
10건 중 적중이 5건, 반전이 5건이다. 정확히 반반으로 갈렸다. 특히 7월 29일 신호는 짚어볼 만하다. 이날은 구간 전체의 최저가가 찍힌 날인데, TR이 전일 ATR의 1.38배까지 벌어지며 신호가 울렸지만 다음날은 오히려 반등이 시작됐다. 변동성이 커진 날이 항상 추세 지속을 뜻하지는 않으며, 오히려 투매가 몰린 바닥에서도 똑같이 커진다는 걸 보여주는 사례다. 반대로 7월 7일과 7월 8일은 이틀 연속으로 신호가 울리면서 실제로 하락이 이어진 경우였다. 이 구간은 하락 추세의 한복판이었다는 점도 같이 봐야 한다.

민감도 : 기간과 배수를 바꾸면
파라미터를 바꾸면 결과가 얼마나 달라지는지도 확인해봤다. 먼저 배수를 1.0배에서 1.5배로 올리자 이 50거래일 구간에서는 조건을 만족하는 날이 하나도 남지 않았다. 하루 범위가 자기 자신의 14일 평균 진범위보다 50% 넘게 튀는 경우가 이 종목의 이 구간에서는 없었다는 뜻이다. 대신 기간을 14일에서 7일로 줄이면(배수는 1.0배 그대로) 더 최근 변동성만 반영하다 보니 문턱이 낮아져 신호가 15건으로 늘었고, 그중 다음날 추세가 이어진 경우는 6건(40%)이었다. 기간을 7일로 두고 배수를 다시 1.5배로 올리면 신호는 6월 23일과 7월 29일 단 2건으로 줄었는데, 하나는 적중(6/23, 하락 지속)이고 하나는 반전(7/29, 바닥에서 반등)이었다.

정리하면 이 필터는 문턱을 살짝만 올려도 신호 자체가 거의 안 남을 만큼 예민하고, 문턱을 낮추면 신호는 늘지만 적중률이 오히려 40%로 떨어졌다. 기간이나 배수를 어느 쪽으로 튜닝해도 다음날 방향을 앞서 맞히는 쪽으로는 뚜렷한 우위가 보이지 않았다. ATR이 원래 방향을 재는 지표가 아니라는 점을 생각하면 당연한 결과이기도 하다.
봇 게이트에 넣을 것인가
이 결과를 보면 “TR이 ATR의 몇 배를 넘었는가"를 그대로 매수·매도 신호로 쓰는 건 이 종목에서는 근거가 약하다. 10건 중 5건, 15건 중 6건이라는 숫자가 그걸 말해준다. 동전 던지기와 다를 게 없는 성적을 방향 신호로 자동매매 게이트에 넣을 이유는 없다.
다만 ATR을 아예 버릴 이유도 없다. 오히려 이 지표가 실전에서 쓰이는 자리는 따로 있다. 진입 여부를 정하는 신호가 아니라, 손절폭이나 포지션 크기를 정하는 자(scale)로 쓰는 자리다. 예를 들어 “종가에서 ATR의 2배 아래에 손절을 둔다"고 하면, 변동성이 큰 국면에서는 손절폭이 자동으로 넓어지고 잠잠한 국면에서는 좁아진다. 고정된 원 단위나 고정된 퍼센트로 손절을 두는 것보다 시장 상황에 맞춰 손절폭이 저절로 늘었다 줄었다 한다. 이번 구간으로 보면 6월 말의 ATR(14) 43,000원대와 8월 하순의 28,000원대는 거의 1.5배 차이가 나는데, 같은 퍼센트 손절폭을 두 시기에 똑같이 적용했다면 한쪽에서는 너무 타이트하고 다른 쪽에서는 너무 헐거웠을 것이다.
남는 것
이번 구간에서 남길 건 두 가지다. 하나는 변동성이 늘어나는 시점과 추세가 꺾이는 시점이 자주 겹친다는 점이다. 7월 29일 바닥이 그랬고, 8월 10일 단기 고점도 마찬가지였다. 다른 하나는 그 겹침만으로는 다음날 방향을 알 수 없다는 점이다. 변동성 확장은 상승 돌파에서도, 하락 투매에서도, 바닥에서 튀어 오르는 반등에서도 똑같이 나타났다.
ATR을 어디에 쓸지는 결국 무엇을 묻느냐에 달렸다. “오늘 방향이 이어질까"를 물으면 이 데이터는 별 답을 주지 않는다. “지금 손절을 얼마나 넓게 둬야 할까"를 물으면 이야기가 달라진다. 이 종목, 이 구간에서는 후자 쪽이 더 쓸모 있어 보였다. 다음 회차에서는 ATR을 실제 손절 폭으로 써서 시뮬레이션해보는 쪽을 검토해볼 만하다.
약어 풀이
* 이 글에 나온 영어 약어를 풀어 둔다.
- ATR (Average True Range): 평균실질변동폭. 진범위(TR)를 일정 기간 평활 평균한 값. 방향은 담지 않고 변동성의 크기만 나타낸다.
- TR (True Range): 진범위. 당일 고가·저가 차이와 전일 종가까지 함께 비교해 구한 하루치 실질 변동폭.
- KRX (Korea Exchange): 한국거래소. 코스피·코스닥을 운영하는 국내 유일의 증권 거래소.