코스닥150 트레이딩 백테스팅 3편, ATR 4.91% 간격은 너무 넓지 않을까? 내 경험과 백테스트가 부딪혔다_261019

지난 글에서 이런 결론을 냈다.

매수 간격과 익절 폭을 고정된 1.5%·0.5%로 두지 말고, 시장의 변동성에 맞춰 늘였다 줄였다 하자는 것이다.
그 기준으로 쓴 지표가 ATR(14)이다.
최근 14거래일 동안 하루에 평균 몇 % 움직였는지를 나타내는 값으로, 시장이 거칠어지면 커지고 잠잠해지면 작아진다.

규칙은 이렇다.

  • 매수 간격 = 1.0 × ATR% (직전에 산 가격보다 이만큼 더 떨어지면 다음 계좌 매수)
  • 익절 폭 = 0.6 × ATR% (종가가 120일 이동평균선 위에 있는 상승 추세라면 1.5 × ATR%, 최대 5%)
  • 20일 이격도 105 초과(과열)면 매수 중단, 볼린저 %B가 0 미만(과매도)이면 2계좌분 매수
  • 자금은 20개 계좌로 나눈다(균형형)

나는 이 규칙으로 매일 저녁 7시, 다음 날 쓸 거래 가이드가 내 텔레그램 봇으로 들어오도록 해두었다.
코스닥150 시세를 받아 ATR,이격도,%B를 계산하고, 내일 몇 원에 사고 몇 원에 팔지까지 알려준다.
앞으로는 규칙을 기계적으로 돌리기보다, 이 가이드를 기준점으로 삼아 시장 상황에 따라 유연하게 대응할 수 있다.


그런데, 4.91%?

10월 16일 종가 기준 ATR(14)은 4.91%였다.
가이드대로라면 매수 간격 4.91%, 익절 폭 약 2.9%(지금은 120일선 아래라 0.6 × ATR)다.

솔직히 2년간 이 전략을 직접 굴려온 내 경험에서는 조금 어색하게 느껴진다.

변동성이 큰 구간에서는 매수 간격을 넓혀야 한다는 건 확실하다.
나도 하락이 거세지면 1.5%를 3~4%로 넓혀왔다.
그런데 4.91%는 너무 크게 느껴진다.

매도 쪽은 더 어색하다.
나는 오히려 변동성이 클수록 매도 폭을 줄여서, 0.3~0.5%처럼 작은 이익을 여러 번 빠르게 적립해나가는 방식으로 운용해왔다.
그런데 가이드는 매도 폭을 0.6 × ATR, 약 2.9%로 대폭 넓히라고 한다.
손이 덜 가는 건 좋은데, 과연 거래가 되기는 하는 걸까?

백테스트는 이렇게 우리 경험에 반하는 결과를 내놓기도 한다.
하지만 바로 그 점이 장점이기도 하다.
내 걱정이 맞는지, 과거 데이터로 반론을 확인해볼 수 있으니까.

그래서 세 가지를 물어봤다.

  1. ATR이 4.91% 이상이었던 날은 얼마나 되나? 그런 날에 이 규칙으로는 하루에 몇 번 거래하게 되나?
  2. 그 구간만 떼어 보면 수익률, MDD, Sharpe는 어땠나? 간격을 좁혔다면?
  3. 매도 폭을 내 방식처럼 0.3~0.5%로 줄였다면?

데이터: KODEX 코스닥150(229200) 5분봉 2021.09.02~2026.10.16(1,250거래일), 고변동 구간은 1분봉으로 재확인. 자본 1억 원, 수수료 0.015%, 매수·매도마다 1틱 불리하게 체결된다고 가정했다.


질문 1. 4.91% 이상인 날은 얼마나 되나

ATR은 그날 아침에 확정된 ‘전일 종가 기준’ 값을 썼다. 실제 가이드가 쓰는 값과 같다.

1,250거래일 중 90일, 전체의 7.2%였다.
5년간 ATR의 중앙값은 2.27%이고, 상위 10%가 4.34%, 상위 5%가 5.88%다.
지금은 5년 중 상위 7% 안에 드는, 꽤 드문 고변동 장이다.

흥미로운 건 이 90일이 전부 2026년에 몰려 있다는 점이다.
금리 인상기였던 2022년 하락장에서도 ATR이 이 수준까지 올라가지는 않았다.

ATR(14) 4.91% 이상이었던 연속 구간
ATR(14) 4.91% 이상이었던 연속 구간

그럼 이런 날 거래는 얼마나 일어날까. 매수와 매도 체결을 합친 횟수다.

고변동 날의 하루 체결 횟수
고변동 날의 하루 체결 횟수

간격이 넓어지면 거래가 끊길 거라 걱정했는데, 그렇지 않았다.
간격이 넓어지는 만큼 시장도 크게 움직이니, 거래 빈도는 평소와 거의 같다. 대략 이틀에 한 번 체결된다.
대신 한 번 팔 때 남기는 이익이 커진다. 매도 1건의 평균 순수익률은 고변동 날 4.38%로, 평소(2.11%)의 두 배였다.


질문 2. 그 구간만의 성과, 그리고 간격을 좁혔다면

먼저 지표 두 개만 짚고 가자.
MDD(최대 낙폭)는 평가금액이 고점에서 가장 많이 빠졌던 비율, 즉 ‘가장 아팠던 순간’이다.
Sharpe ratio는 수익을 변동성으로 나눈 값으로, 같은 위험을 지고 얼마나 벌었는지를 본다. 높을수록 좋다.

5년 전체를 한 번에 돌린 결과에서, ATR 4.91% 이상인 90일의 하루 수익률만 뽑아 이어 붙였다.

고변동 90일만 이어 붙인 성과
고변동 90일만 이어 붙인 성과

같은 날들에서 그냥 들고 있던 사람은 고점 대비 46%가 빠졌다.
ATR 규칙은 13% 빠지는 데 그쳤고, Sharpe는 오히려 평소보다 높았다.
역시! 변동성이 큰 날이 이 전략에게는 나쁜 날이 아니었다는 뜻이다.

그럼 내 감각대로 간격을 좁혔다면 어땠을까.
가장 길었던 64일짜리 하락 구간(코스닥150 -26%)을 빈 계좌 1억 원에서 새로 시작해 돌려봤다.

64일 하락 구간: 매수 간격별 성과
64일 하락 구간: 매수 간격별 성과

간격을 좁히면 길게 이어지는 급락에서 계좌를 너무 빨리 써버린다.

수익은 늘지 않고, 낙폭만 2~3배로 커졌다.

물론 반대 경우도 있었다. 3월처럼 고변동이지만 금방 회복한 구간에서는 좁은 간격이 1~2%p 더 벌었다.
문제는 지금이 ‘금방 끝날 급락’인지 ‘길게 갈 급락’인지 미리 알 수 없다는 것이다.
4.91% 간격이면 20개 계좌를 다 쓸 때까지 약 63% 하락을 견딘다(2계좌씩 사는 날이 없다면). 넓어 보이는 간격이 계좌를 지키는 장치였다.


질문 3. 매도 폭을 0.3~0.5%로 줄였다면

이번엔 매도 쪽이다. 고변동 날에만 익절 폭을 여러 가지로 바꾸고, 나머지 날은 그대로 뒀다.

먼저 5년 전체(매수 간격은 1.0 × ATR 유지).

고변동 날의 익절 폭별 성과(5년 전체)
고변동 날의 익절 폭별 성과(5년 전체)

익절 폭을 1~4% 사이 어디에 두든 결과는 비슷했다.
확실히 나쁜 건 양 끝, 특히 0.3%와 0.5%였다.

다음은 64일 하락 구간을 1분봉으로 다시 본 결과다.
작은 마진으로 짧게 여러 번 왕복하는 건 5분봉에서 놓칠 수 있어서, 더 촘촘한 데이터로 확인했다(5분봉 결과도 거의 같았다).

64일 하락 구간: 익절 폭별 성과(1분봉)
64일 하락 구간: 익절 폭별 성과(1분봉)

여기서는 내 경험이 맞았다.
하락이 길게 이어지는 고변동 장에서는 마진을 줄여 반등마다 빨리 팔고 빠지는 쪽이 낫다.
들고 있는 계좌가 적게 쌓이니 MDD가 -11%에서 -6%로 거의 절반이 된다.

다만 그 최적점은 0.3%가 아니라 1% 안팎이었다. 이유는 두 가지다.

  • 비용. 한 번 사고파는 데 수수료 0.03%에 슬리피지 2틱(지금 가격 약 13,000원에서 0.08%)이 들어 약 0.11%가 나간다. 0.3% 마진이면 3분의 1이 비용으로 사라진다.
  • 비율. 평소 ATR이 2%일 때의 0.5% 마진은 하루 움직임의 4분의 1이다. ATR이 4.9%인 날 같은 비율이 되려면 1.2%는 돼야 한다. 0.3%는 고변동 장에서는 ‘잡음’ 수준이다.

반대로 상승·횡보 성격의 고변동 구간(3월)에서는 넓은 익절이 유리했다. 0.3%로 팔면 +0.1%, 가이드대로(상승 추세라 1.5 × ATR) 팔면 +1.2%였다.
작게 팔면 오르는 장에서 이익을 다 놓친다.

그리고 내 감각을 둘 다 적용한 조합, 즉 좁은 매수 간격(0.5 × ATR) + 작은 매도 폭(0.3%)은 64일 하락 구간에서 하루 9회를 체결하고도 MDD -16%였다.
손은 가장 많이 가는데, 결과는 가이드보다 나빴다.


정리하면

  • ATR 4.91% 이상은 5년 중 7%뿐인 드문 장이다. 그래도 거래는 이틀에 한 번꼴로 일어난다.
  • 그런 날 ATR 간격(4.9%)은 Buy&Hold MDD -46%를 -13%로 막았다. 간격을 좁히면 긴 급락에서 낙폭이 2~3배 커진다.
  • 매도 폭은 1~4% 사이라면 큰 차이가 없다. 하락 추세의 고변동 장이라면 1~2%로 줄이는 것도 괜찮다.
  • 하지만 0.3~0.5% 고정 마진은 고변동 장에서 비용과 잡음에 먹힌다.

한계도 분명하다.
ATR이 이 정도로 높았던 독립 구간은 사실상 다섯 번, 그중 긴 하락은 한 번뿐이다.
숫자는 방향을 보여줄 뿐, 정답으로 받아들이기엔 표본이 작다.


그래서, 나는

결론적으로 나는 동의하지 않을 수 없었다.
간격을 넓혀야 한다는 내 감각은 맞았지만, 얼마나 넓혀야 하는지는 데이터가 나보다 과감했다.
작게 여러 번 판다는 내 습관도 방향은 맞았지만, 0.3%는 너무 작았다.

그래도 1.5~2%에 매수하던 사람이 하루아침에 4.9%로 가기는 쉽지 않다.
그래서 우선 매수 간격은 4% 정도, 매도 폭은 1.5% 정도 수준으로 해보려고 한다.
조금씩 조금씩 ATR에 기반한 투자에 익숙해져 가는 시간이 필요할 듯하다.

그 결과는 공유할 수 있도록 하겠다.

참고: 이 글은 개인적인 백테스트 기록이며 특정 상품의 매수·매도 권유가 아닙니다. 과거 수익률이 미래 수익을 보장하지 않습니다.

코스닥150 트레이딩 백테스팅 2편, 성과 개선을 위한 몇가지 방빕 (Feat. ATR)_261018

어제 이런 글을 썼다.

지난 글은 운용의 묘 없이 규칙을 기계적으로 돌렸을 때의 결과였다.
24개 계좌로 나눠, 1.5% 떨어질 때마다 한 계좌씩 사고, 계좌마다 0.5% 오르면 판다.
결과는 CAGR +3.07%, 최대 낙폭(MDD) -36.8%.
Buy&Hold(-2.06%, -51.6%)보다는 덜 잃었지만, 내가 실제로 체감한 수익률과는 거리가 있었다.

그리고 글을 이렇게 마무리했다.

언제 어떻게 과열이라고 판단하고, 그때 어떻게 거래할 것인가? 언제 어떻게 과매도라고 판단하고 어떻게 거래할 것인가?

실제로 나는 이 전략을 기계적으로만 굴리지 않는다.
하락 추세가 강하면 간격을 3~4%로 넓히고, 너무 올랐다 싶으면 매수를 멈춘다.
이번 글은 그 ‘운용의 묘’를 기술적 지표로 바꿔서 백테스트한 결과다.


먼저, 기본 개념부터

결과를 보기 전에 이번 글에서 쓰는 지표를 정리하고 가자.
이미 아는 분은 건너뛰어도 된다.

지표 개념 ① 추세와 위치: 이동평균·이격도·볼린저밴드(%B)
지표 개념 ① 추세와 위치: 이동평균·이격도·볼린저밴드(%B)

이동평균선은 최근 N일 종가의 평균이다.
20일선은 약 한 달, 120일선은 약 반년의 평균 가격이다.
종가가 120일선 위에 있으면 중기 상승 국면으로 본다.

이격도(20일)는 종가를 20일선으로 나눈 값(×100)이다.
100이면 평균과 같고, 105면 평균보다 5% 위에 있다는 뜻이다.
높을수록 짧은 기간에 많이 오른 상태다.

볼린저밴드는 20일선 위아래로 표준편차 2배만큼 그린 띠다.
가격은 대부분 이 띠 안에서 움직인다.
%B는 지금 가격이 띠 안 어디쯤에 있는지를 나타낸다. 0이면 하단, 1이면 상단이다.
%B가 0보다 작다는 건 띠 아래로 밀려난, 통계적으로 드문 하락이라는 뜻이다.

지표 개념 ② 변동성과 힘: ATR%·RSI
지표 개념 ② 변동성과 힘: ATR%·RSI

ATR(Average True Range)은 하루 변동폭(고가-저가, 전일 종가 대비 갭 포함)의 14일 평균이다.
이걸 종가로 나눈 ATR%가 3%면 “요즘 하루에 3% 안팎 움직인다”는 뜻이다.
코스닥150의 2015년 이후 평균은 2.3%, 최근 1년 중앙값은 4.0%다. 지금은 고변동 국면이다.

RSI(14)는 최근 14일 동안 오른 힘이 내린 힘보다 얼마나 센지를 0~100으로 나타낸다.
흔히 70 이상을 과열, 30 이하를 과매도로 읽는다.
(그런데 이번 백테스트에서는 이 통념이 맞지 않았다. 아래에서 다시 본다.)

성과지표 용어와 검증 방법
성과지표 용어와 검증 방법

성과지표도 정리해둔다.
CAGR은 연평균 복리수익률, MDD는 고점 대비 가장 크게 빠진 비율이다. MDD는 투자자가 실제로 견뎌야 했던 최악의 손실이다.
Sharpe는 수익률을 변동성으로 나눈 값, Sortino는 그중 하락 쪽 변동만 위험으로 본 값이다. 둘 다 높을수록 좋다.
베타는 기초 ETF가 1% 움직일 때 전략이 얼마나 따라 움직이는지다.
그리고 과거에만 맞춘 숫자를 피하려고, 앞 구간(2021.09~2024.06)에서 규칙을 고르고 뒤 구간(2024.07~2026.10)에서 다시 확인했다.


과열과 과매도, 어떤 신호가 진짜였나

신호 발생 후 20거래일 수익률: RSI·%B 상단은 과열이 아니었다
신호 발생 후 20거래일 수익률: RSI·%B 상단은 과열이 아니었다

2015년 상장 이후 11년치 일봉으로, 각 신호가 나온 다음 20거래일 동안 어떻게 됐는지 봤다.

  • RSI 70 초과, 볼린저 상단 돌파(%B>1) 뒤에도 20일 수익률은 +1.3~1.6%로 평균(+0.6%)보다 높았다. 과열이 아니라 추세가 이어지는 신호였다.
  • 20일 이격도 108 초과만 달랐다. 20일 뒤 평균 -1.5%, 20일 안에 -10% 빠질 확률이 43%였다.
  • 과매도 쪽은 대체로 맞았다. 이격도 92 미만, RSI 30 미만, 60일 고점 대비 -20%는 20일 뒤 +4~7%, 오를 확률 70~77%.
  • 다만 반등 전에 -10%가 더 나올 확률도 14~35%였다. 과매도라고 한 번에 다 사면 안 되는 이유다.

그래서 과열은 RSI가 아니라 이격도 105 초과로, 과매도는 %B<0으로 판단하기로 했다.


간격은 감이 아니라 ATR로

오늘 ATR 3분위별 다음 거래일 고저폭
오늘 ATR 3분위별 다음 거래일 고저폭

내가 감으로 하던 “하락이 세면 간격을 넓힌다”를 숫자로 바꾸면 ATR이다.
변동성은 이어지는 성질이 있다. 오늘 ATR이 높으면 내일도 크게 움직인다.
ATR 상위 1/3인 날은 다음 날 고저폭이 평균 2.97%, 하위 1/3인 날은 1.47%였다.

그래서 매일 전일 ATR%로 그날의 기준을 정한다.

  • 매수 간격 = 1.0 × ATR%
  • 익절 폭 = 0.6 × ATR% (종가가 120일선 위면 1.5 × ATR%)

재미있는 건, 변동성이 클 때 익절 폭만 줄이는 건 오히려 성과를 깎았다는 점이다.
간격과 익절을 함께 넓혀야 했다.


결과: CAGR 3.1% → 7.0%, MDD -36.8% → -19.3%

5라운드, 375개 설정을 돌려서 세 가지 프로필로 정리했다.

아래는 각 프로필별 성과이다.

운용 프로필 비교: 안정형·균형형·공격형
운용 프로필 비교: 안정형·균형형·공격형

권장안인 균형형(20계좌)의 전체 기간(2021.09~2026.10) 성과는 아래와 같다. 괄호는 Buy&Hold다.

  • CAGR(연평균 수익률): +6.99% (-2.06%)
  • 누적 수익률(ROI): +41.3% (-10.1%)
  • 최대 낙폭(MDD): -19.3% (-51.6%)
  • Sharpe Ratio: 0.52 (0.12)
  • 표준편차(연): 15.7% (36.3%)
  • 베타: 0.35 (1.00)
  • Sortino Ratio: 0.78 (0.18)

규칙을 고를 때 쓰지 않은 검증 구간(2024.07~)에서도 CAGR 6.4%로 크게 무너지지 않았다.
놀고 있는 현금을 CMA(연 2.5% 가정)에 두면 CAGR은 8.6%까지 올라간다.
낙폭을 더 줄이고 싶으면 안정형(24계좌, CAGR 6.0%, MDD -15.9%), 더 벌고 싶으면 공격형(16계좌, CAGR 8.3%, MDD -26.6%)이다.

시작 시점별 12개월 성과와 전체 기간 평가금액
시작 시점별 12개월 성과와 전체 기간 평가금액

언제 시작했느냐에 따라 결과가 달라지는지도 봤다.
2021년 10월부터 매달 시작해서 12개월씩 굴려본 49번 중,
균형형의 최악은 -15%, Buy&Hold의 최악은 -36%였다.
수익이 난 비율도 80% 대 61%다.
중앙값은 비슷했다(5.1% vs 5.5%). 차이는 나쁠 때 얼마나 덜 나쁘냐에서 났다.

반대로 효과가 없었던 것도 있다.
급락한 날 간격을 더 넓히기, 다 팔고 나서 빨리 재진입하기, Buy&Hold 물량을 일부 깔아두기는 모두 성과를 깎았다.


그래서 어떻게 거래하나

거래 가이드 ① 규칙과 그 의미
거래 가이드 ① 규칙과 그 의미

규칙은 다섯 개다. 각각 시장에 던지는 질문이 다르다.

  1. 얼마나 출렁이나 (ATR): 평소 하루 움직임만큼 빠지면 산다. 조용한 장에서는 촘촘히, 출렁이는 장에서는 넓게 사서 계좌가 너무 빨리 바닥나지 않게 한다.
  2. 얼마에 파나 (ATR): 하루 변동폭의 60% 정도 반등하면 판다. 하루 이틀 안에 닿을 만한 거리다.
  3. 어느 국면인가 (120일선): 반년 평균 위면 중기 상승 국면이다. 반등이 길게 이어지니 익절을 1.5×ATR로 크게 잡는다.
  4. 너무 올랐나 (이격도): 20일선보다 5% 넘게 올라 있으면 신규 매수를 멈춘다. 이미 산 계좌의 매도 주문은 그대로 둔다.
  5. 너무 빠졌나 (%B): 볼린저 하단 밖이면 이번 매수는 두 계좌분을 산다. 20일 뒤 오를 확률이 61%로 평소(52%)보다 높았다.
거래 가이드 ② ATR별 주문 기준과 견딜 수 있는 하락폭
거래 가이드 ② ATR별 주문 기준과 견딜 수 있는 하락폭

ATR 연동의 진짜 의미는 이 표의 마지막 열에 있다.
고정 1.5% 간격이면 첫 매수가에서 -25%쯤 빠졌을 때 20개 계좌가 다 찬다.
ATR이 5%인 급변동기에는 간격이 5%로 넓어져서, 같은 20계좌로 -62%까지 버틸 수 있다.
지난 글에서 “계좌가 다 차버려서 기회가 없었다”고 썼던 문제를 변동성이 알아서 풀어주는 셈이다.

거래 가이드 ③ 주문 순서와 10/16 예시
거래 가이드 ③ 주문 순서와 10/16 예시

10월 16일 종가로 계산하면 이렇다.
ATR 4.91%로 장기 평균의 두 배인 고변동 국면이니 간격 4.9%, 익절 2.9%.
종가가 120일선 아래라 익절 확대는 없다.
이격도 93.6, %B 0.20이라 과열도 과매도도 아니다. 평소처럼 한 계좌분을 산다.


한계

  • 종목 하나(코스닥150), 기간 5년이다. 그 대부분이 횡보와 하락장이었다. 강한 상승장에서는 여전히 Buy&Hold보다 덜 오른다.
  • 5분봉으로 근사한 결과라 실제 지정가 체결 순서까지는 반영하지 못했다.
  • 이격도 105, %B<0은 학습 구간에서 고른 값이라 검증 성과가 조금 낙관적일 수 있다.
  • -30% 이상 이어지는 장기 하락에서는 결국 계좌가 다 차고 평가손실이 길어진다.

앞으로 할 것

백테스트는 여기서 끝이 아니다. 다음으로 해볼 것들이다.

  • 인버스(KODEX 코스닥150선물인버스) 분봉을 받아서, 과열 구간에 매수를 멈추는 대신 인버스로 갈아타는 조합 해보기
  • 시점마다 그때의 주도주를 찾아서, ETF 대신 주도주로 같은 전략을 돌려보기
  • 코스피200 같은 다른 ETF에도 같은 규칙을 적용해서, 코스닥150에만 맞춘 숫자인지 확인하기

그리고 내일(10월 19일)부터는 실제로 ATR을 이용해서 거래해본다.

그간의 실제 내 코스닥트레이딩 계좌는 2년새 어떤  성과를 냈는지, 향후 백테스트 숫자와 실제 체결이 얼마나 같은지, 그 결과는 나중에 따로 공유하겠다.

감으로 하던 운용의 묘를 숫자로 바꿔보니, 통념대로인 것도 있었고 아닌 것도 있었다.
통하지 않은 것을 버리고 통한 것만 남기니 낙폭이 절반 가까이 줄었다.
이제는 그 숫자로 실제 돈을 굴려볼 차례다.

참고: 이 글은 개인적인 백테스트 기록이며 특정 상품의 매수·매도 권유가 아닙니다. 과거 수익률이 미래 수익을 보장하지 않습니다.

코스닥150 ‘사팔사팔’ 트레이딩, 5년치 5분봉으로 백테스트 해봤다(Feat. 변동성 수확 전략)_261017

내가 이런 전략을 소개한 적이 있다.

2024년 11월, 코스닥이 600대로 내려왔을 때 시작한 코스닥150 ETF 트레이딩이다.

계좌를 나누어 KODEX코스닥150이 떨어질 때마다 매수했다가, 오를 때마다 파는 전략을 11월 14일부터 사용했다.

지수가 떨어지든 말든 나는 일간~일중 발생하는 변동성에서 돈을 버는 게 이 전략의 핵심인데, 문제는 그러려면 떨어질 때 떨어진 가격에 살 수 있는 총알이 필요하다.

처음 이 전략을 알린 글에서는 왜 코스피가 아니라 코스닥인지도 적었다.

그 이유는 일중(Intraday) 변동성에 있다. … 이 Spread에 돈 벌 기회가 있다.

그리고 4개월 후기에서는 이렇게 정리했다.

경험상 이 전략의 장점은 돈을 잃지 않는다는 것,
그리고 연 환산 수익률이 10~20% 정도 된다는 점이다.

지난 7월에는 같은 전략(4848)을 다시 시작했다는 글도 썼다.


왜 백테스트를 했나

이 전략의 기본은 간단하다.

  1. 계좌를 여러개 개설하고 자본을 나눠 넣는다.(내 경우 24개)
  2. 첫 계좌로 매수 후 주가가 0.5% 오르면 팔고, 1.5% 하락하면 다음 계좌로 매수한다.
  3. 계속 하락하면 계속 매수하고, 오르면 오르는 대로 판다.

간단한 전략이지만 얼마든지 변형할 수 있다.

시장의 하락 추세가 강하다고 생각하면 1.5%가 아니라 3%, 4% 하락할 때 매수할 수도 있다.

시장이 너무 올랐다고 생각하면 매수를 멈추거나 줄일 수도 있다. 심지어는 인버스를 매수할 수도 있다.

다만 이 모든 운용의 묘를 나는 아직은 감에 의존하고 있다.

그래서 운용하는데 가장 도움이 되는 시그널과 그에 따른 운용 전략을 도출하고자 했다.

최근 변동성이 큰 장세에서 수익률이 좋은 것도 이 전략을 더 깊게 파보는데 좋은 동력이 됐다.

학계에서는 이런 전략을 변동성 수확(Volatility Harvesting) 이라고 부른다.

섀넌의 악마(Shannon’s Demon), 리밸런싱 프리미엄 같은 이름으로도 불린다.

가격이 제자리로 돌아오기만 하면, 오르내리는 진폭 자체가 수익이 된다는 아이디어다.

물론 ‘제자리로 돌아온다’는 가정이 깨지면 이야기가 달라진다.

일단은 기본 원칙을 운용의 묘 없이 그대로 실천한다고 했을 때 어떻게 되는지 결과를 살펴보자.


데이터와 규칙

데이터는 대신증권 크레온 플러스 API로 받았다.

KODEX 코스닥150(229200) 5분봉 약 5년치(2021.09.02~2026.10.16)다.

(대신증권은 1분봉 2년, 5분봉 5년치를 준다. 무료로 받을 수 있는 것 중에는 가장 길다.)

규칙은 아래와 같다.

  1. 자본 1억을 24개 계좌로 나눈다.
  2. 직전에 산 가격보다 1.5% 떨어지면 다음 계좌로 산다.
  3. 계좌마다 자기가 산 가격보다 0.5% 오르면 그 계좌는 전부 판다.
  4. 계좌를 다 팔고 나면, 그 뒤 고점에서 1.5% 떨어질 때 다시 들어간다.

현실 비용도 넣었다.

수수료 0.015%, 그리고 체결이 한 호가(5원) 불리하게 된다고 가정했다.

국내 ETF라 거래세와 매매차익 세금은 없다.


백테스팅상의 실제 매매 결과는?

2026년 3월 3일~10일 5분봉 매매 지도: ▲매수 ▼매도, 갈색 선은 같은 계좌의 매수→매도
2026년 3월 3일~10일 5분봉 매매 지도: ▲매수 ▼매도, 갈색 선은 같은 계좌의 매수→매도

위 차트는 올해 3월 3일~10일 6거래일이다.

3월 4일 장중에 전날 종가 대비 -14.7%까지 빠졌던 날이 있었다.

전략은 떨어지는 동안 14개 계좌까지 채웠고,

다음 날 시가가 튀어 오르면서 아래쪽 계좌들이 한꺼번에 팔렸다.

이 6일 동안 매수 99번, 매도 95번.

실현이익은 378만원, 총 자본 1억원 대비 3.8%였다.

캥거루 장세에서 이 전략이 얼마나 일을 하는지 보여주는 장면이다.

전체 기간(2021.09~2026.10) 매매 지도: 가격·월별 매도 횟수, 누적 실현이익 vs 총손익, 보유 계좌 수
전체 기간(2021.09~2026.10) 매매 지도: 가격·월별 매도 횟수, 누적 실현이익 vs 총손익, 보유 계좌 수

5년 전체로 보면 이렇다.

매도는 1,892번, 전부 +0.5% 익절이다.

그래서 실현이익(파란 선)은 단 한 번도 꺾이지 않고 5,100만원까지 올라간다.

하지만 손실은 사라진 게 아니라, 팔지 않은 계좌의 평가손실로 쌓여 있었다.

2022년 하락장에서는 총손익이 -2,000만원까지 내려갔고,

10월 16일 현재도 평가손실이 3,430만원이다.

하지만 코스닥 ETF 전체가 개별주처럼 상장폐지 되지는 않는다는 점을 들어

나는 언젠가 회수 할 수 있는 손실이라고 생각한다.

오히려 요즘 같은 장세에는 평가손실을 무릅쓰고 매수한다.


그냥 사서 들고 있었으면?

변동성 수확 vs Buy&Hold 평가금액과 낙폭
변동성 수확 vs Buy&Hold 평가금액과 낙폭

같은 기간 첫날 1억을 한 번에 사서 들고만 있었을 때와 비교했다.

  • CAGR(연평균 수익률): 변동성 수확 +3.07% / Buy&Hold -2.06%
  • 누적 수익률(ROI): +16.73% / -10.11%
  • 최대 낙폭(MDD): -36.82% / -51.60%
  • Sharpe Ratio: 0.25 / 0.12
  • 표준편차(연): 24.80% / 36.26%
  • 베타: 0.61 / 1.00
  • Sortino Ratio: 0.37 / 0.18

(Sharpe·Sortino는 무위험수익률 0% 기준, 놀고 있는 현금의 이자는 0으로 계산했다.)

결론부터 말하면, 덜 잃고 조금 더 벌었다.

2022년(-18% vs -36%)이나 2024년(-9% vs -19%) 같은 하락장에서 손실이 절반 수준이었다.

반면 2023년(+34% vs +45%), 2025년(+27% vs +37%) 같은 상승장에서는 덜 올랐다.

계좌를 다 팔고 나와서 오르는 걸 구경만 하는 구간이 생기기 때문이다.


복기: 내가 몸으로 겪은 것과 숫자가 같았다

24년 11월 복기 글에 이렇게 썼었다.

원칙이 주가가 1~2% 떨어질 때마다 계좌를 채워놓는 것인데, 이때 내가 가진 계좌 7개 중 대부분이 비슷한 평단가에서 채워져 버렸다.
그러고는 주가 빠지기 시작했다. … 계좌가 다 차버려서 기회가 없었다.

백테스트에서도 정확히 같은 문제가 보였다.

24개 계좌를 1.5% 간격으로 깔면, 첫 매수가에서 29% 정도 빠질 때까지만 버틸 수 있다.

5년 중 24개 계좌가 모두 찬 날이 191일이었다.

그 기간에는 아무리 출렁여도 살 돈이 없어서 수익을 못 낸다.

그리고 내 실제 체감 수익률(4개월 6%, 연 환산 18%)과 백테스트(연 3%)의 차이도 짚어야 한다.

내가 생각하는 이유는 두 가지다.

하나, 나는 지수가 바닥권이라고 판단한 시점에만 들어갔다.

백테스트는 시점을 가리지 않고 5년 내내 기계적으로 돌렸다.

둘, 나는 0.5~1% 간격으로 더 촘촘하게 거래했고, 인버스도 섞었다.

결국 운용의 묘가 필요하다.

언제 어떻게 과열이라고 판단하고, 그때 어떻게 거래할 것인가? 언제 어떻게 과매도라고 판단하고 어떻게 거래할 것인가?

이게 중요하다.


앞으로 할 것

이제부터는 최적화다.

  1. 매수 간격(1.0~3.0%), 매도 폭(0.5~2.0%), 계좌 수(12~40개)를 바꿔가며 돌려본다.
  2. 앞 구간(2021~2024)으로 고르고, 뒤 구간(2024~2026)으로 검증한다. 과거에만 맞춘 숫자를 피하려는 목적이다.
  3. 놀고 있는 현금에 CMA 이자를 붙여 본다.
  4. 지수 위치(이동평균, 매물대)에 따라 진입을 조절하는 필터를 붙여 본다.

이번 결과는 스냅샷으로 남겨둔다.

최적화 후에 비교하기 위해서다.

간단한 전략인데, 숫자로 뜯어보니 생각보다 할 이야기가 많다.

천천히 하나씩 보자.


참고: 이 글은 개인적인 백테스트 기록이며 특정 상품의 매수·매도 권유가 아닙니다. 과거 수익률이 미래 수익을 보장하지 않습니다.