Parkinson·Garman–Klass·Rogers–Satchell·Yang–Zhang: OHLC 변동성 추정량 비교
고가·저가·시가·종가를 쓰는 네 변동성 공식을 비교하고, 각 추정량의 가격 경로 가정과 시가 갭 처리 및 가상 계산 예제를 살펴봅니다
이 글에서 다루는 내용OHLC 봉이 더해 주는 정보
짧은 요약
Parkinson, Garman–Klass, Rogers–Satchell, Yang–Zhang 추정량은 종가만 보지 않고 고가·저가·시가·종가를 이용해 과거 분산을 계산합니다. 네 방법은 같은 값을 다른 이름으로 부르는 게 아닙니다. 앞의 두 방법은 장중 드리프트가 없는 연속 가격 경로를 가정하고, Rogers–Satchell은 장중 드리프트를 허용하며, Yang–Zhang은 전일 종가에서 다음 시가까지의 수익률도 별도로 반영합니다
OHLC 봉이 더해 주는 정보
OHLC 봉은 정해진 구간의 시가 O, 고가 H, 저가 L, 종가 C를 기록합니다. 종가 대 종가 수익률은 두 끝점 사이의 변화만 남기지만, 고가와 저가는 가격이 그 구간 안에서 어디까지 움직였는지도 보여 줍니다. 가격이 시작점 부근에서 끝나더라도 중간 경로의 폭은 클 수 있습니다
이 경로 정보를 쓰면 추정량을 유도한 가격 모형이 실제 움직임을 잘 설명하는 경우 표본 효율이 좋아질 수 있습니다. 그러나 모든 시장에서 모든 OHLC 추정값이 더 정확하다는 뜻은 아닙니다. 극단값은 잘못 입력된 체결, 거래가 뜸한 시간의 작은 주문, 가격 제한, 경매 가격일 수 있습니다. 급격한 점프와 변동성의 변화도 고전 공식의 가정에서 벗어납니다
‘변동성’은 분산 또는 그 제곱근인 표준편차를 가리킬 때가 있습니다. 아래 공식은 먼저 봉 하나에 대한 로그수익률 제곱 단위의 분산을 구합니다. 제곱근을 취해야 해당 구간의 표준편차가 됩니다. 분산을 평균한 뒤 제곱근을 취하는 것과 표준편차를 먼저 계산해 평균하는 것은 서로 다른 연산이므로 결과를 섞어 쓰지 않습니다
계산 전에 가격 구간부터 고정하기
모든 구간에서 같은 기준으로 O, H, L, C를 정합니다. H는 O와 C보다 낮을 수 없고, L은 둘보다 높을 수 없습니다. 네 가격에 동일한 가격 조정과 통화 기준을 적용해야 합니다. 주식 분할과 분배금 조정, 선물 롤오버, 토큰 단위 변경, 거래소별 가격 차이를 일부 값에만 반영하면 인위적인 범위가 생길 수 있습니다
봉 i에 대해 hᵢ = ln(Hᵢ/Lᵢ), cᵢ = ln(Cᵢ/Oᵢ), uᵢ = ln(Oᵢ/Cᵢ₋₁), dᵢ = ln(Cᵢ/Oᵢ)라고 두겠습니다. cᵢ와 dᵢ는 같은 시가-종가 로그수익률이고, uᵢ는 직전 종가에서 이번 시가까지의 봉 사이 수익률입니다. 자연로그를 사용하면 이어지는 가격 구간의 로그수익률을 더할 수 있습니다
거래소가 닫혀 있어도 뉴스와 다른 거래소의 가격은 움직일 수 있습니다. 그래서 다음 시가는 직전 종가보다 높거나 낮게 시작할 수 있습니다. 장중 H/L만 쓰는 공식은 이 갭을 보지 못합니다. 24시간 거래되는 암호화폐에는 거래소 휴장으로 생기는 밤사이 단절이 없지만, 일봉 경계는 시간대와 마감 시각에 따라 달라집니다. 모든 경계 수익률을 ‘야간 갭’이라고 부르지 말고 구간 정의를 밝혀야 합니다

Parkinson: 고가와 저가 범위만 사용
n개 동일 구간에 대한 Parkinson 분산 추정량은 σ²P = (1/n) Σᵢ[ln(Hᵢ/Lᵢ)]² ÷ (4 ln 2)입니다. 구간의 시가나 종가가 어디에 있는지는 보지 않고 고저 범위만 묻습니다. 원 논문은 드리프트가 0인 연속 랜덤워크를 가정해 범위 추정법을 도출했습니다([Parkinson 원 논문]({source:parkinson1980ExtremeValueVariance})). 단 한 번의 종가 간 변화보다 고저 범위가 확산 분산에 더 많은 정보를 담을 수 있다는 점이 핵심입니다
한 봉의 H/L이 104/98이라고 가정하면 ln(104/98)은 약 0.05942입니다. 이를 제곱해 4 ln 2로 나누면 구간 분산은 약 0.001274, 제곱근은 약 3.57%입니다. 이는 모형에 따른 구간 변동성 추정치입니다. 가격이 실제로 매끄러운 경로를 따라 움직였다는 뜻도, 다음 구간에서 3.57% 움직일 것이라는 예측도 아닙니다
Parkinson은 O와 C를 사용하지 않으므로 저가 부근에서 시작해 고가 부근에서 끝난 날과 중간에 반전한 날을 구분하지 못합니다. 전일 종가에서 시가까지의 변화도 포함하지 않습니다. 구간 내 드리프트가 중요하면 드리프트가 없다는 유도 가정 때문에 편향이 생길 수 있습니다. 점프, 거래가 드문 구간, 오래된 호가, 잘못된 체결이 고가·저가에 섞이면 범위 자체가 불안정해집니다
Garman–Klass: 시가와 종가의 움직임 추가
Garman–Klass의 봉별 구성항은 gᵢ = 0.5[ln(Hᵢ/Lᵢ)]² − (2 ln 2 − 1)[ln(Cᵢ/Oᵢ)]²입니다. n개 봉에서 gᵢ를 평균해 분산을 추정합니다. 고저 범위에 시가-종가 움직임을 함께 반영하므로, 고저 폭에 비해 시가-종가 수익률이 큰 경우 두 번째 항이 범위만으로 추정한 결과를 조정합니다
O=100, H=104, L=98, C=103인 예시 봉에서는 첫 항이 0.5 × 0.05942²이고, 둘째 항은 (2 ln 2−1) × ln(1.03)²입니다. 계산 결과는 약 0.001428이며 제곱근은 약 3.78%입니다. 네 입력은 반드시 동일한 봉의 가격이어야 하고 자연로그를 사용해야 합니다. 단순 퍼센트 변화와 로그수익률 항을 조용히 섞으면 다른 추정량이 됩니다
Garman과 Klass는 특정 연속 가격 모형을 두고 더 효율적인 추정량을 제시합니다([Garman과 Klass의 논문]({source:garmanKlass1980OhlcVolatility})). 모형 아래의 효율성 이점은 모든 상황에 적용되는 순위가 아닙니다. 장중 O에서 C로 가는 경로 바깥의 시가 갭은 공식에 들어가지 않고, 장중 점프는 범위와 보정항을 함께 왜곡할 수 있습니다. 실제 자료가 가정에 맞지 않으면 이론상 표본 분산이 작다는 사실만으로 현실의 추정 오차가 더 작아지지는 않습니다
Rogers–Satchell: 봉 안의 드리프트 허용
Rogers–Satchell의 봉별 구성항은 rsᵢ = ln(Hᵢ/Oᵢ)ln(Hᵢ/Cᵢ) + ln(Lᵢ/Oᵢ)ln(Lᵢ/Cᵢ)입니다. 각 봉의 구성항을 평균합니다. 영(零) 드리프트를 둔 범위 추정량과 달리, 원 논문의 연속 확산 모형에서는 임의의 드리프트 항이 있을 때도 분산에 대해 불편 추정량입니다([Rogers와 Satchell의 논문]({source:rogersSatchell1991VarianceEstimator})). 가격이 한 방향으로 추세를 보이는 구간에서 그 방향 움직임을 드리프트 0으로 놓지 않는다는 의미입니다
O=100, H=104, L=98, C=103인 예시에서 위쪽 항은 ln(1.04) × ln(104/103), 아래쪽 항은 ln(0.98) × ln(98/103)입니다. 두 항을 더하면 약 0.001384이고 제곱근은 3.72%입니다. 두 곱은 고가와 저가가 구간의 양 끝점에 비해 어디에 놓였는지를 함께 반영합니다. 그래서 Rogers–Satchell은 고저 범위를 단순히 제곱한 공식과 같지 않습니다
드리프트를 다룬다는 말은 점프, 잡음, 갭에 영향을 받지 않는다는 뜻이 아닙니다. Rogers–Satchell 구성항은 봉 내부의 O부터 C까지를 설명합니다. O가 다음 거래일의 첫 체결이면 직전 종가에서 다음 시가까지의 변화는 이 항에 들어가지 않습니다. 그 변화가 측정하려는 일간 위험의 일부라면 갭 항을 따로 두거나 해당 항을 포함하는 방법을 선택합니다
Yang–Zhang: 경계 갭과 장중 움직임 분리
Yang–Zhang은 세 성분을 결합합니다([원 논문]({source:yangZhang2000DriftIndependentOhlcVolatility})). 첫째는 봉 사이 로그수익률 uᵢ = ln(Oᵢ/Cᵢ₋₁)의 표본분산, 둘째는 시가-종가 로그수익률 dᵢ = ln(Cᵢ/Oᵢ)의 표본분산, 셋째는 Rogers–Satchell 구성항의 평균입니다. σ²YZ = s²u + k s²d + (1−k) mean(rsᵢ)로 쓸 수 있고, 가중치는 k = 0.34 ÷ [1.34 + (n+1)/(n−1)]입니다. 두 표본분산은 표본평균을 빼고 n−1로 나누며, Rogers–Satchell 항은 n개 구간에서 평균합니다
이 구성은 장중 드리프트를 다루면서 전일 종가에서 다음 시가까지의 움직임도 반영하려는 방법입니다. 그 경계 변동이 일간 위험의 일부인 질문에 적합할 수 있습니다. 표본분산을 구할 관측치가 최소 두 구간은 있어야 합니다. 봉 사이 성분은 직전 종가에서 다음 시가까지의 수익률을 포함합니다. 봉 내부의 가격 점프, 가격 단위의 이산성, 미시구조 잡음, 변동성 변화는 여전히 추정값에 영향을 줍니다
24시간 시장에서는 ‘야간’이라는 이름이 정확하지 않을 수 있습니다. 일관된 마감 시각을 기준으로 봉을 만들고, 직전 종가에서 다음 시가까지의 수익률을 계산한 뒤 거래가 계속된 경계 구간의 수익률이라고 설명하세요. 같은 거래라도 UTC 일봉과 거래소 세션 기준으로 만든 추정값은 달라질 수 있습니다
추정량을 비교하되 매매 신호로 취급하지 않기
| 추정량 | 봉 안에서 필요한 값 | 드리프트와 갭 처리 | 적합할 수 있는 질문 |
|---|---|---|---|
| Parkinson | H, L | 고전 유도는 드리프트 0; O, C, 직전 종가 갭은 사용하지 않음 | 가정이 타당할 때 범위만으로 만든 기준값 |
| Garman–Klass | O, H, L, C | 연속·무드리프트·무점프 세션 가정; 직전 종가 갭 제외 | 시가-종가 움직임도 고려하는 범위 추정 |
| Rogers–Satchell | O, H, L, C | 연속 확산 틀에서 봉 안 드리프트 허용; 직전 종가 갭 제외 | 봉 안의 추세를 0 드리프트로 보지 않을 때 |
| Yang–Zhang | 직전 C와 O, H, L, C | 봉 사이와 봉 안 수익률을 분리; 모형 아래 드리프트 처리 | 종가-시가 움직임이 위험 측정에 포함되어야 할 때 |
무엇이 가장 크거나 작게 나오는지로 고르지 말고, 측정하려는 대상에 따라 선택합니다. 같은 가격 시계열과 날짜, 봉 간격, 연율화 방식으로 종가 간 분산과 OHLC 추정량을 비교해 보세요. 값이 다르면 고가·저가 범위, 시가-종가 움직임, 갭, 이상치와 세션 정의를 확인합니다. 원하는 결론을 뒷받침하는 값을 골라서는 안 됩니다
평균진폭(ATR)도 고가·저가와 직전 종가를 사용해 관련 있어 보이지만 표의 변동성 추정량과는 다릅니다. ATR은 가격 단위의 진폭을 평균하고, 이 공식들은 로그가격 비율로 분산을 추정합니다. ATR은 정한 매매 규칙에서 손절 거리를 표현할 때 쓰일 수 있지만 OHLC 분산은 과거 산포를 요약합니다. 2달러 ATR과 3% 표준편차를 직접 비교하지 마세요.
가상 3개 세션 계산
직전 종가를 100으로 놓고 가상의 세션 세 개를 가정합니다. 1일 차는 O=100, H=104, L=98, C=103입니다. 2일 차는 O=105, H=108, L=102, C=103이고 3일 차는 O=101, H=106, L=99, C=105입니다. 이 가격은 계산 과정을 보여 주기 위한 가정값이며 현재 시장 자료가 아닙니다
각 H/L 쌍에 Parkinson 공식을 적용해 평균하면 σ²P ≈ 0.0013785, √σ²P ≈ 세션당 3.71%입니다. Garman–Klass 구성항 평균은 약 0.0015566, 제곱근은 3.95%입니다. Rogers–Satchell 구성항 평균은 약 0.0015458, 제곱근은 3.93%입니다. 모두 세 개의 봉에서 계산한 하루 단위 표준편차입니다. 표시 숫자는 반올림 때문에 약간 차이가 날 수 있습니다
Yang–Zhang의 봉 사이 수익률 세 개는 0.00000, ln(105/103)=0.01923, ln(101/103)=−0.01961입니다. 표본분산은 약 0.0003771입니다. 시가-종가 수익률은 ln(103/100)=0.02956, ln(103/105)=−0.01923, ln(105/101)=0.03884이며 표본분산은 약 0.0009731입니다. n=3이면 k≈0.1018이고 mean(rsᵢ)≈0.0015458입니다. 세 값을 식에 넣으면 σ²YZ≈0.0018646, √σ²YZ≈세션당 4.32%가 됩니다
네 결과가 다른 이유는 고저 범위와 시가-종가, 봉 사이 움직임에 부여하는 역할이 다르기 때문입니다. 세 관측치는 안정적인 추정에 턱없이 적으며, 이 예시는 어느 방법이 더 정확하다는 증거가 아닙니다. 더 긴 구간에 같은 방식으로 표본을 만들고 관측치 수, 자료원, 이상치 처리, 세션 기준을 함께 기록하세요
연속 시계열로 보기 전에 봉을 점검하기
최종 숫자만 보지 말고 추정값에 가장 크게 기여한 봉을 확인합니다. 고가나 저가 하나가 로그 범위의 제곱 항에 들어가므로 표본 구간이 짧으면 극단값 하나가 전체 추정량을 좌우할 수 있습니다. 원시 체결이나 호가를 확인하고 고가·저가가 정의한 시간 구간에 속하는지, 주식분할이나 선물 롤오버, 거래소 장애, 얕은 호가, 가격 제한이 관측 경로를 바꾸었는지 살펴봅니다. 결과가 불편하다는 이유로 관측치를 빼는 것은 타당한 이상치 처리 기준이 아닙니다. 계산 전에 제외 규칙을 기록해야 합니다
시가가 데이터 제공자마다 같은 의미인지도 확인합니다. 어떤 봉은 구간 안 첫 체결가를, 어떤 봉은 개장 경매 가격을, 다른 봉은 체결이나 호가를 집계한 값을 시가로 둘 수 있습니다. 한 데이터는 경매가로 세션을 시작하고 다른 데이터는 연속 거래 첫 체결로 시작하면 이후 가격이 같아도 O와 겉으로 보이는 갭은 달라집니다. 일봉·주봉 자료에서는 가격 조정 여부와 타임스탬프가 구간의 시작인지 끝인지 확인하세요
이동 추정량에는 관측 창의 길이와 갱신 주기도 함께 기록합니다. 20거래일 추정량을 매일 갱신하면 이전 값과 새 값이 20개 중 19개 관측치를 공유하므로 연속된 수치는 서로 독립이 아닙니다. 평활화 규칙은 선을 보기 쉽게 만들 수 있지만 지연과 추가 모형 선택을 더합니다. 평활 곡선이 점프나 자료 공백, 갑작스러운 범위 변화를 가리지 않도록 원래 추정량도 보관하세요
단위를 변환하고 추정값을 신중히 사용하기
위 계산은 세션별 분산과 표준편차입니다. 연율 변동성으로 나타내려면 먼저 분산에 비교 가능한 연간 세션 수를 곱하고 제곱근을 취합니다. 미국 주식 분석에서는 252거래일을 쓰기도 하고, 연속 거래되는 암호화폐의 일봉 시계열은 질문에 맞을 때 연간 365개 봉을 쓸 수 있습니다. 어느 숫자도 보편 규칙은 아닙니다. 연율화는 봉 정의가 섞이거나 점프가 포함된 입력을 바로잡아 주지 않습니다
OHLC 추정량을 위험 보고서, 포지션 크기 규칙, 백테스트에 쓰기 전에 봉 간격, 시간대, 거래소, 가격 조정, 결측 봉 처리, 공식을 고정하세요. 계산 시점에 이용할 수 있었던 자료만 써야 합니다. 과거 추정값은 선택한 표본의 움직임을 요약할 뿐 미래 예측, 손절 폭, 기대 변동폭, 단독 매수·매도 신호가 아닙니다. 실현변동성 계산 안내서는 종가 간 수익률과 연율화 선택을 설명하며, 이 글은 OHLC 봉 내부의 정보를 덧붙입니다. 과거 범위 측정이 아닌 조건부 변동성 모형을 보려면 GARCH 변동성 안내서를 참고하세요
자주 묻는 질문
Q1OHLC 변동성 추정량 중 무엇을 써야 하나요?
측정 질문과 표본 구간에 맞는 가정을 가진 방법을 고르세요. Parkinson은 범위만, Garman–Klass와 Rogers–Satchell은 시가-종가 정보도, Yang–Zhang은 직전 종가-시가 변화도 반영합니다. 결과값 크기만 보고 공식을 선택하지 말고 입력과 가정을 비교하세요
Q2Yang–Zhang 추정량은 야간 갭을 포함하나요?
전일 종가에서 당일 시가까지의 로그수익률을 별도 성분으로 포함합니다. 계속 거래되는 시장에서는 거래가 밤새 멈췄다고 가정하지 말고 일관된 봉 사이 수익률로 정의하세요
Q3암호화폐 변동성에도 이 공식들을 사용할 수 있나요?
암호화폐 OHLC 봉에도 적용할 수 있지만 거래소, UTC 등 마감 기준, 결측 봉, 잘못된 체결, 점프, 24시간 거래 구조를 밝혀야 합니다. 연간 365개 봉은 정의된 일봉 시계열에 대한 선택이지 암호화폐의 보편적 속성이 아닙니다
Q4OHLC 변동성은 다음 가격 움직임을 예측하나요?
아닙니다. 입력된 봉의 과거 가격 변동을 요약합니다. 미래 변동성을 예측하려면 별도 모형과 표본 외 평가가 필요하며, 네 공식만으로 방향을 예측하거나 매매 성과를 보장하지 않습니다
출처와 더 읽을 자료
내용 정정 제보
이 아티클 링크를 담은 이메일 초안을 준비합니다. 직접 보내야 Mark에 제보가 접수됩니다
QUICK CHECK
글을 다 읽었다면, 3문항으로 확인해보세요
Question 01
고전적인 Parkinson 추정량에는 어떤 값이 들어가나요?
정답을 고르면 바로 설명을 볼 수 있어요