6월 실전이 시작됐다.
BTC 봇은 직전에 업그레이드를 마쳤다.
타임프레임을 4시간봉에서 8시간봉으로 전환하고, 익절 목표도 7%에서 19%로 상향했다.
더 큰 파동을 포착하는 전략이다.
8시간봉은 하루에 3개 캔들밖에 생성되지 않는다.
그만큼 진입 신호가 적고, 한 번 포지션을 잡으면 크게 수익을 노리는 구조다.
기대가 컸다.
근데 BTC 봇이 유독 조용했다.
6월 한 달 동안 거래가 2건밖에 발생하지 않았다.
다른 봇들과는 전혀 달랐다.
ONDO 봇 3개는 한 달 동안 합산 100건이 넘는 거래를 기록했다.
XRP 봇도 21건이었다.
그 사이에 BTC만 딱 2건.
8시간봉이라 진입 신호 자체가 드문 거라고 판단했다.
타임프레임이 길수록 신호가 줄어드는 건 당연한 특성이다.
오히려 신중하게 진입하는 전략이라고 해석했다.
별다른 의심 없이 넘겼다.
그런데 6/30에 로그를 점검하다가 이상한 항목을 발견했다.
TP/SL 주문이 수량 0으로 제출되고 있었다.
TP/SL이란
처음 접하는 분을 위해 간략히 설명한다.
TP는 Take Profit, 익절 주문이다.
SL은 Stop Loss, 손절 주문이다.
포지션 진입과 동시에 "이 가격에서 익절, 이 가격에서 손절"을 미리 설정해두는 방식이다.
예를 들어 BTC를 $100,000에 롱 포지션으로 진입하면,
TP는 $119,000 (익절 목표 +19%), SL은 $95,000 (손절 기준 -5%)로 설정한다.
가격이 $119,000에 도달하면 자동으로 익절 청산, $95,000에 도달하면 자동으로 손절 청산된다.
운영자가 화면 앞에 없어도 봇이 알아서 처리하는 구조다.
자동매매의 핵심 기능이다.
TP/SL 주문이 수량 0으로 제출됐다는 것은, 실질적으로 아무 주문도 걸리지 않은 상태를 의미한다.
거래소는 수량이 0인 주문을 유효하지 않은 것으로 처리한다.
시스템상으로는 주문이 전송된 것처럼 보이지만, 실제로는 아무 기능도 하지 않는다.
유령 주문이다.
한 달 동안 몰랐다
포지션을 잡아도 손절선이 없으니 가격이 아무리 빠져도 손절이 되지 않는다.
익절선이 없으니 목표 수익에 도달해도 익절이 되지 않는다.
봇이 반대 신호를 감지할 때만 청산이 실행됐다.
한 달 내내 BTC 봇이 정상 가동 중이라고 믿었다.
정작 핵심 기능인 손절과 익절이 전혀 작동하지 않는 상태였는데.
나머지 봇들이 활발하게 거래를 이어가고 있었으니 더욱 눈치채기 어려웠다.
BTC만 거래가 적은 건 타임프레임이 긴 전략 탓이라고 해석해버렸다.
로그에는 진입 기록과 청산 기록이 정상적으로 남아있었다.
이상 징후를 전혀 감지하지 못했다.
6월 BTC 봇 결과는 +$0.68이다.
2건 거래, 승률 50%.
손절도 익절도 없이 반대 신호에만 의존한 결과치고는 선방했다.
솔직히 운이 따랐다고 봐야 한다.
만약 BTC가 급락했다면 손절선이 없으니 손실이 계속 누적됐을 것이다.
레버리지가 설정된 상태에서 손절 없이 버티면 결국 강제 청산으로 이어진다.
버그 원인과 수정
6/30에 로그 전체를 추출해서 AI에게 분석을 요청했다.
어떤 항목이 비정상인지, 수량이 왜 0으로 산출되는지 확인을 부탁했다.
AI가 수량 계산 로직을 분석한 결과를 제시했다.
봇은 포지션 진입 시 계좌 잔고를 조회해서 주문 수량을 계산한다.
이 계산 과정에서 특정 조건이 충족될 때 수량이 0으로 산출되는 케이스가 존재했다.
그 값이 그대로 TP/SL 주문에 적용되고 있었던 것이다.
원인은 잔고 대비 레버리지 비율을 계산하는 과정에서 발생한 소수점 처리 오류였다.
AI에게 수정 코드를 요청해 적용한 뒤, 6/30에 새 버전으로 교체했다.
교체 후 테스트에서 진입과 동시에 TP/SL이 정상적으로 설정되는 것을 확인했다.
이 버그가 무서운 이유
겉으로는 봇이 완전히 정상적으로 가동되는 것처럼 보인다.
진입은 된다.
청산도 된다.
로그도 정상적으로 누적된다.
오류 메시지도 출력되지 않는다.
봇이 중단되지도 않는다.
소액이라도 수익이 발생하고 있으면 더욱 의심하지 않게 된다.
이게 겉으로 드러나지 않는 버그의 특성이다.
눈에 보이는 이상 징후가 없으니 발견하기가 어렵다.
직접 로그에서 TP/SL 주문의 수량 값을 확인하지 않으면 알아채기가 불가능하다.
만약 6월에 BTC가 10~20% 급락했다면 어떻게 됐을까.
손절선이 없으니 봇은 손실이 누적되는 상황에서도 포지션을 그대로 홀딩했을 것이다.
레버리지 2배 환경에서 BTC가 50% 하락하면 강제 청산이다.
실제로는 BTC가 크게 움직이지 않아 피해가 발생하지 않았다.
운이 따랐다.
직접 구축한 봇의 숙명이다.
플랫폼이 대신 점검해주지 않는다.
내가 만들었으니 내가 검증해야 한다.
앞으로 생긴 습관
이 경험 이후로 봇 점검 루틴이 생겼다.
봇이 포지션에 진입하면 바이낸스 앱을 직접 열어서 TP/SL 주문이 정상적으로 등록됐는지 확인한다.
주문 수량이 올바르게 반영됐는지도 점검한다.
한 번 경험하고 나서야 기본적인 확인을 생략하고 있었다는 사실을 깨달았다.
봇을 신뢰하되, 검증은 직접 한다.
자동화는 편의를 제공하지만 점검까지 대신해주지는 않는다.
한 달이 걸렸고, 이 버그 하나는 잡았다.
아직 모르는 게 더 많다는 건 안다.
봇을 운영하면서 하나씩 배워가고 있다.
'바이낸스 선물 자동매매' 카테고리의 다른 글
| 바이낸스 봇 청산 실패 -2022 오류, 고쳤는데 다음날 또 터졌다 (0) | 2026.07.10 |
|---|---|
| 바이낸스 선물 봇 OCO 오류, 진입하자마자 손절 익절이 안 걸리는 이유 (0) | 2026.07.09 |
| 바이낸스 자동매매 3Commas vs 직접 만든 봇, 뭐가 다른가 (0) | 2026.07.08 |
| 바이낸스 자동매매 6월 실전 결과, 봇 5개 중 4개가 손실난 이유 (0) | 2026.07.06 |
| 봇 오류 로그 읽는 법, 자주 나오는 오류 메시지 의미 정리 (0) | 2026.07.02 |