분류
위험
난이도
초급
사용 상황
리스크 관리전략 설계백테스트

변동성

변동성은 시간에 따른 가격 변동의 정도 — 가격이 어느 방향으로가 아니라 얼마나 멀리 움직이는가 — 를 뜻한다. 통계적으로는 수익률의 표준편차이고, MT5 EA 안에서는 평균 실질 변동폭(ATR)로 읽히며, 지난달의 손절 거리가 오늘도 여전히 맞는지를 결정한다.

다른 표현: market volatility, price volatility

업데이트일 · 검토일

쉽게 말하면

가격이 어느 방향으로가 아니라 보통 얼마나 멀리 움직이는가를 말한다. 조용한 시장과 격렬한 시장이 같은 가격으로 한 주를 마칠 수 있다. 변동성은 그 두 여정의 차이다.

왜 중요한가

EA 안의 모든 손절 거리, 목표, 랏 크기는 한 세션에 가격이 얼마나 움직이는가에 대한 어떤 가정에 맞춰 보정되어 있다. 변동성은 그 가정을 명시적으로 드러낸 것이다. 실전 투입 후에 그것이 바뀌면, 로직을 한 줄도 바꾸지 않았는데도 옳았던 EA가 틀린 EA가 된다.

  • 손절의 의미를 정한다. 30핍은 조용한 8월의 EUR/USD에서는 넓은 손절이고, 정책 발표 중의 GBP/JPY에서는 좁은 손절이다.
  • 리스크와 포지션 크기를 잇는 다리다. 계좌의 일정 비율을 감수한다는 것은 변동성이 오르면 랏 크기가 내려가야 한다는 뜻인데, 이는 EA가 변동성을 재고 있을 때만 일어난다.
  • 백테스트는 자기 구간의 변동성을 물려받는데, 그 구간이 하나의 국면인 경우는 드물다. 여기서 측정한 공개 원장 22개에서 가장 요동친 분기는 가장 잔잔한 분기의 2.29배(중앙값)였고, 설정은 내내 같았다.
  • 아무것도 망가지지 않았는데 실거래 결과가 백테스트에서 멀어지는 주된 이유다. 스프레드는 변동성과 함께 벌어지고 슬리피지도 함께 커지며, 둘 다 원장의 불리한 쪽에 떨어진다.

계산 방법

σ = 기간별 수익률의 표준편차 · 연율화 σ = σ_daily × √252
기간별 수익률
측정에 쓰는 시간대가 무엇이든, 한 봉의 종가에서 다음 봉의 종가까지의 백분율 변화.
√252
일간에서 연간으로 바꾸는 스케일링. 각 기간이 직전 기간과 독립이라고 가정한다. 장중 시스템은 대신 자기 보유 기간 안의 봉 수(√N)로 스케일링한다.
ATR
N개 봉에 걸친 평균 실질 변동폭(ATR) — EA가 iATR로 직접 읽을 수 있는 실용적 대리 지표로, 퍼센트가 아니라 핍으로 표현된다.

통계적 정의는 수익률의 표준편차이며, 샤프 지수, VaR을 비롯한 모든 리스크 모델이 쓰는 것이 바로 이것이다. EA 안에서의 실용적 정의는 평균 실질 변동폭(ATR)로, 같은 개념을 가격 단위로 재며 수익률 계열 없이도 계산할 수 있다. '변동성'이라고 불리는 두 수치가 실은 이 서로 다른 두 가지인 경우가 많다.

어느 정도면 높고 낮은가

  • 테스트 구간 σ의 0.75× 미만 테스트 구간보다 잔잔함 — 목표에 닿지 못하고 반복되는 작은 비용이 지배한다
  • 테스트 구간 σ의 0.75–1.25× 설정을 맞춰 둔 국면. 공개 원장에서는 375개 분기 중 282개가 여기에 있었다
  • 1.25–2× 높아진 상태 — 테스트 구간에 맞춰 크기를 정한 손절이 통상적인 봉에 걸리기 시작한다
  • 2× 초과 다른 국면. 공개 원장 22개 중 전체 구간 σ보다 이만큼 높은 분기를 가진 것은 2개뿐이었다

함께 봐야 할 지표

숫자 하나로 전략을 설명할 수 없습니다. 다음 지표들이 이 숫자의 해석을 바꿉니다.

예시

예시로 계산해 보자. 같은 EA가 30핍 고정 손절로 두 국면을 지나간다. 바뀌는 것은 통상적인 한 시간 움직임의 크기뿐이다.

조용한 국면 — H1의 ATR(14)
12핍
30핍 손절은 평균 범위 2.5개만큼 떨어져 있다 — 잡음 바깥에 여유 있게 놓인다.
변동성 큰 국면 — H1의 ATR(14)
34핍
같은 손절이 이제 평균 봉 하나 안에 들어가므로, 통상적인 움직임만으로 거래가 청산된다.
2.5 × ATR의 ATR 기반 손절, 조용한 국면
30핍
2.5 × ATR의 ATR 기반 손절, 변동성 큰 국면
85핍

ATR 기반 버전은 시장과 함께 넓어진다 — 하지만 그러면 랏 크기는 그만큼 줄어야 한다.

계산 30 ÷ 12 = 2.5 범위 · 30 ÷ 34 = 0.88 범위

결과 고정 손절은 의미가 세 배 가까이 바뀌지만, ATR 기반 손절은 그렇지 않다

해석하는 법

  • 전략이 여러 해에 걸쳐 무인으로 돌아간다면 고정 핍 거리보다 변동성에 맞춰 조정되는 손절을 택하라 — 단, 랏 크기도 같은 척도로 조정해야 한다. 그러지 않으면 넓어진 손절은 그저 더 큰 손실을 뜻할 뿐이다.
  • 변동성 급등을 가격 사건으로만 보지 말고 스프레드와 슬리피지 사건으로 다루어라. 체결 비용은 변동성과 함께 오르며, 손절이 걸릴 가능성이 가장 높은 바로 그 순간에 가장 빠르게 오른다.

mt5depot의 EA 페이지는 상품마다 테스트 구간과 데이터 출처를 밝히므로, 결과가 하나 이상의 국면에 걸쳐 있는지는 날짜에서 읽을 수 있다. 이 페이지의 모든 실측 수치는 그 상품들이 공개한 거래 원장(EXP-VOL-REGIME-001)에서 청산 거래 기준으로 나왔다.

흔한 오해

변동성을 방향으로 다루기

변동성이 높다는 것은 가격이 많이 움직인다는 뜻이지 위로 움직인다는 뜻이 아니다. 추세와 변동성은 별개의 측정치다 — 격렬한 횡보는 변동성이 높으면서 동시에 추세가 없다.

변동성을 손실로 다루기

공개 원장에서 EA의 일간 손익이 가장 요동친 분기는 22개 중 13개에서 수익이었고, 최악의 단일 일자는 22개 중 15개에서 그 분기 바깥에 있었다. 고변동성에서 EA를 끄는 필터는 그 분기를 쉬고서도 최악의 날 대부분을 여전히 놓쳤을 것이다.

랏을 줄이지 않고 손절만 넓히기

변동성 큰 국면에서 세 배가 되는 ATR 기반 손절은, 포지션 크기가 함께 줄지 않으면 위험에 놓인 돈도 세 배로 만든다. 적응형 손절은 적응형 사이징과 짝을 이룰 때만 도움이 된다.

자세히

MT5 전략 테스터에서 변동성이 들어오는 자리

테스터는 변동성 수치를 결코 찍어 주지 않는다. 그중 얼마가 리포트에 도달하는지는 세 가지 설정이 결정한다.

모델링. Every tick based on real ticks(실제 틱 기반 모든 틱)는 각 봉 안의 기록된 경로를 다시 재생하므로, 통상적인 봉 안에 놓인 손절은 실제로 걸렸을 자리에서 걸린다. M1 봉에서 생성하는 Every tick(모든 틱)은 그 경로를 보간하고, Open prices only(시가만)는 그것을 버린다. 손절이 봉의 범위보다 좁은 전략은 이 두 모드 어느 쪽으로도 판단할 수 없다 — 틱 데이터모델링 품질을 참고하라.

스프레드. 전략 테스터 → Settings → Spread에서는 Current(현재값) 또는 고정 포인트 수를 고를 수 있다. 어느 쪽이든 수년에 걸쳐 하나의 값에 고정하므로, 변동성 급등과 함께 찾아오는 스프레드 확대는 생성 틱 테스트에서 빠져 있다. 실제 틱에서는 스프레드가 틱 파일이 담고 있던 그대로다.

입력값. ATR로 크기를 정하는 손절은 Inputs 탭에 두 입력값, 기간과 배수를 노출한다. 2.0에서는 되는데 1.8이나 2.2에서는 안 되는 배수는 변동성이 아니라 한 구간의 되돌림에 맞춰진 것이다. MQL5에서 핸들은 OnInit에서 iATR(_Symbol, PERIOD_CURRENT, 14)로 한 번만 만든다. 값은 마지막으로 완성된 봉, 인덱스 1에서 읽으므로 손절 거리가 신호가 발생한 시점에 좌우되지 않는다. 설정은 ATR 항목에 있다.

공개된 22개 원장이 보여 주는 것

각 상품 페이지는 청산 거래 목록을 싣고 있으므로, EA 자신의 일간 손익의 σ를 달력 분기별로 재서 전체 구간과 비교할 수 있다. 24개 상품 중 두 개는 어느 분기에서도 활성일 10일에 이르지 못해, 채워 넣지 않고 제외했다.

측정 항목 (청산 거래 기준, 활성일 10일 이상인 분기)22개 EA 중앙값범위 또는 건수
EA당 조건을 충족한 분기 수15.5총 375개
국면 폭: 가장 요동친 분기 σ ÷ 가장 잔잔한 분기 σ2.29×1.25×에서 5.33×까지
국면 폭이 2×를 넘는 EA22개 중 15개
전체 구간 σ의 ±25% 이내인 분기78.76%375개 중 282개
최악의 단일 일자가 가장 요동친 분기 안에 있음22개 중 7개
가장 요동친 분기가 손실22개 중 9개
마지막 조건 충족 분기 σ ÷ 전체 구간 σ0.91×22개 중 17개에서 1 미만

두 행은 변동성 필터가 가정하는 바와 어긋난다. 최악의 하루는 22개 EA 중 15개에서 가장 요동친 분기 바깥에 떨어졌고, 그 분기는 22개 중 13개에서 돈을 벌었다. 나쁜 하루 하나는 국면이 아니며, 롤링 측정치는 그것이 오는 것을 보지 못한다.

가장 넓은 폭은 Murmuration의 것이다. 2026-Q1의 분기 σ 4.591%에 대해 다음 분기는 0.862%로, 설정이 동일한데도 5.33배 차이가 났다. 최악의 하루인 2020-03-18의 9.579%는 그보다 6년 앞선 더 잔잔한 분기에 있었다.

이 수치로 무엇을 할 것인가

수준이 아니라 국면을 읽어라. EA가 거래하는 시간대에서, 오늘의 ATR을 테스트 구간 전체의 ATR과 비교한다.

  1. 상품 페이지에서 테스트 구간의 시작일과 종료일, 그리고 EA가 돌아가는 시간대를 확인한다.
  2. 그 시간대의 차트에 기간 14의 Average True Range를 붙이고 마지막으로 완성된 봉을 읽는다. 그것이 실전 투입 시점의 ATR이다.
  3. 구간 평균은 같은 지표를 테스트 날짜 전체에 걸쳐 CopyBuffer(handle, 0, 1, bars, array)로 읽고 배열을 평균 낸다.
  4. 나눈다. 0.75–1.25 안이면 공개된 수치가 그대로 적용되고, 2를 넘으면 테스트 구간에 담겨 있지 않을 수 있는 국면에 들어선 것이다 — 여기의 원장 22개 중 전체 구간 σ보다 그만큼 높은 분기를 가진 것은 2개뿐이었다.

MT5에서 백테스트 실행하기는 위의 설정을 다루고, 파라미터 최적화는 ATR 배수의 인접값 확인을 다룬다. 급등이 어떻게 돈으로 바뀌는지는 포지션 사이징, 슬리피지, 최대 낙폭의 주제다.

자주 묻는 질문

변동성은 MT5 EA에 어떤 영향을 주나요?
EA가 쓰는 모든 거리의 의미를 바꿉니다. 고정 핍으로 정한 손절과 목표는 변동성이 오르면 좁아지고 내리면 느슨해지므로, 같은 설정이 다른 국면에서는 다른 전략이 됩니다. 스프레드와 슬리피지도 변동성과 함께 커집니다.
전략에서 정상적인 변동성 수준은 어느 정도인가요?
쓸모 있는 절대 수치는 없습니다. 중요한 것은 전략을 테스트한 구간에 대비한 현재 조건입니다. 공개 원장 22개에서는 중앙값 78.76%의 분기가 전체 구간 수치의 25% 이내에 있었습니다. 나머지가 바로 고정 설정이 맞춰지지 않은 백테스트의 부분입니다.
MT5 전략 테스터는 변동성을 모델링하나요?
다시 재생할 뿐, 모델링하지는 않습니다. 'Every tick based on real ticks'는 기록된 봉 내부 경로를 다시 재생하고, 생성 틱 모드는 각 봉 안에서 보간하며, 시가만 쓰는 모드는 봉 내부 움직임을 버립니다. 스프레드 설정도 그만큼 중요합니다. 'Current'는 테스트 전체에 하나의 값을 고정하므로, 틱 파일에 담겨 있지 않은 한 급등과 함께 찾아오는 스프레드 확대는 리포트에 없습니다.
높은 변동성은 EA에 좋은가요, 나쁜가요?
전략에 따라 다릅니다. 돌파와 추세 시스템은 대체로 움직임이 있어야 작동하고 조용한 시장에서는 멈추는 반면, 평균회귀와 그리드 시스템은 잔잔함을 선호하고 지속되는 추세에 손상을 입습니다. 양쪽 모두의 문제는 설정을 고정한 뒤에 국면이 바뀌는 것입니다.