봉 마감 확정 — 진행 중인 캔들로 판단하면 신호가 사라지는 이유
골든크로스가 떠서 들어갔는데, 30분 뒤 같은 차트를 보니 골든크로스가 없습니다. 지표가 고장 난 것도, 차트가 조작된 것도 아닙니다. 아직 끝나지 않은 캔들을 보고 판단했기 때문입니다. 진행 중인 봉의 종가는 확정된 숫자가 아니라 지금 이 순간의 가격일 뿐입니다.
진행 중인 봉은 아직 캔들이 아니다
캔들 하나는 시가·고가·저가·종가 네 개의 숫자로 만들어집니다. 그런데 진행 중인 봉에서는 이 중 세 개가 아직 확정되지 않았습니다.
14:45 봉 시작 — 시가 확정
14:45~15:00 가격이 오르내림
· 고가 = 계속 갱신 가능
· 저가 = 계속 갱신 가능
· 종가 = 지금 가격 (매초 바뀜)
15:00 봉 마감 — 네 값 모두 확정
─────────────
14:52에 내가 보는 종가는
종가가 아니라 현재가다
대부분의 지표는 종가로 계산된다
→ 종가가 흔들리면 지표도 흔들린다
여기서 문제가 시작됩니다. 이동평균·RSI·MACD 같은 지표는 거의 전부 종가를 입력으로 씁니다. 그 종가가 15분 내내 움직이는 값이라면, 지표도 15분 내내 움직입니다. 신호가 떴다가 사라지는 것은 버그가 아니라 정상 동작입니다.
숫자로 보면 신호가 왜 뒤집히는지 바로 보인다
5봉 이동평균 하나만 놓고 계산해 보겠습니다. "가격이 이동평균 위면 매수"라는 단순한 규칙을 쓴다고 하죠.
이미 마감된 봉들의 종가
98 · 99 · 100 · 101 · 102
→ 직전 확정 MA5 = 500 ÷ 5 = 100.0
지금 계산되는 MA5 (진행봉 포함)
99 + 100 + 101 + 102 + 진행봉 종가
= (402 + X) ÷ 5
─────────────
X = 103 → MA5 = 101.0
가격 103 > MA 101.0 → 신호 ON
X = 97 → MA5 = 99.8
가격 97 < MA 99.8 → 신호 OFF
같은 15분 안에서 X가 오르내리면
신호는 몇 번이고 뒤집힌다
가격이 103과 97 사이를 오가는 동안 이동평균 자체도 101.0과 99.8 사이를 따라 움직입니다. 기준선이 같이 움직이니 교차는 더 자주 일어납니다. 이게 "분명 봤는데 없어진" 신호의 정체입니다. 지표 계산식 자체가 과거를 다시 그리는 별개 문제는 지표 리페인팅(Repainting)에 따로 정리돼 있는데, 지금 다루는 건 그것과 달리 지표는 정상인데 입력값이 아직 안 끝난 경우입니다.
깜빡이는 신호를 그대로 따라가면 수수료가 나간다
신호가 뒤집힐 때마다 손으로 따라가면 어떻게 되는지 계산해 봅니다.
BTC $80,000 · 수량 0.1 (명목 $8,000)
왕복 수수료 0.10%
15분봉 하나 안에서
신호 ON → 진입
신호 OFF → 청산
… 이걸 3세트 반복
1왕복 비용 = 8,000 × 0.001 = $8
3왕복 = $24
─────────────
봉이 마감되고 남는 판단은 단 하나
→ $24는 전부 버린 돈
하루 4회 이런 구간 → $96
한 달 20일 → $1,920
여기에 체결 밀림까지 더해지면 실제 지출은 더 큽니다. 왕복 비용을 어떻게 세는지는 왕복 거래비용에, 누른 순간과 체결 순간의 차이가 만드는 추가 비용은 주문 지연(레이턴시)에 있습니다. 두 가지가 겹치면 위 $24는 낙관적인 숫자입니다.
기다리는 쪽에도 비용이 있다
그렇다고 마감 대기가 공짜는 아닙니다. 기다리는 동안 가격이 이미 움직여 있습니다.
4시간봉 · 마감 2시간 전에 조건 충족
그 시점 가격 $80,000
마감 시점 종가 $80,240
차이 = 240 ÷ 80,000 = 0.30%
수량 0.1 → 240 × 0.1 = $24
─────────────
깜빡임 따라가기 = $24 (3왕복 수수료)
마감 기다리기 = $24 (진입가 밀림)
둘 다 비용이다
차이는 확정성에 있다
깜빡임 비용은 판단 하나당 여러 번 반복해서 나가고, 대기 비용은 판단 하나당 한 번만 나갑니다. 그리고 대기 비용을 치른 진입은 최소한 확정된 숫자를 근거로 합니다. 가짜 돌파에 끌려다니는 문제는 페이크아웃 쪽과도 직접 이어집니다.
다만 위 두 숫자가 같게 나온 것은 설명을 위해 맞춘 것입니다. 실제로 어느 쪽이 큰지는 종목·타임프레임·변동성에 따라 다르므로, 본인 거래 기록으로 재봐야 합니다.
타임프레임이 커질수록 대기 시간도 커진다
마감을 기다린다는 건 최악의 경우 그 봉의 길이만큼 기다린다는 뜻입니다.
1분봉 → 최대 1분
5분봉 → 최대 5분
15분봉 → 최대 15분
1시간봉 → 최대 1시간
4시간봉 → 최대 4시간
일봉 → 최대 24시간
─────────────
절충안
· 방향은 상위 봉에서 (4시간)
· 실행은 하위 봉 마감으로 (15분)
→ 최대 대기가 4시간에서 15분으로
상위 봉 조건은 진행 중이어도 참고 가능
진입 방아쇠만 확정된 봉으로 당긴다
이 구조는 멀티 타임프레임 분석에서 쓰는 방식과 같습니다. 큰 그림은 느린 봉에서 보고, 방아쇠는 빠른 봉에서 당기되 그 빠른 봉도 마감된 것을 씁니다. 일봉 신호를 일봉 마감까지 기다리면 하루가 통째로 지나가므로, 대부분 이 절충이 현실적입니다.
마감 기준 시각이 어긋나면 마감 자체가 달라진다
"일봉 마감 후 진입"이라고 정해도, 어느 시각을 하루의 끝으로 보느냐에 따라 완전히 다른 캔들이 됩니다.
UTC 기준 → 하루 끝 = KST 09:00
KST 기준 → 하루 끝 = KST 00:00
두 기준의 차이 = 9시간
─────────────
같은 날 같은 종목인데
· 종가가 다르다
· 고가·저가 범위가 다르다
· 따라서 지표값도 다르다
차트 A에서 뜬 신호가
차트 B에서는 안 뜰 수 있다
거래소 앱과 차트 사이트의 설정이 다르면 여기서 어긋납니다. 상세한 내용과 확인 방법은 차트 시간대 설정(UTC vs 한국시간)에 정리돼 있습니다. 규칙을 적기 전에 기준 시각부터 하나로 고정하는 편이 낫습니다.
봇에서는 마지막 캔들을 잘라내야 한다
자동매매에서 이 문제는 더 조용히 발생합니다. 사람은 신호가 사라진 걸 눈으로 보지만 봇은 그냥 주문을 냅니다.
거래소에서 캔들 100개를 받으면
배열의 마지막 원소는 대개 진행 중
계산 규칙
· 지표 계산 = 마지막 하나를 뺀 99개
· 현재가 확인용으로만 마지막 사용
마감 여부 판정
마지막 캔들 시각 + 주기 ≤ 현재 시각
→ 마감됨
예: 15분봉
마지막 캔들 14:45 · 지금 14:52
14:45 + 15분 = 15:00 > 14:52
→ 아직 진행 중 (쓰면 안 됨)
이걸 빼먹으면 봇이 같은 봉 안에서 진입과 청산을 반복합니다. 로그에는 "전략대로 실행"이라고 찍히지만 실제로는 수수료만 나갑니다. 더 나쁜 경우는 백테스트에서 이 문제가 안 보이는 것입니다. 과거 데이터는 이미 전부 마감된 봉이라 백테스트는 늘 확정 종가로 계산되고, 실전만 진행 중 종가로 계산됩니다. 백테스트와 실전이 갈라지는 이런 함정은 백테스트 쪽에 더 있습니다.
실무 규칙
정리하면 규칙 자체는 단순합니다.
· 판단은 마감된 봉으로만 한다
· 판단이 확정되면 지체 없이 실행한다
(기다리는 건 마감까지지, 그 뒤가 아니다)
· 알림은 "마감 후 조건"으로 설정한다
· 마감 직전에는 미리 수량·가격을 입력해 둔다
→ 확정되면 누르기만
─────────────
타임프레임 판단 기준
목표 폭 1.5% · 대기 비용 0.30%
→ 0.30 ÷ 1.50 = 20%
대기 비용이 목표 폭의 20%를 넘으면
그 타임프레임은 내 전략에 너무 크다
→ 방아쇠를 하위 봉으로 내린다
알림을 걸 때 마감 조건을 켜두면 깜빡임 자체가 화면에 안 뜹니다. 설정 방법은 트레이딩뷰 알림 설정에 있습니다. 신호를 눈으로 계속 지켜보는 것보다 마감 알림 하나로 바꾸는 편이 실수도 줄고 시간도 아낍니다.
정리
② 지표는 대부분 종가로 계산된다 — 종가가 흔들리면 지표도 흔들린다
③ 신호가 떴다 사라지는 건 버그가 아니라 정상 동작이다
④ 이동평균은 기준선까지 같이 움직여서 교차가 더 자주 일어난다
⑤ 깜빡임을 따라가면 한 봉 안에서 수수료만 여러 번 나간다
⑥ 마감 대기에도 비용이 있다 — 진입가가 밀린다
⑦ 차이는 크기가 아니라 확정성이다 (대기 비용은 1회, 깜빡임은 반복)
⑧ 방향은 상위 봉, 방아쇠는 하위 봉 마감 — 대기 시간을 줄이는 절충
⑨ 마감 기준 시각이 다르면 같은 일봉도 다른 캔들이 된다
⑩ 봇은 배열의 마지막 캔들을 잘라내고 계산한다
한 줄로 줄이면 이렇습니다. 끝나지 않은 숫자로 결정을 내리지 않습니다. 화면에 보이는 신호가 진짜인지 아닌지는 그 봉이 닫혀봐야 알 수 있고, 닫히기 전에 내린 판단은 판단이 아니라 추측입니다.
주의
본문의 가격, 이동평균 값, 수수료율, 손익 금액, 대기 시간은 구조를 설명하기 위한 가정 예시이며 특정 거래소나 종목의 실제 측정값이 아닙니다. 어느 방식이 유리한지는 종목·타임프레임·변동성·수수료 조건에 따라 달라지므로 본인의 거래 기록으로 직접 확인해야 합니다. 레버리지 거래는 원금 전액을 잃을 수 있으며, 투자 판단과 그 결과는 본인 책임입니다.
NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.
무료 채팅방 입장 →📈 OKX 신규 가입 시 거래 수수료 할인
OKX 수수료 할인 가입 →