목록을 늘린 게 실수였나 싶었다
패턴을 넷 더 얹었더니 성립하는 게 오히려 줄었다. 목록만 길어졌다.
삼성전자편과 SK하이닉스편에서는 아홉 개를 실제 일봉에 대봤고, 두 종목 열여덟 칸 중 넷이 성립했다. 이번엔 목록을 열세 개로 늘렸다. 앞의 아홉 개에 약세 페넌트, 강세 페넌트, 직사각형, 삼각형을 붙였다. 종목도 반도체 밖으로 나간다. LG전자·현대차·NAVER·SK텔레콤, 업종이 다 다르고 같은 시장에서 같은 두 달을 지나온 네 종목이다.
LG전자를 첫 타자로 잡은 건 이 구간의 모양이 제일 단순해서인데, 단순한 만큼 극단적이기도 하다. 53거래일 만에 고점 대비 3분의 1 토막이 났다.
종목 LG전자 (066570)
구간 2026-06-01 ~ 2026-08-14 · 53 거래일
출처 stockanalysis.com 일봉 (2026-08-14 조회)
--------------------------------------------------
기간 최고 438,000원 (6/02 고가)
기간 최저 141,900원 (7/29 저가)
최종 종가 215,000원 (8/14)
--------------------------------------------------
고점 → 저점 −67.60%
저점 → 현재 +51.52%
고점 대비 현재 −50.91%여기 나오는 가격은 위 표 출처의 일봉을 그대로 옮겼고 손으로 만든 값은 없다. 계산이 들어간 자리에는 식을 붙였다.
나는 차트 모양을 코드로 바꿔보려고 이 짓을 하는 거지, 남의 계좌를 대신 굴려주려고 쓰는 게 아니다.
1. 실적은 122% 늘었고 주가는 반토막이 났다
패턴 얘기 전에 배경을 한 번만 본다.

7월 8일자 노머니 기사에 이런 문장이 있다. “39만2500원을 기록했던 LG전자 주가가 한 달여 만인 7월 6일 18만5700원까지 52.69% 급락했다.” 같은 기사는 2분기 실적 전망을 이렇게 적었다. 매출 22조7,949억 원, 영업이익 1조4,226억 원으로 영업이익 122.5% 증가. 자회사 LG이노텍은 영업이익 1,908억 원으로 1,574.7% 늘었고, 미국 관세 환급금이 약 3,000억 원 수준이라는 설명도 붙었다.
기사에 나온 두 숫자를 내가 가진 일봉에 대봤다. 6월 2일 종가 392,500원, 7월 6일 종가 185,700원. 원 단위까지 일치한다. 출처가 다른 두 값이 원 단위로 맞아떨어지면 그때부터는 내 CSV를 의심하지 않고 시작해도 되기 때문에, 나는 종목을 바꿀 때마다 이 대조를 제일 먼저 해두고 안 맞으면 그날 작업은 거기서 접는다.
최대 하락일 6/04 −16.43%
두 번째 6/08 −11.55%
최대 상승일 8/12 +12.82% 종가 205,000
두 번째 7/31 +9.53% 종가 162,100
--------------------------------------------------
최대 거래량 6/02 10,466,700주 (평균의 4.8배)
기간 평균 거래량 2,197,100주
--------------------------------------------------
낙폭의 절반이 6월 첫 7거래일에 나왔다6월 2일 하루에 1,046만 주가 거래됐다. 기간 평균의 4.8배. 그리고 그날이 고점이었다. 가장 많이 사고팔린 날이 가장 비싼 날이었다. 차트를 보는 사람 입장에서는 좀 잔인한 사실이다.
실적이 122% 늘었는데 주가가 반토막 났다는 문장을 어떻게 읽어야 하는지는 나도 모르겠다. 코드로 옮기는 입장에서 분명한 건 하나다. 패턴은 실적을 모른다. 캔들은 그날 체결된 값의 요약이고, 그 값이 왜 그렇게 됐는지에 대한 정보는 한 톨도 안 들어 있다. 이걸 잊을까 봐 매번 이런 문단을 쓴다.
2. 열세 개를 하나씩 대본다
목록이 아홉에서 열셋으로 늘었다. 각각을 LG전자 실제 데이터에 대보고 성립하면 근거를, 안 되면 왜 안 되는지를 적는다. 이 종목은 성립이 한 개다. 미리 말해두면 이 글은 대체로 실패 목록이다.
✔ 직사각형(박스) 6/30~7/16 상하단 각 3회 터치 · 하방 이탈
△ 강세 플래그 8/06~8/11 깃대는 맞고 채널 기울기가 반대
△ 이중 바닥 6/26·7/07 두 저점 차이 4.84% — 기준 초과
△ 엘리어트 파동 셀 수는 있으나 사후 해석
✘ 이중 천장 두 봉우리 차이 6.81% — 아님
✘ 헤드 앤 숄더(정방향) 고점 3개가 전부 계단식 하락
✘ 역 헤드 앤 숄더 저점 5개가 전부 계단식 하락
✘ 약세 플래그 후보 2건 — 채널 방향·되돌림 깊이 모두 실격
✘ 약세 페넌트 수렴은 있으나 폭이 41%
✘ 강세 페넌트 8월 구간은 수렴이 아니라 확산
✘ 컵 앤 핸들 바닥이 U자가 아니라 V자
✘ 역 컵 앤 핸들 해당 구간 없음
✘ 삼각형(상승·하락·대칭) 스캔 결과 0건열셋 중 하나. 삼성전자가 아홉 중 둘, 하이닉스가 아홉 중 둘이었으니 비율이 더 떨어졌다.
새로 들어온 네 개부터 정의를 고정해야 한다. 말로 하면 다 비슷하게 들리는데, 코드로 옮기려면 서로 배타적이어야 하니까.
직사각형 상단·하단이 모두 수평
→ 고점끼리 x% 이내, 저점끼리 x% 이내
삼각형 한쪽 또는 양쪽이 기울어짐
상승삼각형 = 상단 수평 + 하단 상승
하락삼각형 = 상단 하락 + 하단 수평
대칭삼각형 = 상단 하락 + 하단 상승
플래그 급등·급락(깃대) 뒤 평행 채널
채널 방향은 깃대와 반대
페넌트 급등·급락(깃대) 뒤 수렴 채널
= 짧은 대칭삼각형 + 깃대
--------------------------------------------------
삼각형과 페넌트의 차이는 "앞에 깃대가 있느냐" 하나뿐
플래그와 페넌트의 차이는 "평행이냐 수렴이냐" 하나뿐적어놓고 보면 네 패턴이 같은 재료를 다르게 자른 것이라는 게 드러난다. “가격이 한동안 좁은 구간에 머물렀다"는 하나의 현상을 위아래 경계선의 기울기 조합으로 나눈 것뿐이다. 그런데 이름이 달라지면 붙어 있는 해석도 달라진다. 대칭삼각형은 방향 중립, 페넌트는 깃대 방향 지속, 하락삼각형은 하방 우세. 같은 모양에 서로 다른 결론이 붙는다.
이 점은 뒤에 나올 현대차편에서 아주 노골적으로 드러난다. 거기서는 같은 12거래일이 하락 삼각형이자 강세 페넌트이자 이중 천장이었다.
LG전자로 돌아온다. 열셋 중 아홉이 불성립인 이유는 스윙 고점과 저점을 k=3 기준으로 뽑으면 한눈에 보인다.
스윙 고점
6/15 262,000
7/13 208,500
7/22 194,300
스윙 저점
6/11 207,500
6/26 183,900
7/07 175,000
7/21 162,800
7/29 141,900
--------------------------------------------------
고점 3개도, 저점 5개도 예외 없이 단조 감소한다
가운데가 가장 높은 3연속 = 0건 → 헤드 앤 숄더 불가
가운데가 가장 낮은 3연속 = 0건 → 역 헤드 앤 숄더 불가어깨 계열 패턴은 되돌아오는 움직임을 전제로 한다. 머리를 만들고 다시 어깨 높이까지 올라와야 한다. LG전자의 6~7월에는 그 되돌아옴이 없었다. 계단으로 내려가기만 했다. 어깨 계열이 전부 0건인 건 탐지기가 못 찾아서가 아니다. 그 구간의 성격 자체가 그랬다.
3. 유일하게 성립한 패턴, 직사각형
6월 말부터 7월 중순까지 12거래일 동안 가격이 좁은 띠 안에 갇혀 있었다.

저항선 (상단)
6/30 고가 207,500
7/08 고가 206,000
7/13 고가 208,500 → 3회 터치, 편차 1.21%
지지선 (하단)
7/07 저가 175,000
7/09 저가 175,400
7/14 저가 175,800 → 3회 터치, 편차 0.46%
--------------------------------------------------
박스 높이 208,500 − 175,000 = 33,500원 (19.14%)
지속 기간 12 거래일
이탈 7/20 종가 167,200 — 지지선 −4.46%직사각형은 판정이 쉬운 편이다. 상단과 하단이 각각 수평이고 양쪽에 최소 두 번씩 닿으면 된다. 그게 조건의 전부다. 여기서는 세 번씩 닿았고 하단 세 점의 편차가 0.46%다. 175,000 · 175,400 · 175,800 이렇게 세 번, 800원 폭 안에서 멈춰 섰다.
이 패턴에도 목표가 공식이 붙어 있다. 이탈 방향으로 박스 높이만큼 간다는 것.
지지선 175,000
박스 높이 33,500
--------------------------------------------------
계측 목표 175,000 − 33,500 = 141,500원
실제 기간 최저 7/29 저가 141,900원
--------------------------------------------------
차이 400원 · 0.28%
※ 이건 예측이 아니라 패턴 정의에 딸린 산술이다400원. 0.28%.
처음 계산했을 때는 솔직히 기분이 좋았다. 그리고 곧바로 그 기분을 경계해야 한다는 게 떠올랐다. 하이닉스편에서 계측 목표 1,919,000원이 원 단위로 맞은 뒤 거기서 35% 더 빠지는 장면을 이미 봤으니까.
맞았다는 사실 자체는 정보가 아니다. 표본이 하나다. 게다가 이탈 시점에 이 계산을 했다면 목표까지 −15.4%를 견뎌야 했다. 그 사이 7월 22일에 194,300원까지 되돌아오는 구간이 있었고, 실시간이었다면 거기서 “이탈이 실패했다"고 접었을 가능성이 훨씬 높다. 결과를 알고 보는 차트와 왼쪽만 보이는 차트는 다른 물건이다.
4. 8월 반등은 강세 플래그인가
7월 29일 141,900원을 찍고 8월 14일 215,000원까지 51.52% 올라왔다. 이 반등에 패턴 이름을 붙일 수 있는지 봤다.

깃대 7/30 종가 148,000 → 8/05 종가 179,500
4 거래일 +21.28% 조건 충족
되돌림 8/06 저가 171,600 = 깃대의 25.1%
교과서 기준 50% 이내 조건 충족
기간 4 거래일 (8/06 ~ 8/11) 조건 충족
채널 기울기
상단 181,200 → 187,700 우상향
하단 169,000 → 181,700 우상향
--------------------------------------------------
강세 플래그는 깃대와 반대 방향(우하향) 채널이어야 한다
세 조건 충족, 한 조건 반대 → △깃대도 맞고 되돌림 깊이도 맞고 기간도 맞는데 기울기만 반대다. 그럼 뭐라고 불러야 하나.
솔직히 이건 그냥 상승 도중의 짧은 횡보다. 플래그의 논리는 급등 뒤 차익 실현이 나오면서 가격이 눌리고 그 눌림이 끝나면 다시 간다는 데 있는데, 눌림 없이 옆으로만 갔으면 논리의 절반이 빠진 상태로 이름만 빌려 쓰는 것이다. 그래서 △로 적었다.
그리고 8월 12일에 하루 +12.82%가 나오면서 205,000원으로 올라섰다. 결과만 보면 “플래그 돌파"라고 부를 수 있다. 결과로 패턴을 판정하면 배우는 게 없다. 8월 11일 종가 181,700원 시점에 내가 이걸 플래그라고 부를 수 있었느냐가 진짜 질문이고, 답은 “아니오"다.
5. 약세 플래그 후보 두 건, 둘 다 실격
하락 구간이 이렇게 길었으니 약세 플래그 하나쯤은 있을 법한데 없었다. 후보는 두 건. 둘 다 다른 이유로 떨어졌다.
깃대 6/02 종가 392,500 → 6/08 종가 268,000
3 거래일 −31.72% 깃대는 충분
이후 8봉 채널
상단 기울기 −1.99%/봉
하단 기울기 −0.49%/봉
--------------------------------------------------
약세 플래그는 하락 깃대 뒤 "우상향" 채널이어야 한다
여기는 상·하단이 모두 계속 내려간다 → 깃발이 아니라 연장
게다가 채널 폭이 41% — 깃발이라 부를 수 있는 폭이 아니다 깃대 7/23 종가 187,500 → 7/29 종가 150,500
4 거래일 −19.73% 깃대는 충분
이후 되돌림 추이
+4봉 56.6% 이미 50% 기준 초과
+5봉 103.4% 깃대를 전부 되돌림
+8봉 135.0% 깃대 시작점을 넘어섬
--------------------------------------------------
되돌림이 100%를 넘는 순간 이건 깃발이 아니라 추세 전환이다후보 ②가 흥미롭다. 깃대가 끝난 7월 29일에는 되돌림이 0%였고 4봉 뒤에 56.6%가 됐다. 그 시점에 실시간으로 보고 있었다면 “50%를 넘었으니 깃발 실패"라고 판정했을 것이다. 그 판정 자체는 맞다. 실제로 깃발이 아니었으니까. 다만 실패한 깃발이 아니었다. 방향이 바뀐 자리였고, 그 구분은 몇 봉 더 지나야 가능했다.
같은 이유로 약세 페넌트도 없다. 6월 초 구간은 상·하단이 좁아지긴 하는데 폭이 41%다. 페넌트는 깃대 뒤에 붙는 작은 삼각형이어야 한다. 41%짜리를 페넌트라고 부르면 그냥 또 하나의 하락 파동이다. 크기 기준을 안 걸면 뭐든 페넌트가 된다.
6. 이중 바닥으로 보고 싶었던 자리
안 맞은 것도 적어야 기준이 생긴다. 6월 말~7월 초에 이중 바닥처럼 생긴 자리가 하나 있었다.

저점 ① 6/26 183,900
저점 ② 7/07 175,000
사이 마루 6/30 207,500
--------------------------------------------------
두 저점 차이 4.84% 기준 3% 이내 → 실격
간격 7 거래일 기준 5봉 이상 → 충족
마루 높이 +12.83% 기준 10~20% → 충족
--------------------------------------------------
그리고 이후 7/21 162,800 · 7/29 141,900 으로
두 저점을 모두 깨고 내려간다 — 완전 무효화기준을 3%로 잡으면 탈락, 5%로 잡으면 통과다. 문턱을 어디 두느냐로 패턴의 존재 여부가 갈린다. 그리고 그 문턱은 내가 정한다.
시각적 패턴의 근본 문제라고 삼성전자편에 이미 써놓고 여기서 또 확인했다. RSI는 이런 식으로 흔들리지 않는다. 같은 기간 설정이면 누가 돌려도 같은 값이 나오고, 그 값을 앞에 놓고 문턱을 몇으로 할 것인지만 다투면 되니까 적어도 다투는 대상이 무엇인지는 서로 분명하다. “이중 바닥이 있다/없다"는 진술은 값이 아니다. 판정이고, 판정 기준을 내가 골랐다는 사실이 그 진술 안에 숨는다.
내 봇의 게이트가 전부 계산 지표로만 이뤄진 이유가 이거다. RSI 45라는 문턱도 내가 골랐지만, 문턱을 바꿔서 과거 매매기록을 다시 돌리면 결과가 숫자로 나온다. 검증이 된다. “이중 바닥 기준을 3%에서 5%로 바꾸면 수익이 얼마나 달라지나"는 질문에는 표본이 없어서 답이 안 나온다.
7. 네 종목을 같이 놓고 보면
이번 스터디의 네 종목을 6월 1일 종가 100으로 맞춰 겹쳐 봤다.

같은 시장에서 같은 두 달을 지났는데 8월 14일 기준 지수가 56.5부터 89.6까지 벌어져 있다. LG전자가 가장 많이 빠졌고 SK텔레콤이 가장 덜 빠졌다.

고점→저점 저점→8/14 고점대비 현재
LG전자 −67.60% +51.52% −50.91%
현대차 −56.77% +33.83% −42.15%
NAVER −40.43% +27.55% −24.01%
SK텔레콤 −45.52% +32.24% −27.96%
--------------------------------------------------
낙폭이 클수록 되돌림도 크지만, 원위치와는 거리가 멀다여기서 산수를 한 번 해야 한다. −67.60%를 회복하려면 +208.6%가 필요하다. +51.52%는 그 3분의 1도 안 된다. 하락률과 상승률이 비대칭이라는 건 다들 아는 얘기인데, 실제 숫자로 늘어놓으면 감이 다르다.
이 비대칭이 내 봇의 손절 −5%가 왜 그 자리에 있는지를 설명한다. −5%는 +5.26%로 복구된다. −20%는 +25%. −50%는 +100%다. 손실이 커질수록 복구 난이도가 기하급수로 올라가니까, 손절은 “얼마를 잃어도 되는가"보다 “얼마까지가 복구 가능한 범위인가"로 정하는 게 맞다고 본다.
8. 이걸 봇에 넣을 것인가
직사각형은 열세 개 중 가장 코드로 옮기기 쉬운 패턴이다. 어깨도 넥라인도 필요 없고, 최근 N봉의 고가·저가 분포만 보면 된다.
1 최근 N봉의 스윙 고점들이 서로 x% 이내인가
2 최근 N봉의 스윙 저점들이 서로 x% 이내인가
3 상단·하단에 각각 2회 이상 닿았는가
4 박스 높이가 최소 y% 이상인가 (너무 좁으면 노이즈)
5 종가가 상단/하단을 z% 넘어섰는가 → 이탈 판정
--------------------------------------------------
자유 파라미터 N, x, y, z 네 개
그리고 네 개를 어떻게 고를지는 데이터가 안 알려준다안 넣는다. 파라미터 네 개 때문이다. 이번에도 같은 이유다.
내 개발 규율은 하나다. 모든 파라미터는 실제 매매기록 시뮬레이션으로 검증된 값만 배포한다. RSI 문턱 45는 8.9일치 매매기록을 전수로 훑어서 뽑았고, 커밋에 근거 수치를 같이 넣었다. 직사각형 탐지기의 N·x·y·z를 같은 방식으로 정하려면 박스 이탈 사례가 최소 수십 건 필요한데, 4슬롯으로 두 달 돌린 기록에 그런 표본이 없다.
검증할 수 없는 정교함보다 검증 가능한 단순함. 3시대 단일파일 진화기에서 1,500줄짜리 모놀리스를 만들었다가 배운 문장이다. 기능을 늘리는 건 쉽다. 늘어난 기능이 옳은지 확인하는 건 어렵고, 확인이 끝내 안 되는 기능은 시간이 지나면 그냥 부채로 남는다.
파라미터가 늘면 왜 위험한지는 4시대 병렬 실험기에서 몸으로 배웠다. 그때 HY·BASE·MACRO 세 봇을 동시에 돌렸고, 각 봇의 파라미터가 대여섯 개씩이었다. 어느 봇이 좋았는지는 알 수 있었지만 왜 좋았는지는 끝내 못 밝혔다. 파라미터 다섯 개면 조합이 수천 가지고, 두 달치 매매기록으로는 그중 몇 개도 못 밟아본다. 조합을 다 못 밟으면 “이 값이 좋다"는 결론은 그날 운이 좋았다는 말과 구분이 안 된다.
지금 봇의 게이트가 열 개인데도 각 게이트를 파라미터 한두 개짜리 단순한 조건으로 두는 이유가 이거다. 게이트 하나가 틀리면 그것만 끄고 다시 돌리면 된다. 직사각형 탐지기는 그렇게 못 끈다. N을 바꾸면 x·y·z의 적정값이 전부 따라 움직인다.
다만 읽는 데는 계속 쓸 생각이다. “7월 초 LG전자는 175,000~208,500 박스에 갇혀 있었고 7/20에 아래로 뚫렸다"는 서술은 “RSI가 40 근처를 오갔다"보다 훨씬 많은 걸 담는다. 사후 복기와 시장 이해에는 쓰고, 진입 규칙에는 안 쓴다.
9. 오늘 밤 남는 것
첫째, 패턴이 없는 것도 정보다. 열세 개 중 아홉이 불성립이었고 이유가 전부 같았다. 되돌아오는 움직임이 없었다. “패턴이 안 보인다"는 관찰은 “이 구간은 일방적이었다"는 진술과 같은 말이고, 이건 꽤 쓸모 있다.
둘째, 계측 목표가 맞았다는 사실보다 그때까지 견뎌야 했던 폭이 중요하다. 141,500원은 0.28% 오차로 맞았다. 그런데 이탈점 167,200원에서 거기까지 −15.4%였고, 중간에 +16.2% 되돌림이 있었다. 목표가 맞았다는 결과와 그 과정을 버틸 수 있었느냐는 완전히 다른 질문이다.
셋째, 하락률과 상승률은 대칭이 아니다. −67.60%는 +208.6%로만 복구된다. 손절선은 감내할 수 있는 손실이 아니라 복구 가능한 손실로 정해야 한다는 게 이 숫자가 말해주는 전부다.
손실을 줄이고 이익은 달리게 두라는 데이비드 리카르도의 두 문장을 나는 오랫동안 심리 조언으로 읽었다. −67.60%와 +208.6%를 나란히 계산해보고 나서야 그게 산수 쪽 이야기였다는 걸 알았다. 그런데 정작 내 봇의 손절선이 그 곡선의 어디쯤에 서 있는 값인지는 아직 안 세어봤다. 다음에 매매기록을 다시 돌릴 때 확인할 일이 하나 늘었다.
다음은 현대차편이다. 같은 구간을 하락 삼각형으로도, 역 헤드 앤 숄더로도, 이중 천장으로도 읽을 수 있는 사례가 나온다. 세 이름이 가리키는 방향은 서로 다르다.
여기 나온 가격은 내가 2026-08-14에 stockanalysis.com 일봉으로 받아둔 것이고, 실적과 기사 수치는 본문에 출처를 달아놨다. 이 글을 읽고 뭘 사고팔기로 했다면 그건 내 책임 밖이라고 미리 말해두고 싶다.
약어 풀이
* 이 글에 나온 영어 약어를 풀어 둔다.
- RSI (Relative Strength Index): 상대강도지수. 일정 기간 평균 상승폭과 평균 하락폭의 비율을 0~100 으로 나타내 과매수·과매도를 재는 모멘텀 오실레이터.
- CSV (Comma-Separated Values): 쉼표로 칸을 나눈 표 형식 텍스트 파일.