Chapter 12

기술적 분석과 그 한계

"5일선이 20일선을 뚫고 올라가면 사라." 주식 영상에서 가장 자주 듣는 말 가운데 하나다. 차트의 모양과 지표로 다음 움직임을 읽으려는 방법을 기술적 분석이라 한다. 이 장은 그 도구들을 하나씩 가상 시장에 얹어 보고, 규칙으로 바꿔 10년을 돌려 본다. 그다음 같은 도구를 동전 던지기로 만든 무작위 차트에 얹는다. 두 그림이 얼마나 닮았는지, 거래 비용을 넣으면 무엇이 남는지가 이 장의 질문이다.

차트로 다음을 읽는다는 생각

11장에서 캔들과 거래량, 이동평균을 읽는 법을 배웠다. 차트는 지나간 가격의 기록이다. 기술적 분석(Technical analysis)은 한 걸음 더 나아가, 그 기록의 모양에서 앞으로의 움직임에 대한 단서를 찾으려 한다. 회사의 이익과 자산을 따지는 7장의 방법(기본적 분석)과 달리, 가격과 거래량만 본다.

이 방법은 세 가지 가정 위에 서 있다. 가정이 맞는 만큼 도구가 쓸모 있고, 틀리는 만큼 도구는 그럴듯한 그림이 된다. 이 장은 가정을 믿거나 비웃는 대신, 숫자로 시험한다.

① 가격이 말한다 ② 추세가 있다 ③ 군중은 반복한다 정보는 가격에 다 반영된다 한번 생긴 방향은 한동안 이어진다 같은 가격대에서 같은 반응(지지·저항) 그렇다면 신호를 따라 사고팔 때 비용을 내고도 무작위보다 나은가?
그림 12-1. 기술적 분석의 세 가정. 이 가정들이 조금이라도 맞다면 차트에 단서가 남는다. 검증할 것은 "패턴이 보이는가"가 아니라 "그 패턴으로 매매해 비용을 내고도 남는가"다.

먼저 도구 상자를 연다. 아래는 이 책의 가상 시장(엔진이 교육용으로 만든 10년치 가짜 가격, 2016~2025년)이다. SB 종합지수와 다섯 가상 회사 가운데 하나를 고르고, 지표를 하나씩 켜 보자. 차트 위에 마우스를 올리면(휴대폰에서는 누르면) 그날의 값이 아래 숫자 칸에 나온다. 각 지표가 무엇인지는 이어지는 절에서 하나씩 푼다.

LAB

지표 실험실: 같은 차트에 다섯 가지 도구

종목
지표
날짜—
종가—
RSI(14)—
MACD 막대—
%B(볼린저)—
해볼 것: ① 처음 화면의 2019년 여름 급락에서 RSI가 30 아래로 얼마나 오래 머무는지 본다. ② 같은 구간에서 MACD 막대와 이동평균의 교차 중 어느 쪽이 먼저 바뀌는지 비교한다. ③ 별빛바이오로 바꿔 사건 하나에 볼린저 밴드가 얼마나 넓어지는지 본다. (가상 시장의 가격이며 실제 종목과 무관하다)

지표를 켜면 차트가 갑자기 "말이 되는" 그림으로 바뀐다. 선이 교차하고, 밴드가 좁아졌다 넓어지고, 숫자가 70을 넘었다 30 아래로 내려간다. 그런데 모든 지표는 지나간 종가와 거래량을 다시 계산한 것이다. 새로운 정보를 더하지 않고 같은 정보를 다른 모양으로 보여 줄 뿐이다. 이 점을 기억하고 하나씩 들여다보자.

이동평균과 골든크로스

이동평균(Moving average, MA)은 최근 n일 종가의 평균이다. 날마다 가장 오래된 하루를 빼고 새 하루를 넣으니 "움직이는" 평균이다. 20일선은 대략 한 달, 60일선은 석 달, 120일선은 반년의 평균 가격이다.

$$\text{MA}_n(t)=\frac{P_t+P_{t-1}+\cdots+P_{t-n+1}}{n}$$
\(P_t\)는 t일의 종가. 지수 이동평균(EMA)은 최근 값에 더 큰 무게를 주는 변형이다.

평균은 잡음을 걸러 준다. 대신 대가가 있다. n일을 평균하면 선은 평균적으로 약 n/2일 전의 가격을 따라간다. 짧게 잡으면 잡음에 흔들리고, 길게 잡으면 늦는다. 아래는 오르다가 130일째 무렵 방향을 바꾸는 가격이다. 재생을 누르고 기간을 바꿔 가며, 진짜 고점과 이동평균이 알려 주는 시점이 얼마나 떨어져 있는지 보자.

SIMULATOR

신호 지연: 평균은 늘 뒤에 온다

종류
진짜 고점—
가격이 선 아래로—
선이 꺾인 날—
선 꺾일 때 고점 대비—
해볼 것: ① 기간을 120으로 늘려 선이 꺾이는 날이 고점에서 몇 주 뒤인지 본다. ② 10으로 줄이면 빨라지지만 오르는 동안에도 가격이 선 아래로 자주 내려간다(헛신호). ③ EMA로 바꾸면 조금 빨라질 뿐 지연이 사라지지는 않는다. (오르다 내리는 추세에 하루 약 0.7%의 잡음을 더한 가상의 경로)

지연은 이동평균의 결함이 아니라 정의다. 미래를 쓰지 않고 잡음을 거르려면 과거를 섞을 수밖에 없다. 그래서 이동평균 신호는 "고점을 맞히는" 신호가 될 수 없고, 기껏해야 "이미 시작된 큰 움직임의 중간을 타는" 신호다. 움직임이 길게 이어지면 중간만 타도 남고, 짧게 끝나면 늦게 타고 늦게 내린다.

두 이동평균을 겹치면 유명한 규칙이 나온다. 짧은 선이 긴 선을 아래에서 위로 뚫으면 골든크로스(Golden cross), 위에서 아래로 뚫으면 데드크로스(Dead cross)다. "골든크로스에 사고 데드크로스에 판다"는 규칙을 가상 시장 10년에 그대로 적용해 보자. 신호가 나온 다음 날 종가에 사고판다(신호가 나온 날의 종가는 그날 장이 끝나야 알 수 있으므로). 비용은 2026년 기준 국내 주식의 수수료(약 0.015%, 사고팔 때 각각)와 증권거래세(0.20%, 팔 때)를 더한 왕복 약 0.23%다.

SIMULATOR

골든크로스 매매 10년 백테스트

종목
전략 총수익—
그냥 보유—
매매 횟수—
승률(왕복)—
최대 낙폭 전략 / 보유—
비용으로 사라진 몫—
해볼 것: ① 기본값(5일·20일)에서 비용을 껐다 켜며 총수익이 얼마나 달라지는지 본다. ② 20·60, 50·200으로 바꾸면 매매 횟수와 결과가 어떻게 바뀌는지 본다. ③ 종목을 바꿔 같은 규칙이 어떤 종목에서는 이기고 어떤 종목에서는 지는지 센다. (▲ 매수, ▼ 매도. 매매가 많으면 보유 구간 음영만 그린다. 아래 그래프는 1에서 시작한 계좌 가치, 로그 축)

몇 가지를 돌려 보면 결과가 한 방향으로 정리되지 않는다는 것을 알게 된다. 한빛반도체에서 5·20 규칙은 비용을 넣으면 10년 +47% 남짓으로, 그냥 들고 있었을 때의 +240%에 한참 못 미친다. 168번 사고팔면서 비용으로만 계좌의 상당 부분이 빠져나갔다. 반면 지수에서 20·60 규칙은 보유보다 높은 수익과 더 얕은 낙폭을 보인다. 가상 시장에 급락과 약세장이 길게 들어 있어서, 그 구간을 피한 것이 컸다. 어떤 규칙은 어떤 종목·기간에서 이긴다. 문제는 어느 것이 이길지 미리 알 수 있느냐다. 이 질문은 이 장 끝에서 다시 다룬다.

RSI: "많이 올랐다"를 숫자로

RSI(Relative Strength Index, 상대강도지수)는 최근 14일 동안 오른 폭과 내린 폭 가운데 오른 폭이 차지한 비중을 0~100으로 나타낸다. 14일 내내 올랐다면 100, 내내 내렸다면 0, 오른 폭과 내린 폭이 같으면 50이다. 관례적으로 70 위를 과매수(많이 올라 쉬어 갈 수 있다), 30 아래를 과매도(많이 내려 반등할 수 있다)라 부른다.

$$\text{RSI}=100-\frac{100}{1+RS},\qquad RS=\frac{\text{평균 상승폭}}{\text{평균 하락폭}}$$
처음 14일은 단순 평균, 그 뒤로는 새 하루를 1/14만큼 섞는 평활(와일더 방식)을 쓴다. 엔진의 ST.rsi가 이 방식이다.

공식보다 손으로 만져 보는 편이 빠르다. 아래 15일치 종가의 점을 위아래로 끌어 보자. 아래 막대는 날마다의 변화(빨강 상승, 파랑 하락)이고, 맨 아래 띠가 RSI다.

SIMULATOR

RSI를 손으로 만들기

점을 위아래로 끈다

평균 상승폭—
평균 하락폭—
RS—
RSI—
해볼 것: ① "꾸준한 상승"에서 하루만 조금 내리게 끌어도 RSI가 90 근처에 머무는 것을 본다. ② "큰 하루 한 번"에서 크게 오른 하루가 나머지 13일의 약한 하락을 이기는지 본다. ③ 전체를 위로 평행 이동해도 RSI가 그대로인 이유를 생각한다(변화만 본다).

RSI는 가격 수준이 아니라 최근 변화의 방향 비율이다. 그래서 강한 상승장에서는 70 위에 몇 주씩 머물 수 있다. "과매수니까 판다"는 규칙은 바로 그 구간에서 가장 큰 상승을 놓친다. 반대로 30 아래에서 사는 규칙은 하락이 길게 이어지는 약세장에서 떨어지는 칼을 잡는다. 실제로 돌려 보자. RSI가 기준선 아래로 내려가면 사고, 위 기준선을 넘으면 판다.

SIMULATOR

RSI 30/70 역추세 전략 백테스트

종목
전략 총수익—
그냥 보유—
왕복 매매—
승률—
평균 이익 / 평균 손실—
시장에 있던 시간—
해볼 것: ① 지수에서 승률이 높은데도 총수익이 보유보다 낮은 이유를 "시장에 있던 시간"에서 찾는다. ② 다온은행으로 바꿔 약세장에서 30 아래로 사들인 결과를 본다. ③ 팔 기준을 90으로 올리면 무엇이 달라지는지 본다. (가운데 띠는 RSI, 아래는 계좌 가치 로그 축)

지수에서 RSI 30/70 규칙은 왕복 거래의 대부분을 이익으로 끝낸다. 승률만 보면 훌륭하다. 그런데 10년 총수익은 그냥 보유의 몇 분의 1이다. 과매도에서 사서 조금 오르면 바로 팔고, 다시 과매도가 올 때까지 오래 기다리는 동안 시장은 혼자 오른다. 승률이 높다는 것과 돈을 번다는 것은 다른 이야기다. 이 차이는 뒤의 승률과 손익비 절에서 계산으로 정리한다.

MACD, 볼린저 밴드, 거래량

MACD(Moving Average Convergence Divergence)는 12일 지수 이동평균에서 26일 지수 이동평균을 뺀 값이다. 짧은 평균이 긴 평균보다 위에 있으면 양수, 아래에 있으면 음수다. 이 MACD를 다시 9일 평균한 것이 시그널선이고, 둘의 차이를 막대(히스토그램)로 그린다. 결국 이동평균 교차를 한 번 더 매끄럽게 만든 것이라, 이동평균의 지연도 그대로 물려받는다. 실험실에서 MACD를 켜면 막대가 0을 지나는 시점이 20·60일선 교차보다 대개 조금 빠르고, 대신 더 자주 뒤집히는 것을 볼 수 있다.

볼린저 밴드(Bollinger bands)는 20일 이동평균 위아래로 최근 20일 표준편차의 2배만큼 띠를 두른 것이다. 가격이 정규분포를 따른다면 종가가 띠 밖으로 나가는 날은 약 5%여야 한다. 띠의 폭은 최근 변동성의 크기이고, 폭이 유난히 좁아진 상태를 스퀴즈(Squeeze)라 부른다. "조용한 시기 다음에 큰 움직임이 온다"는 관찰을 노리는 신호다.

OBV(On-Balance Volume)는 오른 날의 거래량은 더하고 내린 날의 거래량은 빼서 누적한 값이다. "가격보다 거래량이 먼저 움직인다"는 생각에서 나왔다. 거래량을 쓴다는 점이 다를 뿐, 역시 지나간 데이터의 재가공이다.

스퀴즈 주장을 시험해 보자. 아래 띠는 밴드 폭이고, 10년 전체에서 하위 20%에 드는 좁은 날을 음영으로 칠했다. 숫자 칸은 10년 전체로 계산한 결과다.

SIMULATOR

볼린저 밴드 폭과 스퀴즈

종목
띠 밖 종가 비율—
정규분포라면—
스퀴즈 뒤 20일 움직임—
평소 20일 움직임—
스퀴즈 뒤 오른 비율—
해볼 것: ① 배수를 1, 2, 3으로 바꿔 띠 밖 비율이 정규분포 값과 얼마나 다른지 본다. ② 스퀴즈 뒤 20일 움직임(절댓값 평균)이 평소보다 큰지 작은지 종목마다 본다. ③ "스퀴즈 뒤 오른 비율"이 50% 근처라면 방향은 알려 주지 않는다는 뜻이다.

여섯 시리즈를 모두 돌려 보면 두 가지가 보인다. 첫째, 2σ 띠 밖 종가 비율은 어느 시리즈에서나 약 11~13%로, 정규분포가 말하는 약 4.6%의 두 배가 넘는다. 주가에는 추세와 두꺼운 꼬리가 있으므로 "2σ 밖이면 드문 일"이라는 해석부터 조심해야 한다. 둘째, 이 가상 시장에서는 스퀴즈 뒤 20일 움직임이 평소보다 오히려 작거나 비슷한 시리즈가 더 많다. 변동성에는 이어지는 성질(변동성 군집)이 있어서, 조용한 시기는 한동안 조용한 경우가 많기 때문이다. 스퀴즈 뒤 오른 비율도 44~59%로 반반 근처다. 크기에 대한 단서가 있다 해도, 방향에 대한 단서는 아니다.

지지와 저항: 선을 그어 보기

지지선(Support)은 가격이 여러 번 내려왔다가 반등한 가격대, 저항선(Resistance)은 여러 번 올라갔다가 밀린 가격대다. 근거는 사람의 기억이다. "지난번 7만원에서 샀다가 물린 사람은 본전인 7만원이 오면 판다", "6만원 근처면 싸다고 느낀 사람이 많다." 그 가격대에 주문이 몰리면 실제로 가격이 반응할 수 있다.

직접 그어 보자. 아래 차트의 앞 200일만 보이고 뒤 100일은 가려져 있다. 오른쪽 손잡이를 끌어 지지선이든 저항선이든 그럴듯한 곳에 선을 놓은 뒤 "이후 100일 공개"를 누른다. 가격이 선의 ±1.5% 안으로 들어왔다가 원래 쪽으로 돌아가면 반등, 반대쪽으로 빠져나가면 돌파로 센다. 비교 기준으로, 같은 구간에 아무렇게나 그은 선 200개의 평균 반등 비율도 함께 계산한다.

GAME

지지·저항선 긋고 이후 확인하기

손잡이를 끌어 선을 놓는다

선에 닿은 횟수—
반등 / 돌파—
내 선의 반등 비율—
아무 선 200개 평균—
해볼 것: ① 앞 200일에서 두세 번 반등한 저점에 선을 놓고 공개한다. ② 공개한 뒤 선을 아무 데나 옮겨 보며 반등 비율이 얼마나 달라지는지 본다. ③ "다른 구간"을 여러 번 눌러 내 선이 아무 선보다 꾸준히 나은지 센다. (가상 시장의 다섯 종목과 지수에서 무작위로 고른 300일)

선을 정성껏 그어도, 아무렇게나 그은 선과 반등 비율이 크게 다르지 않은 경우가 많다. 가격이 어떤 선에 닿으면 그다음은 대략 반등 아니면 돌파이고, 잡음이 많은 가격은 선 근처를 들락거리며 "반등"을 자주 만든다. 그래서 지지선이 "통했다"는 기억은 쉽게 남고 통하지 않은 기억은 "돌파 매매"라는 다른 이름으로 바뀐다. 지지·저항이 아무 의미가 없다는 뜻은 아니다. 다만 그 효과가 있다면, 아무 선과의 차이만큼만 있다.

추세 추종과 역추세: 승률보다 손익비

지금까지의 규칙은 크게 두 가족으로 나뉜다. 골든크로스처럼 오르기 시작한 것을 사는 추세 추종(Trend following)과, RSI 30/70처럼 많이 내린 것을 사고 많이 오른 것을 파는 역추세(Mean reversion)다. 두 가족은 거래 결과의 모양이 정반대다.

추세 추종 역추세 0 0 손실 이익 손실 이익 작은 손실 많이 드문 큰 이익 작은 이익 많이 드문 큰 손실 승률 낮음 · 손익비 큼 승률 높음 · 손익비 작음 지루하게 잃다가 한 번에 꾸준히 벌다가 한 번에
그림 12-2. 두 가족의 거래 결과 모양. 가로축은 거래 한 번의 손익, 막대 높이는 그런 거래가 나온 횟수(개념도). 추세 추종은 대부분의 거래에서 조금씩 잃고 드물게 크게 번다. 역추세는 대부분 조금씩 벌고 드물게 크게 잃는다. 어느 쪽이 나은지는 모양이 아니라 기대값이 정한다.

거래 한 번의 기대값은 승률 \(p\), 평균 이익 \(W\), 평균 손실 \(L\), 왕복 비용 \(c\)로 쓴다. \(W/L\)을 손익비(Payoff ratio)라 한다.

$$E = p\,W - (1-p)\,L - c$$
승률 30%라도 평균 이익이 평균 손실의 3배라면 \(0.3\times3-0.7\times1=+0.2\) (평균 손실 단위)로 남는다. 승률 80%라도 손익비가 0.2면 \(0.8\times0.2-0.2=-0.04\)로 잃는다.

아래 지도에서 가로는 승률, 세로는 손익비다. 빨간 쪽은 기대값이 양수, 파란 쪽은 음수다. 점을 끌어 다니며 기대값을 읽고, 평균 손실 크기를 바꿔 비용선이 어떻게 움직이는지 보자. 작은 점들은 앞에서 돌린 규칙들의 실제 승률과 손익비(비용 전)다.

SIMULATOR

승률 × 손익비 = 기대값 지도

점을 끌어 옮긴다
승률—
손익비—
거래당 기대값—
본전 손익비—
해볼 것: ① 승률 80%에서 손익비를 내려 기대값이 0이 되는 점을 찾는다. ② 평균 손실 크기를 0.5%로 줄이면(짧은 단타) 비용선이 위로 크게 밀려나는 것을 본다. ③ 작은 점들이 0선의 어느 쪽에 있는지 확인한다. (이익·손실은 거래 한 번의 수익률, 비용은 국내 주식 왕복 약 0.23%)

"이 전략은 승률 80%"라는 광고는 절반의 정보다. 손익비가 없으면 기대값을 알 수 없다. 그리고 거래당 평균 손실이 작은 짧은 매매일수록 같은 0.23%의 비용이 차지하는 몫이 커진다. 평균 손실이 3%인 매매에서 비용은 손실의 약 8%지만, 0.5%인 매매에서는 46%다.

무작위 경로에서도 패턴이 보인다

사람의 뇌는 무늬를 찾도록 만들어져 있다. 구름에서 얼굴을 보고, 별을 이어 별자리를 만든다. 아무 의미 없는 자료에서 의미 있는 패턴을 보는 경향을 아포페니아(Apophenia)라 한다. 차트는 이 경향이 일하기 좋은 곳이다.

시험은 간단하다. MoneyBook 12장에서 본 것처럼 날마다 수익률을 정규분포에서 뽑아 이어 붙이면 무작위 경로가 된다. 다음 날은 지난 날과 아무 관계가 없으므로, 이 경로에는 정의상 이용할 패턴이 없다. 그 위에 이 장의 도구를 그대로 얹어 보자. 지지·저항선과 교차, 돌파는 프로그램이 자동으로 찾아 붙인다.

SIMULATOR

동전 던지기 차트에 해설 붙이기

보기
골든 / 데드크로스—
찾은 지지·저항선—
신고가 돌파—
내일 수익률의 기대값0%
해볼 것: ① "차트만"으로 보고 지지선과 추세를 먼저 찾아본 뒤 "해설 붙이기"와 비교한다. ② 새 차트를 열 번 뽑아 매번 해설이 붙는지 센다. ③ 이 경로를 만든 규칙에는 어제가 내일에 주는 정보가 없다는 것을 기억한다. (하루 수익률을 평균 0, 연 변동성 30%의 정규분포에서 뽑은 경로)

무작위 경로에도 골든크로스가 생기고, 몇 번 튕겨 나온 "지지선"이 생기고, 신고가 "돌파"가 생긴다. 어떤 무작위 경로든 오르내림이 있고, 오르내림이 있으면 이 도구들은 무언가를 찾아낸다. 그렇다면 진짜 가격과 무작위 경로를 눈으로 구분할 수 있을까? 직접 해 보자. 한쪽은 가상 시장의 종목이나 지수에서 잘라 온 120일, 다른 쪽은 그 종목과 변동성을 맞춘 무작위 경로다.

GAME

진짜 차트 맞히기: 10문제

문제—
맞힘—
적중률—
찍어서 이만큼 맞힐 확률—
해볼 것: ① 10문제를 다 풀고 적중률을 본다. ② 마지막 칸은 동전을 던져 같은 점수 이상이 나올 확률이다. 이 값이 5%보다 크면, 운으로 설명되지 않는다고 말하기 어렵다. ③ 무엇을 근거로 골랐는지 적어 두고 다시 10문제를 풀어 같은 근거가 통하는지 본다. (가상 시장도 모형이 만든 가격이지만, 국면 변화와 사건, 변동성의 변화가 들어 있다)

많은 사람이 50% 근처에서 맴돈다. 가상 시장은 실제 시장을 흉내 낸 모형이니 구분이 더 어렵다고 할 수도 있다. 그러나 실제 주가와 무작위 경로로 같은 실험을 해도, 연구들은 전문가조차 짧은 구간의 차트만으로는 둘을 잘 가르지 못한다고 보고한다. 길게 보면 차이(변동성의 군집, 급락의 크기)가 드러나지만, 그 차이는 다음 날의 방향을 알려 주는 종류의 차이가 아니다.

이름이 붙은 패턴도 마찬가지다. 헤드앤숄더(Head and shoulders)는 어깨-머리-어깨처럼 고점 셋이 이어지고 가운데가 가장 높은 모양으로, 하락 전환 신호로 알려져 있다. 아래는 무작위 경로에서 이 모양을 기계적으로 찾는 탐지기다. 새 경로를 뽑을 때마다 훑어 내려가며 패턴을 찾고, "많은 경로에서 세기"를 누르면 400개의 경로에서 패턴이 완성된(목선 아래로 내려간) 뒤 20일 동안의 수익률을 모은다.

SIMULATOR

무작위 경로에서 헤드앤숄더 찾기

이 경로의 패턴—
400개 경로의 패턴—
완성 뒤 20일 평균—
완성 뒤 내린 비율—
해볼 것: ① 경로 몇 개를 훑어 패턴이 얼마나 흔한지 본다. ② "많은 경로에서 세기"로 패턴 뒤 평균 수익률이 0 근처인지 확인한다. ③ 무작위 경로에서 패턴 뒤 하락 비율이 50% 근처라면, 실제 시장에서 그 이상을 보여야 패턴이 정보를 가진다고 말할 수 있다. (어깨 높이 차이 4% 이내, 머리가 어깨보다 3% 이상 높은 모양을 찾는다. 평균 0, 연 변동성 30%의 경로)

무작위 경로에서 헤드앤숄더는 드물지 않게 나오고, 그 뒤의 수익률은 평균 0 근처, 내린 비율은 반 근처다. 이것이 기술적 분석이 틀렸다는 증명은 아니다. 실제 시장에 무작위 경로에는 없는 무언가가 있을 수 있다. 다만 기준점이 생겼다. 패턴이 보인다는 것만으로는 아무것도 증명되지 않는다. 무작위 경로에서보다 뚜렷하게 나은 결과가, 비용을 내고도 남아야 한다.

작은 우위를 지우는 거래 비용

국내 주식을 한 번 사고팔면 2026년 기준 수수료 약 0.015%씩 두 번과 증권거래세 0.20%로 왕복 약 0.23%가 든다(3장). 한 번이면 작다. 그러나 1년에 50번 왕복하면 단순 합으로 11.5%, 수익률의 상당 부분이다. 여기에 호가 사이의 간격(스프레드)과, 신호가 난 가격보다 불리하게 체결되는 미끄러짐까지 더하면 실제 비용은 더 크다.

아래 그래프의 가로축은 왕복 비용, 세로축은 연평균 수익률이다. 규칙마다 비용을 0에서 1%까지 올려 가며 다시 돌린 결과를 선으로 이었다. 가로 점선은 그냥 보유했을 때다. 세로선을 끌어 비용을 바꾸며 읽어 보자.

SIMULATOR

비용을 올리면 전략은 어디로 가나

세로선을 끈다
종목
왕복 비용—
5·20 교차—
20·60 교차—
50·200 교차—
RSI 30/70—
그냥 보유—
해볼 것: ① 5·20 교차의 선이 가장 가파르게 내려가는 이유를 매매 횟수에서 찾는다. ② 지수에서 20·60 교차가 보유보다 나은 상태가 비용 몇 %까지 유지되는지 찾는다. ③ 세로선을 0.23%(국내 왕복)와 0.6%(스프레드·미끄러짐을 더한 경우)에 놓고 비교한다. (값은 연평균 수익률, 가상 시장 10년)

선의 기울기는 매매 횟수에 비례한다. 1년에 몇 번만 사고파는 50·200 교차는 비용에 거의 무디고, 5·20 교차는 비용이 조금만 올라도 빠르게 내려간다. 신호가 잦을수록 신호 하나가 가진 우위가 비용보다 커야 하는데, 짧은 신호일수록 한 번의 움직임이 작아 우위도 작다. 작은 우위와 빈번한 매매는 비용 앞에서 가장 약한 조합이다.

제도와 비용은 바뀐다증권거래세율은 최근 몇 년 사이 여러 차례 조정되었고, 수수료는 증권사와 이벤트에 따라 다르다. 이 장의 왕복 약 0.23%는 2026년 기준 대표값이다. 비율이 바뀌어도 "매매 횟수 × 비용"이 전략의 우위를 깎는다는 구조는 같다. 미국 주식은 거래세가 없는 대신 수수료와 환전 비용이 붙는다(22장).

많이 시험하면 하나는 맞는다

이동평균 기간 두 개만 해도 조합이 수천 개다. RSI 기준선, 볼린저 배수, 보유 기간까지 더하면 수십만 개가 된다. 그중 과거 10년에 가장 잘 맞은 조합을 고르면, 그 성적은 얼마나 믿을 수 있을까?

규칙 200개를 과거 데이터로 시험 실제로는 모두 쓸모없는 규칙이라 해도 (무작위 경로 위의 신호) 약 10개가 "5% 유의" 통과 우연만으로 1등을 광고 표본 밖에서는 평균으로 돌아간다
그림 12-3. 데이터 스누핑. 쓸모없는 규칙 200개를 시험해도 "통계적으로 유의한" 규칙이 우연히 10개쯤 나온다. 그중 1등의 성적은 운이 가장 좋았던 결과이므로, 새 데이터에서는 대개 줄어든다.

직접 해 보자. 아래는 무작위 경로 하나(앞 1,000일은 표본 안, 뒤 500일은 표본 밖)와, 무작위로 만든 규칙 여러 개다. 이동평균 교차, RSI, 볼린저 돌파, 모멘텀(n일 전보다 높으면 보유)의 기간과 기준을 마구 바꾼 것이다. 먼저 표본 안 성적만 보고 1등을 고른 뒤, "표본 밖 공개"를 눌러 그 규칙이 뒤 500일에 어떻게 되는지 본다.

LAB

규칙 100개 중 1등은 실력인가 운인가

표본 안 1등—
1등의 표본 안 초과수익—
1등의 표본 밖 초과수익—
안·밖 성적의 상관—
해볼 것: ① 규칙 수를 300으로 늘리면 1등의 표본 안 성적이 더 좋아지는 것을 본다. ② 표본 밖을 공개해 1등이 그대로 1등인지 본다. ③ 새 경로를 여러 번 뽑아 1등의 표본 밖 성적과 안·밖 상관이 경로마다 얼마나 들쭉날쭉한지 본다. (초과수익은 같은 기간 그냥 보유 대비 연평균, 비용 포함. 경로는 연 6%, 변동성 25%의 무작위)

규칙을 많이 시험할수록 1등의 표본 안 성적은 화려해진다. 시험한 수가 많을수록 운 좋은 규칙이 나올 기회가 많아지기 때문이다. 그리고 표본 밖에서 1등은 대개 평범해지거나 오히려 나빠진다. 경로를 바꿀 때마다 표본 안·밖 성적의 관계가 양수였다 음수였다 들쭉날쭉하다는 것은, 표본 안의 순위가 실력이 아니라 운이었다는 뜻이다. 애초에 무작위 경로에는 이용할 패턴이 없다. 실제 데이터에서도 같은 일이 일어날 수 있고, 그래서 "과거 10년 연 40%" 같은 백테스트 광고는 몇 개를 시험해서 고른 결과인지부터 물어야 한다. 이 문제는 17장에서 백테스트의 함정으로 자세히 다룬다.

자기실현적 예언과 연구들의 증거

기술적 분석을 옹호하는 가장 그럴듯한 논리는 이것이다. "많은 사람이 같은 차트를 보고 같은 신호에 사면, 그 신호는 실제로 가격을 올린다." 이를 자기실현적 예언(Self-fulfilling prophecy)이라 한다. 일리가 있다. 다만 누가 그 이익을 가져가는지가 중요하다.

아래는 무작위 경로에 "골든크로스 추종자"를 넣은 모형이다. 교차가 나면 다음 날 추종자들이 사서 가격을 밀어 올린다. 그러나 그 매수는 회사의 가치가 바뀐 것이 아니므로 시간이 지나면 밀어 올린 만큼이 서서히 빠진다. 300개 경로에서 모든 골든크로스를 모아, 교차일을 0으로 맞춰 평균 경로를 그렸다.

SIMULATOR

자기실현적 예언: 신호가 가격을 움직일 때

모은 교차 수—
교차 다음 날 평균—
교차일 종가에 산 사람(40일)—
다음 날 종가에 산 사람(40일)—
해볼 것: ① 추종자 비중을 0으로 두면 교차 뒤 평균 경로가 평평한 것을 본다. ② 비중을 올리면 다음 날 점프가 생기지만, 다음 날 종가에 산 사람의 40일 수익은 0 아래로 가는 것을 본다. ③ 반감기를 길게 하면 이익이 오래 남는지 본다. (교차 다음 날 추종자 비중 × 10%만큼 밀어 올리는 단순 모형. 평균 0, 연 변동성 25%의 경로)

추종자가 많으면 신호는 정말로 "맞는다." 교차 다음 날 가격이 오른다. 하지만 그 상승은 교차일에 이미 들고 있다가 밀려 올라간 가격에 넘긴 사람의 몫이다. 교차일에 샀더라도 그대로 40일을 들고 있으면 밀어 올린 만큼이 빠지면서 이익이 거의 남지 않는다. 신호를 보고 다음 날 사는 사람은 바로 그 밀어 올려진 가격에 사고, 빠지는 동안 들고 있다. 자기실현적 예언이 있다 해도, 이익은 가장 먼저 움직이는 사람에게 가고 신호를 늦게 따르는 다수는 비용을 낸다.

그럼 학계는 무엇을 발견했을까? 단정할 수는 없지만, 연구들이 대체로 가리키는 방향은 이렇다.

꽤 꾸준히 관찰된 것지난 3~12개월 동안 많이 오른 주식이 그다음 몇 달 동안도 상대적으로 나았다는 모멘텀(Momentum) 현상은 여러 나라와 긴 기간에서 보고되었다. 다만 몇 년씩 크게 지는 기간이 있고, 급반등장에서 크게 무너지기도 한다(16장).
대개 비용 뒤에 사라지는 것하루~몇 주 단위의 차트 패턴과 지표 신호는, 과거 어느 기간에 효과가 보였더라도 거래 비용을 넣거나 다른 기간·시장에서 다시 시험하면 줄어들거나 사라졌다는 결과가 많다. 널리 알려진 규칙일수록 그렇다.
논쟁 중인 것일부 연구는 차트 패턴이 약간의 정보를 담고 있다고 보고, 시장이 덜 성숙했던 시기나 거래가 적은 종목에서는 효과가 있었다는 결과도 있다. 하지만 그 크기는 대개 작고, 비용과 다중 시험을 견디는지가 늘 쟁점이다.

그러니 균형 잡힌 결론은 "기술적 분석은 미신이다"도 "차트에 답이 있다"도 아니다. 가격에는 약한 추세가 있을 수 있지만, 그것을 짧은 신호로 잘게 쪼개 매매하면 비용과 운이 그 우위를 쉽게 덮는다. 차트는 지금 무슨 일이 일어나는지 보는 데(얼마나 흔들리는지, 얼마나 빠졌는지) 쓸모가 크고, 다음 날을 맞히는 데는 쓸모가 작다.

한결의 골든크로스 검증

장 끝의 종합 실험이다. 규칙 하나를 고르면 가상 시장의 여섯 개 시리즈(지수와 다섯 종목)와, 같은 규칙을 얹은 무작위 경로 120개에서 동시에 돌린다. 왼쪽 막대는 가상 시장에서 그냥 보유했을 때보다 연평균 몇 %p 나았는지, 오른쪽은 무작위 경로에서의 같은 값의 분포다. 무작위 경로 위의 분포가 "아무 정보가 없을 때 이 규칙이 보이는 모습"이다.

LAB

규칙 검증대: 가상 시장 vs 무작위 경로

규칙
보유를 이긴 가상 시리즈—
가상 시장 평균 차이—
무작위 경로 평균 차이—
무작위 경로에서 이긴 비율—
해볼 것: ① 5·20 교차의 막대가 비용을 켜고 끌 때 얼마나 움직이는지 본다. ② 무작위 경로 분포의 가운데가 0보다 왼쪽인 이유를 생각한다(시장 밖에 있는 동안 놓친 오름 + 비용). ③ 가상 시장의 막대가 무작위 분포의 어디쯤에 있는지 보고, 그 정도 차이를 "실력"이라 부를 수 있을지 판단한다. (볼린저 돌파: %B가 1을 넘으면 사고 0.5 아래로 오면 판다. 무작위 경로는 연 6%, 변동성 25%, 5년)
NOTE 한결한결의 투자 노트 · 12장

"5일선이 20일선을 뚫으면 사라"를 10년에 돌려 보다

한결은 출근길에 본 영상의 규칙을 그대로 옮겨 적었다. 5일 이동평균이 20일 이동평균을 뚫고 올라가면 사고, 내려가면 판다. 사려던 한빛반도체와 SB 종합지수의 가상 10년(2016~2025년)에 백테스트했다. 신호 다음 날 종가에 체결하고, 왕복 비용 약 0.23%를 넣었다.

10년 총수익그냥 보유5·20 비용 전5·20 비용 후매매 횟수
한빛반도체+240%+78%+47%168번
SB 종합지수+79%+52%+25%166번

두 곳 모두에서 규칙은 그냥 들고 있는 것보다 못했고, 비용이 그 차이를 더 벌렸다. 한빛에서는 비용만으로 총수익이 약 31%p 줄었다. 한결은 기간을 바꿔 보다가 지수에서 20·60 규칙이 비용 뒤에도 +103%로 보유(+79%)를 이기고 최대 낙폭도 −42%에서 −31%로 얕다는 것을 찾았다. 잠깐 흥분했지만, 같은 20·60이 한빛에서는 +143%로 보유에 한참 못 미쳤고, 그 조합은 여러 개를 돌려 본 뒤에 고른 것이었다. 무작위 경로에서 해설이 붙고 헤드앤숄더가 나오는 것을 본 뒤라, 이것이 실력인지 운인지 지금은 판단할 수 없다고 적었다.

이 장에서 정한 것차트 신호만으로 매매 규칙을 만들지 않는다. 규칙을 볼 때는 비용 후 결과, 매매 횟수, 무작위 경로와의 비교를 함께 본다.
아직 남은 문제지수에서 이긴 20·60 규칙은 우연인가? 몇 개를 시험해서 고른 결과를 어떻게 걸러 내는가.
다음 단계한 종목에 몰빵했을 때의 흔들림부터 잰다(13장). 20·60의 정체는 17장에서 표본 밖 검증으로 다시 본다.

핵심 정리

  1. 기술적 분석은 가격이 정보를 반영하고, 추세가 이어지고, 군중이 같은 가격대에서 같은 반응을 반복한다는 가정 위에 있다. 모든 지표는 지나간 종가와 거래량을 다시 계산한 것이다.
  2. 이동평균은 잡음을 거르는 대신 늦다. 기간이 길수록 늦고, 짧을수록 헛신호가 많다. 골든·데드크로스와 MACD는 이 지연을 그대로 물려받는다.
  3. RSI는 최근 오른 폭과 내린 폭의 비율이다. 강한 추세에서는 70 위나 30 아래에 오래 머물 수 있어, 역추세 규칙은 승률이 높아도 큰 움직임을 놓친다.
  4. 거래 한 번의 기대값은 승률 × 평균 이익 − 패률 × 평균 손실 − 비용이다. 승률만으로는 아무것도 알 수 없다.
  5. 무작위 경로에도 지지·저항, 골든크로스, 헤드앤숄더가 나타난다. 패턴이 보이는 것은 증거가 아니고, 무작위보다 나은 결과가 비용 뒤에도 남아야 한다.
  6. 왕복 약 0.23%(2026년 기준)의 비용은 매매 횟수만큼 곱해진다. 짧고 잦은 신호일수록 비용 앞에서 약하다.
  7. 많은 규칙을 시험하면 1등은 운으로도 나온다. 연구들은 중기 모멘텀은 꾸준히 관찰되지만 단기 차트 신호는 대개 비용 뒤에 줄어들거나 사라진다고 보고한다.

확인 퀴즈

1. 골든크로스에 대한 설명으로 옳은 것은?

골든크로스는 짧은 이동평균(예: 20일)이 긴 이동평균(예: 60일)을 위로 뚫는 것이다. 두 평균 모두 과거 가격의 평균이라, 교차는 움직임이 시작되고 한참 뒤에 나타난다.

2. 어떤 종목의 RSI(14)가 85다. 이것이 말해 주는 것은?

RSI는 최근 상승폭과 하락폭의 비율로 만든 값이다. 지나간 변화의 방향을 요약할 뿐, 다음 움직임을 보장하지 않는다. 강한 상승장에서는 80 이상이 몇 주씩 이어지기도 한다.

3. 승률 40%, 평균 이익 6%, 평균 손실 2%인 전략의 거래당 기대값(비용 전)은?

0.4 × 6% − 0.6 × 2% = 2.4% − 1.2% = +1.2%다. 승률이 낮아도 손익비(3배)가 크면 기대값은 양수일 수 있다. 여기서 왕복 비용 약 0.23%를 빼도 양수다.

4. 어떤 사람이 지표 조합 500개를 과거 10년 데이터로 시험해 가장 성적이 좋은 조합을 찾았다. 가장 적절한 해석은?

많이 시험할수록 운으로 좋은 성적이 나올 기회가 늘어난다(데이터 스누핑). 표본 안 1등은 표본 밖에서 대개 평균 쪽으로 돌아간다. 17장에서 표본 밖 검증을 자세히 다룬다.

5. 같은 가상 시장에서 5·20 교차 규칙이 비용 전에는 그럭저럭이었다가 비용을 넣으면 크게 나빠졌다. 가장 큰 이유는?

거래 비용은 이익과 상관없이 매매할 때마다 붙는다. 10년에 160번 넘게 매매하면 왕복 80번 이상, 비용만 단순 합으로 약 19%다. 증권거래세율은 보유 기간과 무관하다.