여섯 번째 회차다. 이번 배정은 코인 TRX(트론), 스크립트는 트레이딩뷰 내장 전략 목록의 “그리디 전략(Greedy Strategy)“이다. 지금까지 바입다운, 볼린저 밴드, 볼린저 밴드 방향성, 채널 브레이크아웃, 연속 상승/하락까지 트레이딩뷰가 기본으로 묶어 배포하는 전략 다섯 개를 다뤘고, 그리디 전략도 같은 묶음에 들어있는 여섯 번째 규칙이다.
먼저 밝혀둔다. 이번 편은 시세를 받아 성과를 검증한 글이 아니라 규칙 자체를 해부한 글이다. 승률을 적지 않은 이유도 그래서다. 트론 가격이 얼마였는지, 이 전략을 트론에 걸었으면 얼마를 벌었는지는 이 글의 관심사가 아니다. 애초에 재지 않았으니 말할 수 없다. 대신 규칙의 정의, 계산식, 그리고 그 계산식이 못 보는 지점을 파고든다.
그리디 전략이 재는 것
이름부터 짚고 가자. “그리디(Greedy)“라는 이름은 이 전략이 신고점 완성을 기다리지 않고 되돌림 구간에서 미리 진입을 노린다는 뜻에서 붙었다고 보는 게 맞다. 지난 회차에서 다룬 채널 브레이크아웃 전략은 정반대다. 그 전략은 최근 다섯 봉의 최고가를 실제로 뚫어야 롱 진입 신호가 난다. 신고점을 “확인한 다음” 올라타는 방식이다.
그리디 전략은 이 순서를 뒤집는다. 최근 length봉 구간의 최고가에서 ATR에 배수를 곱한 값만큼 아래로 내려간 자리를 롱 진입 스탑가로 잡는다. 신고점을 새로 뚫을 때가 아니라, 신고점을 찍은 뒤 일정폭 눌릴 때 진입한다. 숏도 대칭이다. 최근 구간의 최저가에서 ATR 배수만큼 위로 올라간 자리가 숏 진입 스탑가다. 저점을 찍은 뒤 일정폭 반등하면 숏에 들어간다.
수식으로 쓰면 이렇다.
upBound = highest(high, length) - mult_up × ATR(length)
dnBound = lowest(low, length) + mult_dn × ATR(length)
트레이딩뷰 내장 스크립트의 기본값은 length = 35, mult_up = 2.0, mult_dn = 2.0이다. 35봉이라는 구간 길이도, 2.0이라는 배수도 시세와 무관한 정의값이다. 그림 1은 이 구조를 모식도로 그린 것이다. 실제 가격이 아니라 손으로 지정한 상대값이며, 최고가·최저가 두 개의 점선과 그 안쪽으로 들어온 두 개의 실선(진입 스탑가) 배치를 보여준다.

계산은 어떻게 이뤄지는가
highest(high, length)와 lowest(low, length)는 단순하다. 지정한 구간에서 가장 높은 고가, 가장 낮은 저가를 그대로 가져온다. 후행성이 거의 없는 값이다. 문제는 그다음에 곱하는 ATR(length)다.
ATR은 평균 실제 범위(Average True Range)로, 한 봉의 변동폭을 “당일 고가-저가”, “당일 고가-전일 종가”, “당일 저가-전일 종가” 세 값 중 가장 큰 것으로 잡고, 그 값을 length봉 동안 평균 낸다. 트레이딩뷰 기본 ATR 계산은 단순 이동평균이 아니라 지수 이동평균 계열(RMA)을 쓰는데, 이 부분까지 그리디 전략이 그대로 물려받는다. 즉 최근 봉에 조금 더 가중치가 실린 변동성 평균이다.
이 ATR 값에 배수를 곱해 최고가·최저가에서 안쪽으로 당겨오는 게 핵심이다. 변동성이 커지면 밴드가 넓어져 진입 문턱이 높아지고, 변동성이 작아지면 밴드가 좁아져 문턱이 낮아진다. 고정폭이 아니라 변동성에 맞춰 늘었다 줄었다 하는 밴드라는 뜻이다. 그림 2는 표준 채널 브레이크아웃(신고점을 뚫어야 진입)과 그리디 전략(신고점 대비 눌리면 진입)을 나란히 놓고 진입 시점이 어떻게 다른지 비교한 모식도다. 왼쪽은 새 고점을 만드는 마지막 봉에서 진입 마커가 찍히고, 오른쪽은 고점을 찍은 뒤 되돌리는 구간에서 이미 진입 마커가 찍힌다. 두 규칙이 같은 가격 흐름을 완전히 다른 시점에 진입 신호로 읽는다는 게 이 그림의 요점이다.

mult_up과 mult_dn을 키우면 밴드가 최고가·최저가에서 더 멀리 안쪽으로 들어와 진입 문턱이 높아지고, 줄이면 문턱이 낮아져 자주 걸린다. 그림 4는 같은 가격 흐름에 mult 값만 다르게 적용했을 때 진입 트리거 위치가 어떻게 달라지는지 모식도로 계산해본 것이다. 배수가 작을수록 되돌림 몇 번만으로도 신호가 쏟아지고, 배수가 크면 웬만한 되돌림은 걸리지 않는다. 파라미터가 셋(length, mult_up, mult_dn)이나 있다는 점도 짚어야 한다. 파라미터가 없는 규칙이면 과최적화 걱정을 덜 수 있는데, 이 전략은 세 값을 마음대로 조정할 수 있는 만큼 과거 구간에 맞춰 끼워 맞출 여지도 그만큼 크다.

청산 규칙이 없다는 것의 의미
여기가 이 전략에서 가장 눈여겨봐야 할 지점이다. 그리디 전략에는 손절매도, 익절도, 별도의 청산 조건도 없다. 롱 스탑 주문과 숏 스탑 주문을 동시에 걸어두고, 둘 중 먼저 체결되는 쪽으로 포지션을 잡는다. 그리고 포지션을 쥔 채로 반대쪽 스탑 주문이 다시 체결되기를 기다린다. 반대쪽이 체결되면 그게 곧 청산이자 동시에 반대 방향 진입이다.
말로 풀면 이렇다. 한 번 신호를 받아 시장에 들어간 이상, 별도의 청산 신호가 없는 한 계속 포지션을 들고 간다. 대기(플랫) 상태로 돌아가는 경로 자체가 설계에 없다. 그림 3은 이 구조를 타임라인으로 그린 모식도다. 최초 진입 전에는 대기 구간이 있지만, 일단 롱이든 숏이든 진입한 뒤로는 반대 스탑이 체결될 때마다 즉시 반전할 뿐 플랫 구간이 다시 나타나지 않는다.

이게 왜 문제가 되는지 구체적으로 짚어보자. 손실을 제한하는 장치가 오직 “반대 밴드까지의 거리"뿐이다. 추세가 강하게 이어지면 롱 포지션은 가격이 계속 올라가는 동안은 이익이지만, 추세가 꺾여도 숏 스탑가에 닿기 전까지는 청산되지 않는다. 즉 밴드 폭이 그대로 최대 손실 폭에 가까운 역할을 겸한다. 스탑로스 개념이 진입 조건 안에 암묵적으로 녹아있을 뿐, 명시적인 리스크 관리 장치가 아니라는 뜻이다. 볼린저 밴드 방향성 전략처럼 최소한 방향 스위치라도 있는 것과 비교하면, 그리디 전략은 있는 그대로의 반전 구조를 별도 손질 없이 쓴다.
이 계산식이 못 보는 것
첫째, 스탑 주문 특성상 체결가가 스탑가와 다를 수 있다. 지정가 주문이 아니므로 급락·급등 구간에서는 계산된 진입가보다 더 불리한 가격에 체결될 여지가 있다. 계산식은 “얼마에 걸릴지"만 정의할 뿐 “얼마에 실제로 체결될지"는 정의하지 않는다.
둘째, 롱과 숏을 완전히 대칭으로 다룬다. 이 대칭성 자체가 현물 거래소에서는 성립하지 않는다. 현물에는 공매도가 없다. 숏 스탑 주문이 체결되는 시점을 그대로 진입 신호로 쓰려면 파생 상품 계좌가 있어야 하고, 순수 현물 봇이라면 숏 신호를 그대로 옮길 방법이 없다. 롱만 쓰는 반쪽짜리 구현이 되거나, 숏 신호를 롱 청산 신호로 바꿔 쓰는 재해석이 필요하다는 뜻이다.
셋째, ATR은 변동성의 “크기"만 잰다. 방향은 순전히 최고가·최저가의 위치로 결정된다. 그래서 변동성이 커도 방향성 없이 오르내리기만 하는 구간(레인지장)에서는 밴드가 넓어지기만 할 뿐 신호 품질이 좋아지는 건 아니다. 밴드 폭 조절과 신호 정확도는 별개 문제다.
넷째, 길이 파라미터가 35봉으로 고정돼 있다는 점도 타임프레임에 따라 다르게 작동한다. 일봉에 적용하면 약 한 달치 구간이고, 1시간봉에 적용하면 하루 반 남짓이다. 같은 숫자 35가 타임프레임마다 완전히 다른 시간 폭을 의미하는데, 규칙 자체는 이 차이를 구분하지 않는다.
코인 시장이 만드는 함정 하나
highest와 lowest는 봉 단위로 계산되므로, 일봉을 쓴다면 하루의 경계가 어디냐가 결과를 바꾼다. 코인 시장은 24시간 돌아가고 거래소마다 하루 경계를 정하는 기준이 다르다. 업비트는 KST 자정을 하루의 경계로 쓰고, 해외 상당수 거래소는 UTC 자정을 쓴다. 아홉 시간 차이다. 이 아홉 시간 사이에 가격이 크게 움직이면, 같은 트론 가격 흐름을 두고도 거래소에 따라 그날의 고가·저가가 다르게 집계되고, length봉 구간의 최고가·최저가 값 자체가 달라질 수 있다. 규칙은 똑같이 적용해도 어느 거래소의 봉을 가져다 쓰느냐에 따라 스탑가 위치가 갈린다는 뜻이다. 이건 규칙의 결함이 아니라 크립토 시장이 거래소마다 하루를 다르게 정의한다는, 규칙 바깥의 문제다.
트론이라는 무대
트론은 레이어1 블록체인이다. 앞서 다룬 솔라나도 레이어1이지만, 트론이 두드러지는 지점은 따로 있다. 스테이블코인 USDT를 트론 네트워크의 토큰 표준인 TRC-20 방식으로 전송하는 용도로 널리 쓰인다는 점이다. 이건 트론에 대해 비교적 확실하게 말할 수 있는 성격이다. 트론 창립자가 저스틴 선이라는 점도 널리 알려져 있다.
이 성격이 그리디 전략과 만나면 어떤 함의가 있을까. 레이어1 토큰의 가격 흐름 뒤에는 네트워크 사용량이라는, 캔들 차트만 봐서는 전혀 보이지 않는 축이 따로 있다. 스테이블코인 전송 수요가 늘거나 줄면 트론 네트워크의 실사용 지표가 움직이지만, 그리디 전략은 오직 최근 35봉의 고가·저가·변동성만 본다. 네트워크 사용량이 가격에 어떻게 반영되는지, 반영되기까지 시차가 얼마나 되는지는 이 규칙의 계산식 어디에도 들어있지 않다. 반대로 말하면, 규칙이 못 보는 부분을 사람이 따로 채워 넣어야 한다는 뜻이기도 하다. 다만 트론의 최근 사건이나 정확한 발행량, 특정 시점의 상장 여부처럼 확신이 서지 않는 사실은 여기서 다루지 않는다.
내 봇에 넣을 것인가
넣지 않기로 했다. 이유는 명확하다. 청산 규칙이 없는 상시 반전 구조는 현물 자동매매 봇에서 리스크를 관리하는 방식과 정면으로 부딪힌다. 내 봇은 포지션이 없는 상태(플랫)를 기본값으로 두고, 진입 조건과 청산 조건을 따로 검증하는 걸 원칙으로 삼는다. 그리디 전략처럼 “반대 신호가 곧 청산"인 구조를 그대로 옮기면, 진입 판단이 잘못됐을 때 손절할 방법이 스탑 밴드 폭 하나에만 의존하게 된다. 게다가 숏 절반은 현물 봇에서 애초에 쓸 수 없는 로직이라, 그대로 가져오면 반쪽짜리 전략이 된다.
다만 아이디어 자체는 남겨둔다. “신고점 대비 변동성만큼 눌리면 진입"이라는 발상은 눌림목 매수 로직으로 재구성할 여지가 있다. 롱 스탑 로직만 떼어내고, 청산 조건을 별도의 손절·익절 규칙으로 새로 정의한다면 검토해볼 수 있는 재료다. 버린 이유를 이렇게 남겨두는 건, 나중에 판단이 달라질 여지를 지워버리지 않기 위해서다.
이번 편은 시세를 검증한 글이 아니라 규칙의 구조를 해부한 글이다. 이 글에 담긴 어떤 내용도 투자 권유가 아니며, 실제 매매 판단은 각자의 책임이다.
약어 풀이
- TRX (Tron) — 트론 네트워크의 기본 토큰.
- ATR (Average True Range) — 평균 실제 범위. 한 봉의 변동폭을 평균 낸, 변동성 크기를 재는 지표.
- USDT (Tether) — 달러에 가치를 연동한 스테이블코인.
- TRC (Tron Request for Comment) — 트론 네트워크의 토큰 표준 규격. TRC-20은 그중 대체가능 토큰 표준이다.
- KST (Korea Standard Time) — 한국 표준시.
- UTC (Coordinated Universal Time) — 협정 세계시.
- RMA (Running Moving Average) — 와일더 방식의 지수 이동평균. 트레이딩뷰 기본 ATR 계산에 쓰인다.