열 달 동안 손으로 복기해 온 매매 기준을 차트가 대신 찾아 주면 좋겠다는 요청이었습니다.
RSI가 과매도나 과매수 구간에 있고, 망치형이나 유성형 캔들이 나오고, 거래량이 직전 봉보다 늘어난 봉에 화살표를 찍고 알림을 보내는 지표입니다.
조건은 단순한데, 흔히 쓰는 기준으로 만든 첫 버전은 고객이 직접 짚은 자리를 놓쳤습니다.
그래서 왜 놓쳤는지 찾는 도구를 지표 안에 넣고 기준을 맞췄습니다.
플랫폼
TradingView Pine Script v6 (indicator)
역할
조건이 겹친 봉 표시와 알림 주문 기능 없음
대상
종목, 시간봉 제한 없음 (차트에 올린 그대로)
제작 기간
착수 후 5일 v1.0부터 v1.2까지
코스피 지수 일봉에 올린 모습. 빨강과 초록은 세 조건이 모두 겹친 봉, 청록과 주황은 RSI를 뺀 보조 표시입니다. 우측 위는 현재 봉의 조건 상태 패널. 지표 로직을 파이썬으로 옮겨 실제 시세 데이터 위에 그린 재현 화면이고, 아래 RSI 칸은 이해를 돕기 위해 함께 그렸습니다
01표시 규칙
구분
봉 아래 표시 (▲)
봉 위 표시 (▼)
RSI(14)
과매도 기준 이하
과매수 기준 이상
캔들 모양
망치형(긴 아래꼬리), 또는 위꼬리형
유성형, 역망치형(긴 위꼬리)
거래량
직전 봉보다 증가
직전 봉보다 증가
보조 표시 (v1.2)
RSI 없이 망치형과 평균을 넘는 거래량
RSI 없이 위꼬리형과 평균을 넘는 거래량
알림
통합 알림 하나와 개별 알림 4종, 기본은 봉 마감 시 1회
화살표는 정해 둔 세 조건이 한 봉에 겹쳤다는 표시이고, 사라거나 팔라는 뜻은 없습니다.
지지선과 저항선은 고객이 직접 보고 손절도 직접 겁니다. 상담 때 그렇게 정했습니다.
상담 중간에 돌파 표시를 추가하자는 얘기가 나와 조건까지 정리했는데, 고객이 차트를 다시 돌려 본 뒤 "변수가 너무 많아 직접 보는 게 낫겠다"며 스스로 뺐습니다.
규칙으로 적을 수 없는 판단은 지표에 넣지 않는 편이 낫습니다.
캔들 모양은 숫자 세 개로 정합니다. 몸통이 캔들 전체 길이에서 차지하는 비율, 긴 꼬리가 몸통의 몇 배인지, 반대쪽 꼬리를 얼마까지 봐줄지입니다.
유성형과 역망치형은 둘 다 작은 몸통에 긴 위꼬리라 생김새가 같습니다. 고점에서 나오면 유성형, 저점에서 나오면 역망치형이라고 부를 뿐이어서 판정은 하나로 합쳤습니다.
02v1.0: 흔히 쓰는 기준으로는 고객의 자리가 안 잡혔다
첫 버전은 널리 쓰는 기준에서 출발했습니다. 몸통은 전체의 3분의 1 이하, 긴 꼬리는 몸통의 2배 이상, 반대쪽 꼬리는 거의 없을 것, 아래 표시의 망치형은 양봉일 것.
상담에서 고객이 한 말도 "망치형 양봉"이었으니 명세와도 맞습니다.
그런데 고객이 자기 자리라고 짚어 준 봉 몇 개에 화살표가 뜨지 않았습니다.
이럴 때 차트를 눈으로 비교하면서 기준을 이리저리 돌리면 끝이 없습니다. 어느 조건이 얼마나 모자랐는지를 봉마다 숫자로 봐야 합니다.
v1.1: 진단 라벨
세 조건 중 둘만 맞아서 표시가 안 된 봉에 회색 라벨을 붙이고, 빠진 조건 하나를 적게 했습니다.
라벨에 마우스를 올리면 그 봉의 RSI, 몸통 비율, 위아래 꼬리 배수, 거래량이 현재 기준값과 나란히 나옵니다.
화살표가 없는 자리에서 어떤 숫자가 기준에 못 미쳤는지 바로 확인하는 용도입니다. 기준을 다 맞춘 뒤에는 끄고 씁니다.
진단 모드. 가리킨 봉은 RSI와 거래량은 맞았지만 아래꼬리가 긴 모양이라 위쪽 표시의 캔들 조건에서 빠졌다는 것이 수치로 보입니다 (실제 시세 데이터로 그린 재현 화면)
진단 라벨을 켜고 고객이 짚은 기간의 실제 시세와 대조하니 기본값 두 개가 맞지 않았습니다.
하나는 반대쪽 꼬리 허용 폭입니다. 고객이 짚은 망치형들은 위꼬리가 캔들 길이의 18~24%였는데, 표준값 15%에서 이 조건 하나로 탈락하고 있었습니다. 허용 폭을 25%로 넓혔습니다. 넓힌 뒤 표시 횟수가 지나치게 늘지 않는지도 같은 기간에서 세어 봤습니다.
다른 하나는 망치형을 양봉으로 한정한 것입니다. 고객이 짚은 급락 바닥의 망치형은 음봉이었습니다. 급하게 빠지다 꼬리를 달고 마감한 봉은 종가가 시가 아래인 경우가 흔합니다. 기본값을 색 무관으로 바꾸고, 상담 때 말씀대로 양봉만 보고 싶으면 켜는 옵션을 남겼습니다.
바뀐 두 기본값은 v1.2에 실었습니다. v1.1에서는 마커도 바꿨습니다. 트레이딩뷰 기본 화살표가 가늘어서 잘 안 보인다는 의견이 있어서, 속이 찬 삼각형을 기본으로 하고 가는 화살표와 말풍선 라벨도 고를 수 있게 했습니다.
03v1.2: RSI 없는 보조 표시, 그리고 너무 자주 뜨는 문제
기준을 맞추는 사이에 고객이 요청을 하나 더 했습니다. 추세가 이어지는 중에 거래량이 터지면서 같은 모양의 캔들이 나오는 자리도 보고 싶다는 것이었습니다.
그런 자리는 RSI가 30과 70 사이에 있어서 원래 규칙으로는 잡히지 않습니다.
그래서 RSI 조건을 뺀 보조 표시를 따로 두고 청록과 주황으로 색을 다르게 했습니다.
보조 표시에서는 캔들 모양이 방향을 정합니다. 원래 규칙에서는 RSI가 위아래를 갈라 주니 위꼬리형 캔들을 아래 표시에도 쓸 수 있었습니다. RSI가 없으면 같은 캔들 하나에 위아래 삼각형이 동시에 찍힙니다. 그래서 아래는 망치형만, 위는 위꼬리형만 보게 했고, 위꼬리형을 아래에도 넣는 옵션은 꺼 두었습니다.
한 봉에는 표시가 하나만 찍힙니다. 세 조건이 다 맞은 봉에서는 보조 표시를 내지 않고, 진단 라벨도 표시가 찍힌 봉에는 붙지 않습니다.
RSI라는 필터가 빠지니 낮은 시간봉에서 표시가 줄줄이 붙어 나왔습니다. 그래서 거래량 조건을 직전 20봉 평균의 일정 배수 이상으로 바꾸고, 같은 방향 표시가 한 번 나오면 몇 봉 동안 다시 내지 않게 했습니다. 4시간봉에서 한 달에 열한 번쯤 뜨던 것이 절반으로, 15분봉에서는 3분의 1로 줄었습니다.
배수는 1.2배로 정했습니다. 1.5배로 올리면 더 조용해지지만 고객이 짚은 자리 하나가 사라졌습니다. 평균의 1.4배쯤이던 봉입니다. 얼마나 줄었는지와 남아야 할 자리가 남았는지를 같이 보고 정한 값입니다.
이렇게 걸러져서 보조 표시가 안 나온 봉도 이유를 볼 수 있어야 합니다. 진단 툴팁과 상태 패널에 줄을 하나 추가해서 평균 대비 거래량이 몇 배였는지, 대기가 몇 봉 남았는지 나오게 했습니다.
04Pine에서 챙긴 것들
트레이딩뷰의 라벨은 차트 하나에 500개까지만 유지되고 오래된 것부터 지워집니다. 조건이 겹친 표시는 과거 전체에 남아야 하므로 도형으로 찍고, 글자와 툴팁이 필요한 진단에만 라벨을 썼습니다.
도형의 모양과 크기는 원래 설정에서 바꿀 수 없게 돼 있습니다. 모양 3종과 크기 3종을 고를 수 있게 하려고 조합마다 한 줄씩, 18줄을 미리 깔아 두고 켜고 끄는 방식으로 만들었습니다.
진행 중인 봉에서는 RSI와 꼬리 길이가 계속 바뀝니다. 기본값은 봉이 마감된 뒤에 표시하는 것이어서 한 번 뜬 화살표는 사라지지 않습니다. 미리 보고 싶으면 켜는 옵션이 있고, 그때는 사라질 수 있다고 설명에 적었습니다.
다시 내지 않는 대기 기간은 확정된 표시만 셉니다. 진행 중인 봉에서 조건이 잠깐 맞았다 풀려도 대기가 시작되지 않습니다.
과매도 기준을 과매수 기준 이상으로 입력하면 위꼬리형 캔들 하나가 위아래 조건을 동시에 만족하게 됩니다. 그대로 이상하게 돌아가게 두지 않고 오류 메시지로 바로 알려 줍니다.
일부 지수처럼 거래량 데이터가 없는 차트에서는 거래량 조건 때문에 표시가 하나도 나오지 않습니다. 이 조건을 끄는 옵션을 두고 설명서의 제약사항에 적었습니다.
05납품물
Pine v6 소스 1개. RSI, 캔들 판정 기준, 보조 표시, 마커, 진단 모드, 알림 빈도를 모두 설정에서 바꿀 수 있습니다.
한글 사용설명서(docx). 설치, 알림 설정 두 가지 방법, 입력값 표, 캔들 판정 기준, 제약사항, 그리고 "신호가 안 떠요"와 "화살표가 사라졌어요" 같은 자주 묻는 질문을 담았습니다.
설명서에는 이 지표가 하는 것과 하지 않는 것을 따로 적었습니다. 지지와 저항 자동 인식, 손절선, 돌파 표시는 상담에서 빼기로 한 범위라는 점을 문서로 남겼습니다.
TradingView Pine Script v6indicator(overlay=true)plotshape, label.new, tablealert(), alertcondition()
06자주 묻는 것
제가 보던 캔들과 지표가 잡는 캔들이 다르면요?
진단 라벨을 켜고 본인 자리로 가 보시면 됩니다. 어느 숫자가 기준에 못 미쳤는지 나오니 그 기준만 풀면 됩니다. 이 건도 그렇게 두 값을 고쳤습니다.
알림은 어떻게 받나요?
트레이딩뷰 알림 생성 창에서 이 지표를 고르면 됩니다. 알림 하나로 전부 받는 방식과 종류별로 따로 거는 방식을 둘 다 넣었습니다. 알림 개수는 트레이딩뷰 요금제에 따라 제한이 있습니다.
표시가 뜨면 자동으로 주문까지 낼 수 있나요?
이 건은 표시와 알림까지입니다. 알림 웹훅을 증권사 API로 받아 주문을 내는 구조는 따로 만들 수 있고,
그렇게 만든 사례가 주도주 스크리닝과 트레이딩뷰 웹훅 자동매매입니다.
※ 본 사례는 고객 요구사항을 익명 처리하여 재구성한 것이며, 차트 화면은 실제 시세 데이터로 지표 로직을 재현한 것입니다. 화면의 표시는 정해 둔 조건이 겹친 봉을 보여 줄 뿐 매수나 매도를 권하는 것이 아닙니다.
알고랩은 매매 자동화 프로그램과 지표 제작 서비스이며, 종목 추천, 투자 자문, 수익 보장 서비스가 아닙니다. 과거 데이터로 맞춘 기준이 미래에도 유효하다는 보장은 없습니다.
눈으로 찾던 캔들을 지표로 만들어 드립니다
어떤 캔들이 어떤 상황에서 나올 때를 보시는지만 말씀해 주세요.
모양을 숫자로 옮기고 실제 차트와 맞춰 보는 일은 저희가 합니다.