두 점으로 충분했다

탐지기를 만들다 보면 가끔 코드가 나를 놀리는 기분이 든다. 같은 입력에 서로 반대되는 ✔ 두 개를 뱉어놓고도 아무 불평이 없다.

현대차편에서는 같은 다섯 거래일에 네 개 이름이 붙었다. NAVER는 더 압축적이다. 두 점이면 충분하다.

7월 27일 고가 234,500원, 8월 5일 고가 234,000원. 차이 0.21%. 이 두 점을 “이중 천장의 두 봉우리"라고 부르면 하락 반전 신호가 되고, “상승 삼각형의 수평 저항선"이라고 부르면 상승 돌파 대기 신호가 된다.

이 글의 데이터 범위
종목    NAVER (035420)
구간    2026-05-13 ~ 2026-08-14 · 65 거래일
출처    stockanalysis.com 일봉 (2026-08-14 조회)
--------------------------------------------------
기간 최고  304,000원  (6/01 고가)
기간 최저  181,100원  (7/14 저가)
최종 종가  231,000원  (8/14)
--------------------------------------------------
고점 → 저점   −40.43%
저점 → 현재   +27.55%
고점 대비 현재 −24.01%

네 종목 중 낙폭이 가장 작다. 그래서 오히려 패턴이 다양하게 나왔다.

취미로 차트 패턴을 코드에 옮겨보는 기록이다. 여기 나온 종목을 매매 근거로 삼으면 곤란하다. 나부터 안 그러고 있다.


1. 하루에 1,450만 주

NAVER 일봉 전체 구간

5월 19일자 조세일보 기사가 그날 NAVER를 이렇게 적었다. 주가 19만 8,100원대. 1분기 매출 1조3,120억 원으로 전년 대비 1.4% 감소, 영업이익 2,910억 원으로 31.3% 감소, 순이익 1,889억 원으로 32% 하락. 다만 플랫폼 +14.7%, 커머스 +18.9%, 중고거래 +18.4%로 부문별 성장률은 높았고, NH투자증권은 목표주가를 29만 6,846원으로 제시했다.

내 데이터의 5월 19일 종가가 198,100원이다. 또 원 단위로 맞는다. 네 종목 전부에서 외부 기사의 가격이 내 일봉과 붙었다. 검증은 이쯤이면 됐다.

NAVER · 이 구간의 극단값
  최대 상승일  6/01  +16.03%   종가 271,500
  두 번째       5/29  +14.15%   종가 234,000
  최대 하락일  6/10  −11.67%   종가 227,000
  두 번째       6/23  −8.78%    종가 202,500
  --------------------------------------------------
  최대 거래량  6/01  14,498,530주  (평균의 7.1배)
  기간 평균 거래량   2,039,273주
  --------------------------------------------------
  6/01 하루가 전체 거래량의 10.9%를 차지한다

6월 1일 하루에 1,450만 주. 65거래일 전체 거래량의 10.9%가 하루에 나왔다. 그리고 그날이 최고가였다.

LG전자도 최대 거래량일이 최고가일이었다. 삼성전자는 거꾸로였다. 최대 거래량일이 최저가일이었다. 거래량 폭증 자체는 방향을 안 알려준다. 내 봇의 거래량 게이트를 설계할 때도 이게 그대로 적용된다. 거래량 조건은 “움직임이 있는 종목"을 거르는 데 쓰지, “오를 종목"을 고르는 데는 못 쓴다.


2. 열세 개를 전부 대봤다

13개 패턴 판정 (NAVER · 2026-05-13 ~ 08-14)
  ✔ 삼각형              대칭 5/28~6/16 · 상승 7/14~8/14
  ✔ 이중 천장            7/27·8/05  두 봉우리 차이 0.21%
  △ 강세 플래그          7/14~7/23  되돌림 58.6% — 기준 초과
  △ 이중 바닥            7/02·7/14  마루 높이 7.1% — 얕다
  △ 엘리어트 파동        셀 수는 있으나 사후 해석
  ✘ 역 헤드 앤 숄더       후보 25건 — 넥라인 조건 통과 0건
  ✘ 헤드 앤 숄더(정방향)  가운데가 가장 높은 3연속 0건
  ✘ 약세 플래그          채널이 깃대와 같은 방향으로 하락
  ✘ 강세 페넌트          수렴은 있으나 폭이 34.6%
  ✘ 약세 페넌트          해당 구간 없음
  ✘ 직사각형(박스)       스캔 결과 0건
  ✘ 컵 앤 핸들           바닥이 U자가 아니라 V자
  ✘ 역 컵 앤 핸들        해당 구간 없음

성립 둘(삼각형 두 종류 포함하면 셋), 조건부 셋, 불성립 여덟.


3. 대칭 삼각형에서 계측 공식이 무너진다

6월 초의 급등 뒤에 고점은 낮아지고 저점은 높아지는 구간이 있었다.

NAVER 대칭 삼각형

대칭 삼각형 구성 요소 (실측)
  고점선 (하락)
    6/01 고가 304,000 → 6/16 고가 265,500   −12.66%
  저점선 (상승)
    5/28 저가 195,800 → 6/11 저가 218,500   +11.59%
  --------------------------------------------------
  수렴 확인   양쪽이 서로를 향해 좁혀진다
  이탈        6/23 종가 202,500  −8.78%  아래쪽
  --------------------------------------------------
  계측 목표   삼각형 최대 높이 = 304,000 − 195,800 = 108,200
              202,500 − 108,200 = 94,300원
  실제 최저   7/14 181,100원

94,300원. 이 값은 명백히 말이 안 된다.

공식은 단순하다. 이탈 지점에서 삼각형의 가장 넓은 부분만큼 간다는 것이라, 삼각형이 좁을 때는 그럭저럭 쓸 만한 값이 나오는데, 여기처럼 시작 폭이 55%(195,800 대비 304,000)까지 벌어지면 목표가 이탈점의 절반으로 내려앉는다.

이게 계측 공식의 구조적 약점이다. 패턴의 크기가 커질수록 목표가 신뢰도는 급격히 떨어진다. 그런데 공식 자체는 크기를 안 따진다. 그냥 빼면 되니까.

내 봇의 포트폴리오 익절은 예상 실현 2만 원이라는 절대 금액이다. 비율 대신 금액으로 잡았다. 비율 기준은 진입가에 따라 실제 금액이 크게 달라지고, 4슬롯으로 나눠 담는 구조에서는 그게 곧 슬롯마다 다른 규칙을 적용하는 것과 같아져서, 어느 슬롯에서 익절이 났느냐에 따라 같은 공식이 매번 다른 일을 하게 된다. 공식이 상황에 따라 다른 의미를 갖게 되면 그건 이미 규칙이 아니다.


4. 상승 삼각형, 저항선 바로 아래에서 멈췄다

7월 저점부터 지금까지, 저점은 계속 올라오는데 고점은 한 자리에서 막힌다.

NAVER 상승 삼각형

상승 삼각형 구성 요소 (실측)
  수평 저항
    7/27 고가 234,500
    8/05 고가 234,000    편차 0.21%
 
  상승 지지
    7/14 저가 181,100
    7/30 저가 194,100   +7.18%
    8/10 저가 206,500   +6.39%   저점 3회 절상
  --------------------------------------------------
  8/14 종가   231,000  — 저항선 1.28% 아래
  판정        형태 성립 · 돌파 미확인
  --------------------------------------------------
  참고: 돌파 시 계측 목표
        234,000 + (234,000 − 181,100) = 286,900원
  ※ 도달할 근거는 없다. 패턴 정의에 딸린 산술일 뿐이다

저점 세 개가 181,100 → 194,100 → 206,500으로 또박또박 올라온다. 고점 두 개는 0.21% 안에서 멈춘다. 교과서 상승 삼각형이다.

그런데 그 고점 두 개가 이중 천장의 두 봉우리와 같은 점이다.

같은 두 점, 정반대의 두 결론
  7/27 고가 234,500  ·  8/05 고가 234,000   차이 0.21%
  --------------------------------------------------
  "이중 천장"      → 하락 반전
      두 봉우리 사이 골  7/30 저가 194,100 (−17.23%)
      넥라인 194,100 이탈 시 목표 = 194,100 − 40,150 = 153,950
      현재 상태: 넥라인 미이탈 → 미확정
 
  "상승 삼각형"    → 상승 돌파 대기
      저항 234,000 돌파 시 목표 = 286,900
      현재 상태: 저항 미돌파 → 미확정
  --------------------------------------------------
  두 패턴 모두 "아직 확정 안 됨" 상태로 공존한다
  목표가는 153,950과 286,900 — 1.86배 차이

핵심은 이거다. 두 패턴이 동시에 미확정이다. 194,100원 아래로 내려가면 이중 천장이 확정되고 상승 삼각형은 무효가 된다. 234,000원 위로 올라가면 그 반대다. 지금 231,000원은 딱 그 사이에 있다.

교과서식으로 쓰면 이렇다. “NAVER는 이중 천장과 상승 삼각형이 겹친 상태이며, 194,100과 234,000 중 어느 쪽이 먼저 깨지느냐에 따라 방향이 결정된다.” 문장은 그럴듯하다. 그런데 정보량이 0이다. “오르거나 내린다"를 길게 쓴 것에 불과하다.

이 함정은 조심해야 한다. 조건부 서술을 촘촘히 쌓으면 분석처럼 보이지만, 조건이 양쪽을 다 덮는 순간 아무 말도 안 한 글이 된다.


5. 이중 바닥은 왜 △인가

7월 초에 저점 두 개가 가깝게 붙어 있다. 이것도 확인했다.

이중 바닥 후보 대조
  저점 ①  7/02  191,000
  저점 ②  7/14  181,100
  사이 마루  7/10 고가 194,600
  --------------------------------------------------
  두 저점 차이   5.18%   기준 3% 이내   → 초과
  간격           8 거래일  기준 5봉 이상  → 충족
  마루 높이       +7.12%  기준 10~20%   → 미달
  --------------------------------------------------
  두 번째 저점이 첫 번째보다 5% 낮다 = W가 아니라 계단

마루 높이를 왜 조건에 넣었는지 적어둔다. 이중 바닥의 서사는 “한 번 반등했다가 다시 눌렸는데 같은 자리에서 또 막혔다"는 것이다. 반등이 7%밖에 안 되면 그건 반등이라기보다 하락 도중의 잔물결이다. 실제로 여기서는 두 번째 저점이 첫 번째보다 5.18% 낮았다. W가 아니고 계단이 됐다.

그런데 결과적으로 7월 14일 181,100원이 이 구간의 최저가였다. 이중 바닥이라고 불렀다면 “맞은” 게 된다. 판정이 틀렸는데 결과가 맞는 경우가 이렇게 나온다. 그래서 결과보다 판정 과정을 기록에 남긴다. 결과만 남기면 다음에 같은 상황에서 무엇을 봐야 할지 알 수가 없다.


6. 역 헤드 앤 숄더 후보 25건, 통과 0건

NAVER는 저점이 많다. k=3 기준으로 스윙 저점이 8개 나왔고, 그중 가운데가 가장 낮은 3연속 조합이 25개였다.

NAVER 역 헤드 앤 숄더 후보 분포

후보 25건에 조건을 거는 과정
  k=3 스윙 저점 8개
    5/20 190,800   5/28 195,800   6/11 218,500   6/26 190,300
    7/02 191,000   7/14 181,100   7/30 194,100   8/10 206,500
  --------------------------------------------------
  가운데가 최저인 3연속 조합        25건
  + 어깨 높이차 5% 이내            10건
  + 넥라인 기울기 ±8% 이내         0건
  --------------------------------------------------
  어깨 대칭은 흔하다. 넥라인이 수평에 가까운 경우가 드물다

25건이 나왔다는 게 먼저 놀랍다. 저점 여덟 개만 있어도 조합이 이만큼 생긴다. 어깨 높이차 5% 조건을 걸면 10건으로 줄고, 넥라인 기울기 조건까지 걸면 0건이 된다. 두 줄이면 끝난다.

이유는 단순하다. 넥라인이 심하게 기울면 돌파 기준선이 매 봉 움직여서 실전에서 쓸 수가 없다. 어깨 높이차가 0.1%로 완벽한 조합(5/20 · 6/26 · 7/02)이 하나 있는데, 넥라인 두 점이 각각 6/01 고가 304,000과 6/29 고가 206,000이다. 한 달 사이에 32% 내려가는 선을 넥라인이라고 부를 수는 없다.

탐지의 본질은 후보 생성이 아니라 후보 제거
  조건 없음        25건  → 아무거나 다 패턴
  조건 1개         10건  → 여전히 골라야 함
  조건 2개          0건  → 이 구간엔 없다는 결론
  --------------------------------------------------
  조건을 몇 개 걸지도, 어떤 조건을 걸지도 내가 정한다
  그리고 그 선택이 "패턴이 있다/없다"를 뒤집는다

삼성전자편에서 “패턴의 존재 여부가 탐지 파라미터에 종속된다면 그건 관찰이 아니라 선택"이라고 썼다. NAVER 사례는 그 문장의 정량적 버전이다. 25건과 0건 사이가 조건 두 개다.


7. 강세 플래그를 △로 둔 이유

7월 저점에서 나온 반등을 플래그로 볼 수 있는지도 확인했다.

NAVER 강세 플래그 판정

강세 플래그 조건 대조
  깃대   7/14 종가 183,200 → 7/23 종가 220,000
         6 거래일 +20.09%              조건 충족
 
  채널   7/27 ~ 7/31 · 5 거래일
         상단 −1.12%/봉 · 하단 −0.86%/봉
         깃대와 반대 방향(우하향)         조건 충족
 
  되돌림 7/30 저가 194,100
         = 깃대의 58.6%   50% 기준 초과   → 실격
  --------------------------------------------------
  결과   8/04 종가 226,500 +9.16% — 위로 갔다
  판정   결과는 맞았지만 조건은 못 맞췄다 → △

LG전자의 8월 반등은 기울기가 반대라서 △였다. NAVER는 기울기가 정석인데 깊이가 초과라서 △다. 걸린 항목이 서로 다르다.

여기서 유혹이 생긴다. 결과가 맞았으니 기준을 61.8%로 완화하면 이건 ✔이 된다. 판정표도 더 그럴듯해 보인다. 하지만 그건 결과를 보고 기준을 고친 것이고, 그 순간부터 이 표는 아무것도 검증하지 못한다.

내 개발 규율이 “커밋에 근거 수치를 동봉한다"인 이유도 같다. 나중에 결과를 보고 파라미터를 슬쩍 고치는 걸 막으려면 고칠 때마다 왜 고쳤는지가 기록에 남아야 하고, 그 기록이 없으면 결국 나 자신도 내가 만든 판정표를 못 믿게 된다.


8. 거래량은 며칠에 몰린다

패턴에서 잠깐 벗어나 네 종목의 거래량 구조를 봤다.

거래량 누적 집중도

거래량 상위 3일이 전체에서 차지하는 비중
  NAVER       상위 3일 = 전체의 25.6%
              (6/01 · 6/08 · 6/02)
  --------------------------------------------------
  65거래일 중 3일이 4분의 1 이상
  6/01 하루만 10.9%

거래량이 며칠에 몰린다는 건 알고 있었다. 그래도 상위 3일이 4분의 1을 넘는 건 다시 봐도 인상적이다. 그리고 그 3일이 전부 6월 첫 주에 있다. 나머지 62거래일은 그날들이 만든 가격을 소화하는 과정이었다.

패턴 쪽에서 이게 왜 중요하냐면, 거래량이 한쪽에 몰린 구간에서는 스윙 고점·저점도 그 며칠에만 몰려 생기고, 6월 1일 고가 304,000처럼 봉 하나가 대칭 삼각형의 시작점이자 기간 최고가이자 역 H&S 후보 절반의 넥라인을 한꺼번에 맡게 되기 때문이다. 그러면 그 봉이 흔들릴 때 패턴들이 같이 무너진다.

내 봇의 거래량 게이트는 “최근 평균 대비 몇 배” 형태로 되어 있다. 이 그림을 보고 나서 그 조건의 성격이 좀 더 분명해졌다. 평균이라는 기준선 자체가 소수의 폭발일에 끌려간다. 상위 3일이 25%를 차지하는 종목이면, 그 3일이 평균을 올려놓아서 나머지 62일은 전부 “거래량 미달"로 판정된다.

평균이 왜곡되는 정도
  NAVER 전체 평균 거래량        2,039,273주
  상위 3일 제외 후 평균          1,590,870주
  --------------------------------------------------
  세 봉을 빼면 평균이 22.0% 내려간다
  "평균의 N배" 조건은 그 세 봉에 크게 좌우된다

평균 대신 중앙값을 쓰는 쪽이 안전하다는 생각은 오래 했다. 아직 안 바꿨다. 바꾸려면 매매기록으로 검증해야 하고, 그 검증을 아직 안 돌렸다. 좋아 보이는 아이디어를 검증 없이 넣지 않는다는 규율은 이럴 때 조금 답답하지만, 3시대에 그걸 어겨서 1,500줄 모놀리스를 만들었던 기억이 있다.

하나 남았다. 8월 14일 거래량이 35,759주로 기록돼 있는데 평균의 1.8%다. 부분 세션 스냅샷일 가능성이 높다고 보고, 이 글에서 8월 14일 거래량에 근거한 주장은 하지 않았다. 가격(시가·고가·저가·종가)은 다른 지표들과 어긋나지 않아서 그대로 썼다.


9. 이번에 걸린 것들

조건이 양쪽을 다 덮는 서술은 분석이 아니다. “194,100이 깨지면 하락, 234,000을 넘으면 상승"은 참인 문장이다. 그런데 아무 정보도 없다. 패턴 두 개가 겹치면 이런 문장이 자연스럽게 나온다는 게 위험하다.

탐지의 본질은 후보를 만드는 쪽보다 지우는 쪽에 있다. 25건에서 0건까지 줄이는 데 조건 두 개면 충분했다. 그 두 개를 내가 골랐다는 사실이 결론 안에 숨는다.

계측 공식은 패턴 크기를 안 따진다. 삼각형 높이 108,200원을 그대로 빼면 94,300원이 나온다. 공식이 산출한 값이라고 해서 의미가 붙지는 않는다.

남들이 다 아는 정보로는 남들과 다른 결과를 낼 수 없다는 하워드 막스의 지적을 차트 패턴에 옮겨본다. 234,500과 234,000이라는 두 점은 차트를 켠 모두에게 보인다. 갈리는 건 그 두 점에 무슨 이름을 붙이느냐이고, 이름 붙이기는 정보보다 취향 쪽에 있다.


다음 글은 SK텔레콤편이다. 이중 바닥의 계측 목표가 100원 차이로 맞은 다음, 바로 다음 날 −16.04%가 나온다.


남는 시간에 혼자 돌려본 학습 노트라 투자 판단의 근거로는 쓸모가 없습니다. 가격은 stockanalysis.com 일봉을 2026-08-14에 조회한 값, 실적과 기사 인용은 본문에 출처를 붙여뒀습니다.


약어 풀이

* 이 글에 나온 영어 약어를 풀어 둔다.

  • H&S (Head and Shoulders): 헤드앤숄더. 왼어깨·머리·오른어깨 세 봉우리로 이뤄진 천장형 반전 패턴. 뒤집힌 것이 역헤드앤숄더(바닥형).