서론, 왜 클링거 오실레이터고 왜 에쓰오일인가
클링거 오실레이터(Klinger Oscillator, 정식 명칭은 Klinger Volume Oscillator)는 가격이 아니라 거래량의 압력을 재는 지표다. 스티븐 클링거가 만든 이 지표는 하루 고가와 저가의 폭, 그리고 그 폭 안에서 거래량이 최근 며칠간 같은 방향으로 쌓였는지 반대로 뒤집혔는지를 계산에 넣는다. RSI나 이동평균처럼 종가만 보는 지표와 달리, 오르는 가격 뒤에 거래량이 실제로 붙어 있는지를 따로 확인하려는 목적으로 설계됐다.
이 지표를 시험하기에 에쓰오일의 최근 구간은 나쁘지 않은 재료였다. 7월 14일부터 9월 23일까지 50거래일 동안 이 종목은 짧은 반등, 급한 조정, 긴 랠리, 다시 조정이라는 네 개 국면을 순서대로 거쳤다. 국면이 자주 바뀌는 구간일수록 거래량 기반 지표가 진짜 신호를 잡아내는지, 아니면 그냥 소음을 늘리는지가 잘 드러난다.
국면을 좀 더 풀어보면 이렇다. 7월 14일 131,400원에서 출발한 종가는 7월 24일 151,200원까지 15.07% 올랐다. 그다음 일주일은 정반대였다. 7월 24일부터 8월 3일까지 종가가 121,700원까지 밀리면서 19.51% 빠졌다. 이후가 이번 구간의 핵심이다. 8월 3일부터 9월 9일까지 26거래일 동안 종가는 165,900원까지 올라 36.32% 상승했고, 다시 9월 16일까지 13.14% 밀렸다가 9월 23일까지 7.98% 반등하며 마감했다. 방향이 네 번 바뀌면서 다섯 구간으로 나뉜 흐름이라, 거래량 압력을 재는 지표가 이 방향 전환을 얼마나 앞서 잡는지 볼 수 있는 조건이 갖춰졌다.
종목 S-Oil (에쓰오일)
코드 010950 (코스피)
구간 2026-07-14 ~ 2026-09-23, 50거래일
출처 stockanalysis.com 일봉 (교차검증 완료)
구간 최고 170,800원 (09-10 장중)
구간 최저 119,600원 (08-03 장중)
시작 종가 131,400원 (07-14)
끝 종가 155,600원 (09-23)
구간 등락 +18.42%
이 글은 투자 권유가 아니다. 지표 하나가 특정 구간에서 어떻게 움직였는지 계산 과정과 함께 기록해두는 스터디일 뿐이고, 매매 판단의 근거로 쓰라고 쓴 글이 아니다.
본론, 계산과 실측
클링거 오실레이터는 거래량 압력(Volume Force, 이하 VF)이라는 중간 값을 하루하루 쌓아서 만든다. 계산 순서는 이렇다.
dm = 고가 - 저가
추세 = +1, (고가+저가+종가) > 전일(고가+저가+종가)
추세 = -1, 그 반대
누적폭 cm = 전일 cm + dm, 추세가 전일과 같을 때
누적폭 cm = 전일 dm + dm, 추세가 전일과 바뀌었을 때
VF = 거래량 x |2 x (dm / cm - 1)| x 추세 x 100
KVO = EMA34(VF) - EMA55(VF)
시그널 = EMA13(KVO)파라미터 34, 55, 13은 클링거 본인이 제시한 원안이자 트레이딩뷰 기본값이다. 이번 글에서는 임의로 줄이거나 늘리지 않고 이 표준값을 그대로 썼다. 표준값이 짧은 표본에서 어떻게 흔들리는지 보여주는 편이, 처음부터 표본에 맞춰 파라미터를 조정한 결과보다 이 시리즈의 취지에 맞다고 판단해서다.
여기서 짚어야 할 한계가 있다. EMA55는 원래 55개의 VF 값이 쌓여야 완전히 무르익는데, 이번에 확보한 일봉은 50거래일뿐이다. stockanalysis.com의 일봉 표가 페이지당 50행으로 끊기고, 그 다음 페이지는 자바스크립트 버튼을 눌러야 불러와지는 방식이라 WebFetch로는 페이지 너머 데이터를 받아올 수 없었다. 그래서 EMA34, EMA55 모두 첫날 VF 값을 시드로 재귀 계산했고, 초반 구간의 KVO와 시그널선은 아직 예열이 끝나지 않은 상태로 봐야 한다. 첫날의 VF는 정의상 0이라 KVO도 0에서 출발하는데, 이 지점에서 발생하는 교차는 예열이 끝나기 전에 나온 잡음으로 보고 아래 신호 집계에서는 뺐다.
cm이라는 값이 하는 역할도 짚어둘 만하다. 추세가 유지되는 날에는 cm이 전날 cm에 dm을 더해 계속 불어나고, 그만큼 분모가 커져서 VF의 절대값은 작아진다. 반대로 추세가 뒤집히는 날에는 cm이 전날 dm과 오늘 dm의 합으로 리셋되면서 값이 작아지고, VF는 순간적으로 커진다. 즉 이 지표는 방향이 오래 유지될수록 오히려 신호 강도를 죽이고, 방향이 막 바뀌는 순간에 신호를 키우도록 설계돼 있다. 09-10 신호에서 dm이 19,200원으로 이 구간 전체에서 가장 컸던 것도, 그날 고가와 저가의 폭 자체가 컸던 데다 cm이 31,000으로 상대적으로 작게 리셋된 뒤였기 때문이다.
날짜 종가 dm cm KVO 시그널 방향
--------------------------------------------------------------------
07-28 129,500 11,350 32,150 1,163,334 1,804,623 하락
08-11 141,600 10,100 37,400 408,869 -393,452 상승
08-24 141,200 10,300 37,400 51,585 530,746 하락
08-31 150,100 4,500 23,100 -160,317 -737,363 상승
09-03 147,900 9,500 28,200 -1,208,820 -532,580 하락
09-04 157,300 12,200 21,700 602,397 -370,440 상승
09-10 154,900 19,200 31,000 -474,505 -81,950 하락
09-18 149,500 8,700 27,000 -520,101 -1,102,768 상승
여덟 번의 교차를 5거래일 뒤 종가로 확인했다. “상승” 신호가 나온 날로부터 5거래일 뒤 종가가 더 높으면 맞은 것으로, “하락” 신호 뒤 5거래일 종가가 더 낮으면 맞은 것으로 셌다.
- 07-28 하락 신호: 종가 129,500원, 5거래일 뒤(08-04) 125,800원, -2.86%. 적중
- 08-11 상승 신호: 종가 141,600원, 5거래일 뒤(08-19) 151,600원, +7.06%. 적중
- 08-24 하락 신호: 종가 141,200원, 5거래일 뒤(08-31) 150,100원, +6.30%. 불일치
- 08-31 상승 신호: 종가 150,100원, 5거래일 뒤(09-07) 157,600원, +5.00%. 적중
- 09-03 하락 신호: 종가 147,900원, 5거래일 뒤(09-10) 154,900원, +4.73%. 불일치
- 09-04 상승 신호: 종가 157,300원, 5거래일 뒤(09-11) 150,000원, -4.64%. 불일치
- 09-10 하락 신호: 종가 154,900원, 5거래일 뒤(09-17) 152,200원, -1.74%. 적중
- 09-18 상승 신호: 종가 149,500원, 5거래일 뒤(09-23) 155,600원, +4.08%. 적중
여덟 번 중 다섯 번 맞고 세 번 틀렸다. 62.50%다. 눈에 띄는 대목은 08-31, 09-03, 09-04 사이다. 나흘 사이에 상승, 하락, 상승으로 신호가 세 번 뒤집혔는데, 이 구간 실제 가격은 150,100원에서 157,300원까지 거의 한 방향으로 올랐다. 지표는 방향을 세 번 바꿨지만 가격은 한 번도 방향을 바꾸지 않았다. 이 나흘 구간만 놓고 보면 지표를 그대로 따랐을 때 나흘 안에 두 번은 반대 포지션을 잡았을 것이다.

파라미터를 표준값 34/55/13에서 더 짧은 21/34/8로 줄이면 어떻게 달라지는지도 같이 봤다. 같은 50거래일 구간에서 교차 횟수가 8회에서 10회로 늘었고, 7월 하순 구간에서는 표준값이 잡지 못한 교차를 단축판이 먼저 잡아내는 대신 그만큼 더 자주 흔들렸다. EMA 기간을 짧게 잡을수록 반응은 빨라지지만 그만큼 되돌림에도 민감해진다는, 이동평균 계열 지표에서 흔한 트레이드오프가 여기서도 그대로 나타났다.

이 지표를 봇 게이트에 단독으로 넣을지 여부는, 이번 표본만 보면 부정적이다. 62.50%라는 적중률 자체는 나쁘지 않지만 표본이 여덟 번뿐이고, 게다가 그중 세 번은 나흘 사이에 몰려서 실전에서는 연속으로 포지션을 뒤집는 비용만 키웠을 신호다. 게다가 EMA55가 아직 덜 무르익은 상태라는 점까지 고려하면, 지금 값을 그대로 게이트 조건에 넣기는 이르다. 거래량과 가격이 같은 방향으로 움직이는지 확인하는 보조 지표로, 다른 신호가 이미 방향을 잡았을 때 거래량이 뒷받침하는지 정도만 곁다리로 참고하는 편이 지금 단계에서는 더 안전해 보인다.
결론, 개인 소회
이번 구간에서 남기고 싶은 건 두 가지다. 하나는 예열 부족이 생각보다 티가 크게 난다는 점이다. 55개짜리 이동평균에 50개 데이터를 넣으면 그래프는 그려지지만, 그 그래프의 앞부분은 사실 아직 완성되지 않은 숫자다. 다른 하나는 거래량 기반 지표라고 해서 가격 기반 지표보다 신호가 덜 잦은 건 아니라는 점이다. 오히려 이번처럼 거래량이 들쭉날쭉한 구간에서는 나흘 만에 세 번 뒤집히기도 했다.
윌리엄 오닐은 거래량이 늘지 않는 상승은 의심하라고 했다. 이번 구간에 대입하면, 09-04의 상승 신호는 거래량 압력이 커지는 국면에서 나왔지만 정작 가격은 일주일 뒤 4.64% 밀렸다. 거래량이 받쳐준다고 해서 그 방향이 오래가는 건 아니라는 뜻으로 읽었다.
이 글도 투자 권유가 아니다. 다음에 같은 종목을 다시 다룰 기회가 있으면, 그때는 55거래일 넘는 데이터를 먼저 확보해서 예열이 끝난 구간만 놓고 같은 계산을 다시 해보고 싶다. 지금 숫자만으로 결론을 내리기는 아직 이르다.
약어 풀이
- 이 글에 나온 영어 약어를 풀어 둔다.
- KVO (Klinger Volume Oscillator): 클링거 거래량 오실레이터. 고가와 저가의 폭, 거래량, 추세 전환 여부를 묶어 계산하는 오실레이터다.
- EMA (Exponential Moving Average): 지수이동평균. 최근 값에 더 큰 가중치를 주는 이동평균 계산법으로, 클링거 오실레이터의 구성 요소인 VF를 평활화하는 데 쓰인다.
- RSI (Relative Strength Index): 상대강도지수. 일정 기간의 상승폭과 하락폭 비율로 과매수·과매도를 가늠하는, 종가만 쓰는 오실레이터다. 거래량을 쓰는 클링거 오실레이터와 대비하려고 서론에서 언급했다.