서론: 사람 눈에는 쉬운데 봇에게는 어려운 패턴
차트 패턴 중에 인버티드 헤드 앤 숄더만큼 설명이 쉬운 것도 드물다. 저점이 세 개 있고, 가운데가 가장 깊다. 양옆 저점은 비슷한 깊이다. 저점 사이에 솟은 고점 두 개를 이은 선이 넥라인이고, 가격이 이 선을 위로 뚫으면 하락 추세가 끝났다고 읽는다. 사람은 차트를 한 번 훑으면 이 모양을 찾아낸다.
그런데 봇에게 “이 모양을 찾아라"라고 시키려면 저 문장을 전부 숫자와 부등호로 바꿔야 한다. “비슷한 깊이"는 몇 퍼센트 차이까지인가. “솟은 고점"은 좌우 몇 봉보다 높아야 고점인가. 이 편은 그 번역 과정에서 무엇이 새어 나가는지를 적은 글이다.
먼저 성격부터 밝힌다. 이번 편은 시세를 받아 성과를 검증한 글이 아니라 규칙 자체를 해부한 글이다. 승률과 수익률을 적지 않은 이유도 그래서다. 이 글에는 가격도, 검출 건수도 없다. 그림도 전부 손으로 만든 모식도다. 다시 말해 아래 그림들은 실제 시세가 아니라 규칙을 설명하기 위한 모식도다.
배정된 코인은 ASTER다. 가격을 보지 않으니 이 코인의 성과는 말할 수 없다. 대신 “이런 성격의 자산에 이 패턴 규칙을 걸면 어떻게 될까"를 사고 실험으로 다룬다. 다만 ASTER의 최근 사건이나 발행 구조처럼 내가 확신하지 못하는 사실은 쓰지 않는다. 그 범위 안에서, 상장 기간이 길지 않고 거래가 특정 시간대와 특정 이벤트에 쏠리기 쉬운 신생 토큰 일반의 성격만 가정하겠다. 이 가정은 이 코인의 실제와 다를 수 있다.
본론 1: 무엇을 재는가
이 패턴이 가정하는 심리는 이렇다. 하락 추세에서 매도 세력은 저점을 계속 낮춘다. 왼쪽 어깨에서 한 번 반등이 나오고, 머리에서 더 깊이 내려가지만 반등은 어깨 때는 힘이 모자라 낮은 곳에서 멈춘다. 이때 오른쪽 어깨가 머리만큼 내려가지 못한다. 매도 힘이 줄었다는 뜻으로 읽는 것이다. 그 뒤 넥라인을 넘으면 매수 쪽이 주도권을 잡았다고 본다.

이 그림에서 패턴을 이루는 재료는 사실 두 종류뿐이다. 하나는 저점 세 개의 상대적 깊이이고, 다른 하나는 고점 두 개가 만드는 선이다. 즉 이 패턴이 재는 것은 “직전 하락의 힘이 약해졌는가"라는 정성적 판단을 저점의 순서로 흉내 낸 것이다. 거래량이나 변동성은 정의에 들어 있지 않다. 그래서 같은 모양이라도 거래가 활발할 때 나왔는지 한산할 때 나왔는지 구분하지 못한다.
본론 2: 어떻게 계산하는가
지표처럼 수식 하나로 떨어지는 것이 아니라 조건의 묶음이다. 나는 이 패턴을 대략 이렇게 옮긴다. 아래는 정의를 설명하기 위한 의사 조건문이고, 숫자는 예시 파라미터일 뿐 추천값이 아니다.
- 피벗 저점 L1, L2, L3와 그 사이의 피벗 고점 H1, H2를 시간순으로 찾는다. 피벗은 좌우 k봉보다 낮은(또는 높은) 봉이다.
- 머리 조건: L2 < L1 그리고 L2 < L3. 머리가 두 어깨보다 낮아야 한다.
- 어깨 대칭 조건: L1과 L3의 차이가 정해 둔 허용폭 이내여야 한다.
- 넥라인: H1과 H2를 잇는 직선이다.
- 신호: 종가가 넥라인 위로 올라서는 봉.
한 줄씩 뜯어 보면 파라미터가 최소 세 개 숨어 있다. 피벗 창 k, 어깨 대칭 허용폭, 그리고 넥라인을 뚫었다고 인정하는 기준이다. 이동평균 교차나 RSI는 기본값이 14나 20처럼 널리 합의돼 있다. 이 패턴에는 그런 기본값이 없다. 사람마다 다르게 정한다. 그래서 과최적화에서 자유롭지 않다. 파라미터가 적은 규칙이 과최적화에 덜 취약한데, 이 패턴은 눈으로 볼 때는 파라미터가 없는 듯 보이지만 코드로 옮기면 오히려 파라미터가 많다.
피벗 창이 결과를 갈라 놓는다
피벗의 창을 얼마로 두느냐가 첫 번째 관문이다.

창이 좁으면 잔파동까지 저점으로 잡혀서 후보가 늘고, 후보가 늘면 저점 세 개를 고르는 조합이 늘어난다. 조합이 많으면 그중 어딘가는 우연히 조건을 통과한다. 반대로 창이 넓으면 굵직한 저점만 남지만, 저점은 좌우 k봉이 지나야 확정된다. 오른쪽 어깨는 패턴에서 가장 마지막 저점이라 확정까지 k봉을 기다려야 하고, 그 사이에 이미 가격이 넥라인에 다가와 있을 수 있다. 확정을 기다리면 늦고, 안 기다리면 노이즈에 속는다. 후행성이 봉 몇 개 단위가 아니라 구조적으로 생기는 지점이다.
넥라인은 선이라서 어렵다
두 번째 관문은 넥라인이다. 두 고점의 높이가 정확히 같은 경우는 거의 없다.

수평이면 “그 가격대를 넘었나"로 단순하게 읽힌다. 기울어져 있으면 돌파 기준이 봉마다 움직인다. 기울기가 위로 향한 넥라인은 시간이 지날수록 뚫기 어려워지고, 아래로 향한 넥라인은 반대다. 사람은 기울기를 눈대중으로 용인하는데, 봇은 각도 허용 범위를 숫자로 정해야 한다. 그 숫자를 몇으로 두든 경계 근처의 사례는 판정이 갈린다. 또 하나, 넥라인은 오른쪽 어깨 이후에나 완성되므로 선 자체가 과거를 돌아보며 그은 선이다. 그은 선에 대해 돌파를 논하는 구조다.
통과하는 모양과 탈락하는 모양

A는 규칙을 통과한다. B는 오른쪽 저점이 머리보다 깊어서 머리 조건에서 탈락한다. 눈으로는 “이중 바닥 비슷한 것"으로 보일 수 있지만 이 패턴은 아니다. C는 종가가 넥라인 위로 올라갔다가 되돌아온 경우다. 돌파를 종가 기준 한 봉으로만 인정하면 C도 신호로 잡힌다. 이 거짓 돌파를 걸러내려고 두 봉 연속 확인이나 되돌림 확인을 얹으면 이번엔 진입이 늦어진다. 이 균형점을 정해 주는 이론은 없고, 정하는 순간 파라미터가 하나 더 생긴다.
본론 3: 무엇을 못 보는가
이 패턴이 정의상 보지 못하는 것을 정리해 본다.
첫째, 거래량이다. 고전적인 설명에서는 돌파 때 거래량이 늘어야 신뢰한다고 하지만, 그건 패턴의 정의가 아니라 사람이 덧붙이는 조건이다. 붙일지 말지, 붙인다면 무엇과 비교할지는 다시 파라미터가 된다.
둘째, 변동성이다. 어깨 대칭 허용폭을 절대 비율로 정하면 변동성이 큰 시기에는 거의 항상 통과하고 잠잠할 때는 거의 통과하지 못한다. 변동성 지표인 ATR을 기준으로 허용폭을 정규화할 수 있지만, 그러면 ATR 기간이라는 파라미터가 또 들어온다.
셋째, 패턴의 크기다. 패턴이 봉 열 개 안에서 만들어졌는지 백 개에 걸쳐 만들어졌는지를 조건이 구분하지 않는다. 규모가 다르면 의미도 다를 텐데, 기본 조건문은 이를 하나로 취급한다.
넷째, 패턴이 성립한 뒤의 목표가다. 교과서식으로는 머리에서 넥라인까지의 거리를 돌파점에 더해 목표가를 잡는다. 하지만 이건 관행이지 검증된 규칙이 아니다. 나는 재 보지 않았으므로 맞다 틀리다를 말할 수 없다. 청산 규칙이 정의에 없다는 것도 짚어 둔다. 패턴은 진입 신호만 주고, 손절과 청산은 봇 쪽에서 따로 정해야 한다.
본론 4: 코인 시장의 함정
이 패턴을 코인에 그대로 옮길 때 나는 세 가지가 걸린다.
일봉 경계는 거래소 설정값이다. 코인은 24시간 돌아간다. 일봉 하나를 어디서 끊느냐는 거래소가 정한다. 국내 거래소는 한국 시각 자정(KST), 해외 거래소는 UTC 자정을 쓰는 경우가 많고 둘 사이에는 아홉 시간 차이가 있다. 그 아홉 시간 때문에 같은 날의 종가와 저가가 달라진다. 피벗 저점은 봉의 저가로 정해지고, 넥라인 돌파는 종가로 판정하므로 어느 거래소의 일봉을 쓰느냐에 따라 저점이 아예 다른 봉에서 잡히거나 돌파 판정이 하루 어긋나는 날이 생긴다. 사람은 이걸 차트를 보며 대충 넘기지만 봇은 일봉 기준을 명시하지 않으면 재현이 안 된다. 같은 코인에 같은 규칙을 걸어도 데이터 출처가 다르면 다른 신호가 나올 수 있다.
주말과 휴장이 없다. 주식 차트에서는 휴장 뒤 갭이 패턴의 일부가 되기도 하고 넥라인 돌파가 갭으로 나기도 한다. 24시간 시장에서는 갭이 드물어서 넥라인 돌파가 연속적으로 진행된다. 그 덕에 돌파 후 복귀 같은 거짓 신호를 종가 하나로 걸러내기가 오히려 애매하다. 종가 기준이 임의의 시각에 걸린 스냅샷이기 때문이다.
현물에는 공매도가 없다. 이 패턴의 반대 모양인 헤드 앤 숄더는 하락 전환 신호다. 하지만 현물 계좌만 쓰는 봇은 하락 신호를 진입으로 쓰지 못하고 청산에만 쓸 수 있다. 결국 봇에 넣을 수 있는 쪽은 인버티드 쪽뿐이라, 신호가 절반만 쓸모 있다.
아스터 같은 신생 토큰이라면, 내가 확신하는 범위에서, 거래가 특정 이벤트에 쏠리기 쉽다고 가정할 수 있다. 그러면 저점 셋과 고점 둘이 천천히 그려지는 패턴보다는 뉴스 한 번에 넥라인을 단숨에 넘는 움직임이 더 흔할 수 있다. 이 가정이 맞다면 패턴이 완성되기도 전에 가격이 이미 움직이거나, 완성 직후 되돌리는 일이 잦을 것이다. 반대로 상장 기간이 짧으면 저점 세 개가 나올 만큼의 이력이 충분하지 않을 수도 있다. 이건 확인하지 않은 가정이고, 내가 아는 사실이 아니다.
결론: 내 봇에 넣을 것인가
이번 편은 시세를 받아 성과를 검증한 글이 아니라 규칙 자체를 해부한 글이다. 승률을 적지 않은 이유도 그래서다. 그러니 “이 패턴이 돈이 된다"는 결론은 낼 수 없고, 내 봇에 넣을지에 대한 판단만 적는다.
내 봇의 진입 게이트는 파라미터가 적고 재현이 쉬운 조건을 우선한다. 인버티드 헤드 앤 숄더는 기준을 충족하지 못한다. 피벗 창, 어깨 허용폭, 넥라인 각도, 돌파 인정 기준, 거짓 돌파 필터, 일봉 경계 기준까지 정해야 할 값이 많고, 어느 값에도 합의된 기본값이 없다. 값 하나를 바꿀 때마다 같은 차트에서 신호가 생겼다 사라진다면, 나중에 어떤 성과가 나오더라도 그건 패턴의 성과인지 파라미터 선택의 성과인지 가를 수 없다.
그래서 이번에는 본 진입 규칙으로는 넣지 않기로 했다. 버리는 이유는 기록해 둔다. 패턴이 무의미해서가 아니라, 내가 지금 검증할 수 있는 형태로 정의가 고정되지 않아서다. 나중에 다시 판단할 수 있도록 남기는 조건은 두 가지다. 일봉 기준과 피벗 창을 먼저 고정한 뒤, 그 값을 바꾸지 않고 시뮬레이션에서 신호가 재현되는지 볼 것. 그리고 넣더라도 단독 진입이 아니라 추세 필터 같은 다른 조건의 보조 신호로 시험해 볼 것.
이 글은 투자 권유가 아니다.
약어 풀이
- ASTER (Aster) — 이번 편에 배정된 코인의 심볼.
- ATR (Average True Range) — 평균 실제 범위. 변동성 크기를 재는 지표.
- RSI (Relative Strength Index) — 상대강도지수. 기본 기간 14를 쓰는 모멘텀 지표.
- KST (Korea Standard Time) — 한국 표준시. UTC보다 아홉 시간 빠르다.
- UTC (Coordinated Universal Time) — 협정 세계시.