ATR 파이썬 코딩: 평균진폭범위를 활용한 변동성 측정

ATR 파이썬 코딩: 평균진폭범위를 활용한 변동성 측정

ATR(Average True Range, 평균 진폭 범위)은 시장의 변동성을 측정하는 대표적인 기술적 지표입니다. 가격의 방향성을 고려하지 않고 순수하게 가격 변동 폭을 분석하여, 변동성이 클수록 평균진폭범위 값이 높아지고, 변동성이 작아지면 평균진폭범위 값이 낮아집니다. 이번 포스팅에서는 평균진폭범위의 개념과 계산 방법을 이해하고, ATR 파이썬 코딩으로 확인해보겠습니다.

 

 


글의 순서

ATR(평균 진폭 범위)의 개념과 활용
평균진폭범위 계산 방법
예제를 통한 ATR 계산 방법 이해
ATR 파이썬 코딩


ATR(평균 진폭 범위)의 개념과 활용

ATR이란?

ATR은 가격 변동의 크기를 측정하는 기술적 지표로, 주로 변동성(Volatility)이 높은 시장에서 유용하게 활용됩니다. 평균진폭범위가 높다는 것은 가격 변동 폭이 크다는 의미이며, 평균진폭범위가 낮으면 시장의 움직임이 제한적이라는 뜻입니다. 주의할 점은 평균진폭범위가 가격 변동의 세기를 나타내는 것이지, 가격의 방향성을 나타내는 것이 아니라는 점입니다.

ATR의 활용

ATR은 직접적인 매수/매도 신호를 제공하는 것이 아니라, 변동성 기반의 손절매(Stop Loss) 설정, 포지션 사이징(Position Sizing), 추세 강도 분석 등의 보조 도구로 사용됩니다. 실제 많은 트레이더들은 평균진폭범위를 활용하고 있습니다.

시장 상황에 따라 적용 방법이 달라집니다만, 일반적으로 다음의 방법을 생각해 볼 수 있습니다.

▶ 변동성 기반 손절매 설정
ATR 값을 기반으로 손절매(Stop Loss)를 설정하여 급격한 가격 변동으로 인한 손실을 줄일 수 있습니다.

▶ 포지션 크기 조절 (포지션 사이징, Position Sizing)
ATR이 높은 시장에서는 포지션 크기를 줄이고, 평균진폭범위가 낮은 시장에서는 상대적으로 포지션 크기를 늘리는 전략을 사용할 수 있습니다.

▶ 추세 강도 분석
가격 상승이나 하락이 ATR 증가와 함께 나타난다면, 해당 추세가 강한 것으로 볼 수 있습니다.

여기서 포지션 사이징은 한 번의 거래에 얼마나 많은 자금을 투입할 것인지 결정하는 과정을 의미합니다. 이는 투자자가 리스크를 관리하고, 자본을 보호하며, 장기적으로 수익을 극대화하는 데 중요한 요소입니다. 단순히 “이 종목이 좋아 보여서 100주 사야지” 하는 것이 아니라, 자신의 총 자본 대비 적절한 비율을 할당하여 리스크를 조절하는 것이 핵심입니다.

 

 


ATR 계산 방법

ATR을 계산하기 위해서는 먼저 트루 레인지(True Range, TR)를 구해야 합니다. TR은 한 주기(일봉, 1시간봉 등) 동안 가격 변동 폭을 의미하며, 다음 세 가지 값 중 최댓값으로 정의됩니다.

TR = max(고가 – 저가, |고가 – 이전 종가|, |저가 – 이전 종가|)

즉, 아래 세 가지 값 중 가장 큰 값이 트루 레인지(TR)가 됩니다.
▶현재 캔들의 최고가 – 최저가
▶현재 캔들의 최고가 – 이전 캔들의 종가(절대값)
▶현재 캔들의 최저가 – 이전 캔들의 종가(절대값)

ATR(Average True Range)은 일정 기간 동안의 TR을 평균 낸 값이며, 보통 14일 이동 평균을 사용합니다.


예제를 통한 ATR 계산 방법 이해

다음은 다섯 개의 봉(캔들)에 대해, 각 봉의 고가, 저가, 종가를 기반으로 평균진폭범위를 계산하는 예제입니다.

캔들 고가 (High) 저가 (Low) 종가 (Close) 이전 종가 TR (True Range)
1 105 100 102
2 108 102 107 102 max(108-102, |108-102|, |102-102|) = 6
3 107 103 105 107 max(107-103, |107-107|, |103-107|) = 4
4 110 105 109 105 max(110-105, |110-105|, |105-105|) = 5
5 112 107 110 109 max(112-107, |112-109|, |107-109|) = 5
> 여기서, 일정 기간(예: 3개 캔들)동안 TR에 대해 단순 이동 평균(SMA)하면 ATR이 됩니다. ATR(3일 기준)
캔들 3 ATR = (6 + 4) / 2 = 5.0
캔들 4 ATR = (6 + 4 + 5) / 3 = 5.0
캔들 5 ATR = (4 + 5 + 5) / 3 = 4.67


ATR 파이썬 코딩

평균진폭범위를 아래의 파이썬 코드에서 구현하였습니다. 코드의 핵심은 아래의 3부분입니다.
▶ 이전 종가 계산: shift(1)을 활용해 이전 종가를 구한다.
▶ 트루 레인지 계산: max(고가 – 저가, |고가 – 이전 종가|, |저가 – 이전 종가|)
▶ ATR 산출: rolling(window).mean()을 사용하여 지정된 기간 동안 TR의 단순이동평균을 구한다.






마치며 …

ATR(평균 진폭 범위)은 시장의 변동성을 측정하는 데 유용한 기술적 지표로, 트레이더들이 손절매 설정, 포지션 크기 조절, 추세 분석 등에 활용하는 기술적 분석 도구입니다. 이번 포스팅에서는 평균진폭범위의 개념, 계산 방법, 예제, 파이썬 코드 구현까지 다루었습니다. 평균진폭범위를 직접 계산하고 차트에 적용하여 변동성을 확인해보시기 바랍니다.

 

 

함께 참고하면 좋은 글
거래량 지표, 이동평균, 피봇포인트 비교: 기술적 분석 활용법
거래량 가중 이동평균, VWMA 파이썬 코딩
거래량 가중 평균값, VWAP 파이썬 코딩
한국투자증권 API, 3분봉, 5분봉, 10분봉… 원하는 분봉 자유롭게 만드는 방법
한국투자증권 API로 1분봉 OHLCV 데이터 가져오기
한국투자증권 REST API로 시계열 데이터를 가져오는 파이썬 코드
한국투자증권 API로 주가를 가져오는 파이썬 프로그래밍
한국투자증권 API 신청 방법
RESTful API : 웹 애플리케이션 개발자를 위한 기초부터 실전까지
파이썬 데이터 분석을 위한 API 이해, REST API, WebSocket API


참고자료

애버리지 트루 레인지 (ATR)

댓글 남기기