지그재그(ZigZag) 지표란? 그려 놓은 고점·저점이 왜 다시 그려질까

‘ZigZag가 찍어 주는 고점과 저점이 정말 정확하네. 이대로 싸게 사서 비싸게 팔면 되겠지?’

ZigZag 차트가 정확해 보이는 것은 ZigZag가 고쳐 그리기 때문입니다. ZigZag가 그리는 마지막 구간은 언제나 아직 확정되지 않았습니다. 가격이 고점을 경신하면 직전의 ‘고점’은 지워지고 새로운 자리로 옮겨집니다. MT5의 ZigZag를 9개 상품의 일봉에서 매일 다시 계산해 집계해 보니, 전환점 1개가 남을 때마다 5개 가까이가 한 번 그려졌다가 나중에 지워졌습니다. 이 글에서는 먼저 표로 어떻게 고쳐 그려지는지 보고, 이어서 1~4가 표시된 실제 차트(이더리움, 2025년)로 살펴봅니다.

이 글은 MASQuant ‘트레이딩 아카데미 · 기술 지표 백과’ 시리즈의 한 편입니다. 모든 지표의 분류는 기술 지표 백과에 정리되어 있습니다.

한 문장으로 이해하기

ZigZag = ‘충분히 큰’ 고점과 저점을 꺾은선으로 잇고, 작은 움직임은 무시하는 것.

이 지표가 답하는 질문은 ‘이 구간 시세의 주요 전환점은 어디인가?’입니다. 다만 답은 나중에야 나옵니다.

ZigZag는 회고록을 쓰는 것과 같습니다. 인생의 정점과 바닥을 이으면 이야기가 또렷해집니다. 하지만 쓰는 사람은 아직 살아 있고, 오늘 ‘인생의 정점’이라 여긴 순간이 내년에는 더 높은 정점으로 바뀔 수도 있습니다. 마지막 장은 언제나 고쳐 쓰는 중이고, 더 이상 바뀌지 않는 것은 그 앞의 장들뿐입니다.

먼저 한 번 계산하기: 고점은 이렇게 옮겨진다

아래는 단순화한 예시로, 매일 장 마감 뒤 ZigZag의 ‘마지막 점’이 어디에 그려지는지 봅니다(아래는 설명을 위한 정수이며, 시세 데이터가 아닙니다).

며칠째 그날 고가 그날 저가 ZigZag의 마지막 점
3일째 105 101 3일째의 105(신고점)
4일째 103 100 여전히 3일째의 105
5일째 108 104 5일째의 108로 옮겨지고, 3일째의 점은 지워짐
6일째 106 101 여전히 5일째의 108
7일째 101 95 새 저점 95가 그려지고, 그제야 5일째의 108이 확정됨

4일째에 차트를 보면 105가 고점이라고 생각할 것입니다. 그런데 5일째가 되면 사라집니다. 고점은 다음 반대 방향의 점이 그려진 뒤에야 인정됩니다. 그때는 이미 가격이 고점에서 꽤 내려와 있습니다.

정식 공식

MT5에 포함된 ZigZag에는 파라미터가 세 개 있고, 기본값은 12, 5, 3입니다.

1 Depth(깊이) = 12: 최근 12개 봉 중 가장 높은(낮은) 점이어야 전환점이 될 자격이 있음
2 Deviation(편차) = 5: 가격 차이의 문턱값, 단위는 호가의 최소 변동폭
3 Backstep(백스텝) = 3: 같은 방향의 두 전환점 사이 최소 간격(봉 수), 너무 가까우면 더 극단적인 하나만 남김

고점과 저점은 번갈아 나타나며, 더 높은 고점(더 낮은 저점)이 나오면 마지막 점이 그리로 옮겨짐

ZigZag에는 널리 인정된 창시자가 없고, 플랫폼마다 계산 방식도 조금씩 다릅니다. 고정 비율을 쓰는 것(예를 들어 5% 넘게 움직여야 인정)도 있고, MT5의 예제 지표처럼 위의 세 파라미터를 쓰는 것도 있습니다. 어느 방식이든 마지막 구간은 바뀝니다. 차이는 바뀌는 빈도뿐입니다.

MT5의 ZigZag는 설치할 때 함께 들어오는 예제 지표(Examples 폴더) 안에 있으며, 지표 목록에 바로 내장되어 있지는 않습니다.

통계: 전환점은 얼마나 자주 지워지고, 확정까지 얼마나 걸리나?

MT5의 ZigZag(12, 5, 3)를 소스 코드 그대로 다시 작성해, 9개 상품(금, 은, S&P 500, 독일 40, 유로/달러, 파운드/달러, 달러/엔, 비트코인, 이더리움)의 2015년 이후 일봉에서 매일 장 마감 뒤 한 번씩 다시 계산하고, 날마다 그려진 모양을 기록했습니다.

항목 결과
최종적으로 남은 전환점 1,487
한때 전환점으로 그려졌다가 나중에 지워진 자리 7,327(1개가 남을 때마다 약 4.93개가 지워진 셈)
전환점 하나가 확정되기까지 기다리는 봉 수(중앙값) 6개 봉(절반은 4~9개 봉 사이)
확정까지 10개 봉 이상 22.2%
확정까지 20개 봉 이상 2.2%
확정될 때 가격이 전환점에서 이미 움직인 거리(중앙값) ATR(14)의 2.69배

‘확정’이란 그 뒤 매일 다시 계산해도 계속 남아 있고, 그 뒤에 다음 반대 방향의 점이 이미 그려진 상태를 말합니다. 9개 상품을 하나씩 따로 계산해도 중앙값은 모두 5~7개 봉 사이였습니다. 다시 말해 ZigZag가 ‘저기가 고점이었다’고 알려 줄 때, 가격은 보통 고점에서 이미 3 ATR 가까이 움직여 있습니다.

차트로 보기: 이더리움 2025년, 1~4 순서로

아래 차트는 이더리움(ETHUSD)의 2025년 2월 하순부터 6월 하순까지의 일봉으로, MT5 과거 시세에서 가져왔습니다. 주황색 실선은 전체 구간 데이터로 계산한 ZigZag(즉 ‘나중에 본’ 모양)이고, 보라색 점선은 5월 7일까지의 데이터만으로 계산한 ZigZag(즉 5월 7일 당일 차트에서 보이던 모양)입니다.

이더리움 2025년 2월~6월 일봉과 ZigZag. 5월 7일 당일의 ZigZag는 5월 1일을 마지막 고점으로 그렸지만, 이후 크게 올라 이 점은 지워졌고, 진짜 고점은 5월 29일이며 6월 5일에야 확정되었다
그림: 이더리움(ETHUSD) 일봉, 2025/2/20–2025/6/20, MT5 과거 시세. 속이 빈 캔들은 상승 마감, 속이 찬 캔들은 하락 마감입니다. 주황색 실선은 전체 구간 데이터로 계산한 ZigZag(12, 5, 3)이고, 보라색 점선은 5월 7일까지의 데이터만으로 계산한 ZigZag입니다. 회색 점선은 5월 7일, 빨간 점선은 5월 29일 고점이 확정된 날입니다. 오른쪽은 가격, 아래쪽은 날짜이며, 동그라미 숫자는 아래 설명과 대응합니다.
1

당시의 ‘마지막 고점’: 2025년 5월 1일, 1,871.46.

2

5월 7일에 차트를 봄(종가 1,796.69). 이날의 ZigZag는 6일 전의 1을 최근 고점으로 그렸고, 그 뒤 가격은 줄곧 1보다 낮았습니다. 고점이 이미 만들어지고 가격이 아래로 향하는 것처럼 보입니다.

3

진짜 고점: 5월 29일, 2,786.02. 바로 다음 날(5월 8일) 이더리움은 크게 올라, 1보다 48.9% 높은 곳까지 쭉 올랐습니다. 1의 점은 지워졌고, 나중에 본 ZigZag(주황색 선)는 4월의 저점에서 이곳으로 곧장 이어져, 마치 1이 처음부터 없었던 것처럼 보입니다.

4

3의 고점은 6월 5일에야 확정되었고, 7개 봉이 늦었습니다. 이날 종가는 2,396.74로, 이미 고점보다 14.0% 낮았습니다. 3 당일에도, 그 뒤 며칠 동안에도 그것이 고점이라는 것을 아직 알 수 없었습니다.

이는 실제 과거 시세의 한 구간으로, ZigZag의 성격을 설명하기 위한 것이지 일반 법칙이 아닙니다. 상품, 시간 단위, 구간을 바꾸면 숫자는 모두 달라집니다.

보이는 것, 의미하는 것

보이는 것 보통 의미하는 것 하지만 주의할 점
ZigZag의 마지막 구간 현재 가장 최근의 고점 또는 저점 아직 확정되지 않아 언제든 옮겨질 수 있음(차트의 1)
끝에서 두 번째 점 이전의 꺾은선 이미 확정된 고점·저점 확정될 때 가격은 보통 이미 3 ATR 가까이 움직여 있음
꺾은선이 모든 고점·저점을 깔끔하게 이음 나중에 본 모양 점 1개가 남을 때마다 약 5개가 한 번 그려졌다가 지워짐
고점도 저점도 차례로 높아짐 상승 구조 이미 확정된 점으로만 판단할 것
파라미터를 크게 함(예: Depth 20) 더 큰 전환만 남음 확정은 더 늦어짐

실전 활용: 예시 세 가지

예시 1: 다음 전환을 예측하지 말고, 지난 고점·저점을 정리하기

ZigZag가 가장 쓸모 있는 곳은 수많은 캔들을 몇 개의 주요 고점·저점으로 정리해, 피보나치 되돌림을 긋거나 이전 고점·저점을 찾기 쉽게 해 주는 일입니다(피보나치 예시는 피보나치 되돌림이란? 참고). 쓸 때는 이미 확정된 점만 씁니다.

예시 2: ‘확정된 점’으로만 구조 판단하기

규칙은 이렇게 쓸 수 있습니다. ‘가장 최근에 확정된 두 저점 가운데 뒤의 것이 앞의 것보다 높을 때만 상승 구조로 본다.’ 아직 확정되지 않은 마지막 점은 넣지 않습니다.

예시 3: ZigZag의 아이디어를 ‘그 순간에 알 수 있는’ 조건으로 바꿔 쓰기

아이디어가 ‘직전 고점을 돌파하면 매수’라면, 백테스트에서는 ‘종가가 최근 20개 봉의 최고가를 돌파’로 쓸 수 있습니다. 이 조건은 그날 바로 계산할 수 있고, 나중에 바뀌지 않습니다.

세 가지 예시 모두 기억해야 할 것이 있습니다. ZigZag는 나중에 정리하는 도구입니다. 그려진 점이 깔끔할수록 ‘이 점은 며칠에야 확정되었나?’를 물어야 합니다.

흔한 오용

1. ZigZag의 고점·저점대로 백테스트하기

나중에 그려진 ZigZag 점을 매매 시점으로 쓰면 백테스트는 아주 그럴듯해집니다. 모든 점이 가격이 다 움직인 뒤에야 그려진 것이기 때문입니다. 실제 거래에서는 1 같은 곳에서 사게 되고, 3까지 기다릴 수 없습니다.

2. 마지막 구간을 이미 방향이 바뀐 것으로 여기기

차트의 2 날, ZigZag는 6일 전의 1을 고점으로 그렸고, 아래로 향하는 것처럼 보였습니다. 그 뒤 가격은 1보다 48.9% 높아졌고, 그 점은 지워졌습니다.

3. 파라미터를 키우면 다시 그려지지 않는다고 생각하기

Depth를 키우면 전환점은 줄지만, 마지막 구간은 똑같이 바뀌고 확정까지 더 오래 기다려야 합니다. 다시 그려지는 것은 ZigZag 계산 방식 자체의 성질이지, 파라미터 문제가 아닙니다.

자주 묻는 질문

ZigZag 지표란 무엇인가요?

ZigZag(지그재그)는 일정 폭 이상의 고점과 저점을 꺾은선으로 잇고 작은 움직임을 걸러 내, 시세의 주요 전환점을 보여 주는 지표입니다. MT5 예제 지표의 기본 파라미터는 Depth 12, Deviation 5, Backstep 3입니다.

ZigZag는 왜 다시 그려지나요?

마지막 전환점이 아직 확정되지 않았기 때문입니다. 가격이 고점(저점)을 경신하면 마지막 점이 새 위치로 옮겨집니다. 다음 반대 방향의 점이 그려져야 비로소 앞의 점이 더 이상 바뀌지 않습니다.

ZigZag를 매매에 쓸 수 있나요?

이미 확정된 고점·저점을 정리하고 구조를 보는 데는 쓸 수 있지만, 그대로 매매 신호로 쓰기에는 맞지 않습니다. 저희 통계에서는 한 점이 확정되기까지 중앙값 기준 6개 봉을 기다려야 했고, 확정될 때 가격은 보통 전환점에서 약 2.7 ATR 떨어져 있었습니다.

MT5에 ZigZag가 있나요?

있습니다. MT5를 설치할 때 함께 들어오는 예제 지표(Examples 폴더) 안에 있으며, 기본 파라미터는 12, 5, 3입니다. 지표 목록에 바로 내장되어 있지는 않습니다.

맺음말

ZigZag가 그린 차트는 시세의 ‘나중에 본 버전’입니다. 아주 또렷하고, 아주 유혹적입니다. 그 가치는 과거를 정리하는 데 있지, 다음 전환을 예측하는 데 있지 않습니다.

그러니 정말 물어야 할 것은, 내 전략이 ZigZag의 고점·저점을 쓴다면, 백테스트에서 쓰는 것은 ‘확정된 뒤’의 점인가, 아니면 나중에야 그려진 점인가?입니다. 이 질문은 과거 시세 한 구간으로는 답할 수 없습니다. 규칙을 여러 구간의 시세에서 백테스트해야 합니다.

아직 나만의 규칙이 없고, 지표를 하나하나 조합하는 것부터 시작하고 싶지 않다면? MASQuant의 Strategy Genie는 먼저 투자 스타일 하나만 고르면, AI가 시장 상황을 분석하고 상품을 골라 후보 전략 세 개를 한 번에 제시합니다. 모두 과거 데이터로 미리 백테스트한 것이며, 수익률과 원금 최대 낙폭을 펼쳐 보여 준 뒤 MT5에 배포할지는 여러분이 결정합니다.

이미 나만의 아이디어가 있다면 조건을 한 문장으로 적어, 예를 들어 ‘종가가 최근 20개 봉의 최고가를 돌파하면 매수하고, 최근 10개 봉의 최저가를 깨면 청산’처럼 AI 전략 어시스턴트에 맡기고 버튼을 누르면 백테스트가 시작됩니다. 백테스트 환경에는 스프레드, 슬리피지, 시장 유동성 변화, 체결 지연 같은 실제 시장의 마찰이 반영되어 있습니다(사용 방법은 AI 전략 어시스턴트 사용 가이드 참고). 이렇게 그날 바로 계산할 수 있는 조건이어야 백테스트 결과가 실제 거래와 일치합니다. 백테스트가 알려 주는 것은 ‘이 규칙이 과거 시세에서 어땠는가’이지, 미래에 대한 보장이 아닙니다.

아이디어는 검증을 거쳐야 비로소 전략이 됩니다.

본문의 차트는 MT5 플랫폼의 과거 시세(일봉. 플랫폼마다 시세와 일봉 구분 방식이 조금씩 달라 수치가 완전히 같지 않을 수 있습니다)에서 가져왔습니다. ZigZag는 MT5에 포함된 예제 지표의 소스 코드에 따라 다시 작성했고, 통계에는 같은 플랫폼의 9개 상품(금, 은, S&P 500, 독일 40, 유로/달러, 파운드/달러, 달러/엔, 비트코인, 이더리움) 2015년 1월 이후 일봉을 썼으며, 매일 장 마감 뒤 한 번씩 다시 계산했습니다. MT5 차트에서 실시간으로 업데이트되는 방식과는 조금 달라 숫자에 차이가 있을 수 있습니다. 예시에 쓴 정수는 시세 데이터가 아닙니다. 과거 시세는 지표의 성격을 설명하기 위해서만 쓰였으며, 미래 가격 움직임을 나타내지 않습니다.

위험 고지: CFD는 고위험 금융상품으로, 빠른 자금 손실로 이어질 수 있습니다. 과거 성과는 미래 결과를 보장하지 않으며, 모든 전략과 백테스트는 참고용일 뿐 투자 조언이 아닙니다. 거래 전에 당사의 위험 고지 조항을 충분히 확인하시기 바랍니다.