바이낸스 선물 자동매매

바이낸스 TP/SL 취소 오류, Algo 주문 API 따로 있었다

creator88837 2026. 5. 27. 09:00

 

바이낸스 선물 자동매매 봇에서 TP/SL 주문 취소가 안 되는 문제가 생겼다.
익절이 됐는데도 손절 주문이 그대로 남았고, 봇이 다음 포지션을 잡을 때마다 충돌이 생겼다.
1달이 넘도록 원인을 못 찾았다. 이 글에서는 문제의 원인과 해결 방법을 정리한다.

 

TP/SL이 뭔가 


TP는 Take Profit, 익절 주문이다. 목표 가격에 도달하면 자동으로 수익 실현하는 주문.
SL은 Stop Loss, 손절 주문이다. 손실이 일정 수준을 넘으면 자동으로 포지션을 닫는 주문.

자동매매에서 이 두 가지는 한 세트다.
진입하면 TP와 SL을 동시에 걸어두고, 둘 중 하나가 먼저 체결되면 포지션이 청산된다.
그러면 나머지 하나는 자동으로 취소돼야 한다.

 

문제 발생 


익절이 됐는데 손절 주문이 그대로 남아있었다.
손절이 됐는데 익절 주문이 그대로 남아있었다.
취소가 안 됐다.

이게 왜 문제냐면.
남은 주문이 있는 상태에서 봇이 다음 신호를 잡아서 새 포지션에 진입한다.
그러면 이전에 남은 TP/SL 주문이 새 포지션에 걸린다.
의도하지 않은 청산이 발생한다.

폰을 꺼내서 직접 손으로 하나하나 취소했다. 매일. 퇴근하고 집에 오면.
정말 귀찮았다.

 

1달 넘게 해결이 안 됐다 


매일 퇴근 후 AI랑 주문 취소 로직을 수정했다.
수정하고, 파일 다운로드하고, VPS에 업로드하고, 봇 교체하고.
그걸 반복했다.

폴더가 뒤죽박죽이었다.
1봇가, 1봇나, 1봇1, 1봇5. 2봇, 3봇, 4봇, 5봇.
어떤 게 최신 버전인지도 헷갈렸다.

코드를 수정해도 여전히 TP/SL이 남았다.
왜 해결이 안 되는 건지 원인조차 몰랐다.
AI한테 계속 물어봐도 다른 방식으로 수정만 했지 근본 원인을 찾지 못했다.

 

AI가 웹검색으로 원인을 찾았다 


한 달이 넘게 지났을 때쯤 AI가 직접 웹검색을 했다.
그리고 나서야 원인을 찾았다.

바이낸스가 TP/SL 주문 처리 방식을 바꿨다.
기존에는 일반 주문으로 처리됐는데, 어느 순간부터 Algo 주문으로 바뀐 것이다.

Algo 주문은 일반 주문과 별도로 관리된다.
일반 주문 취소 API를 써도 Algo 주문은 취소가 안 된다.
그래서 TP/SL이 계속 남아있었던 것이다.

원인이 바이낸스 정책 변경이었으니 코드를 아무리 수정해도 해결이 안 됐던 게 당연했다.

 

일반 주문과 Algo 주문의 차이 


바이낸스 선물 주문에는 두 종류가 있다.

일반 주문: 지정가, 시장가 같은 일반적인 매매 주문. 취소 API도 하나다.
Algo 주문: TP/SL처럼 알고리즘 기반으로 걸리는 주문. 취소 API가 따로 분리돼 있다.

바이낸스 공식 문서에도 이 두 가지가 완전히 별도로 나뉘어져 있다.
일반 주문 취소 API를 아무리 정확하게 짜도 Algo 주문은 건드리지 못한다.

이걸 모른 채로 1달을 삽질했다.
코드 문제가 아니라 API 종류 선택의 문제였다.

 

해결 방법 


주문 취소를 두 가지로 나눠서 처리하면 된다.

1. 일반 주문 취소
fapiPrivateDeleteAllOpenOrders

2. Algo 주문 취소 (핵심)
fapiPrivateDeleteAlgoOpenOrders

두 개를 반드시 같이 써야 한다. 하나만 쓰면 TP/SL이 남는다.

AI에게 코드를 요청할 때 이렇게 시켰다.
"파이썬 ccxt 라이브러리로 바이낸스 선물 TP/SL 주문 취소할 때 일반 주문이랑 Algo 주문 둘 다 취소하는 코드 작성해줘"

코드로는 이렇게 나왔다.

# 일반 주문 취소
exchange.fapiPrivateDeleteAllOpenOrders({'symbol': symbol})

# Algo 주문 취소 (TP/SL 포함)
exchange.fapiPrivateDeleteAlgoOpenOrders({'symbol': symbol})

두 줄을 반드시 같이 써야 한다.
TP/SL 취소가 안 된다면 Algo 주문 취소를 따로 추가했는지 먼저 확인하자.
1달 넘게 삽질하고 나서야 알았다. AI도 웹검색하고 나서야 찾아낸 내용이다.

 

실전에서 이 문제가 생기면 어떻게 확인하나 


바이낸스 앱이나 웹에서 직접 확인하는 방법이 있다.

선물 탭 → 현재 주문으로 들어간다.
포지션은 없는데 주문 탭에 TP/SL 주문이 남아있으면 이 오류가 맞다.

봇이 여러 개 돌아가는 상황이라면 피해가 더 크다.
봇마다 TP/SL 취소가 안 되면 주문이 계속 누적된다.
어느 순간 새 포지션에 이전 SL이 걸려서 예상치 못한 청산이 된다.

잔고가 적을 때 특히 위험하다.
남아있는 SL이 새 포지션의 잔고를 물고 들어가면 손실이 두 배로 커진다.

봇 운영 초기에는 매일 "현재 주문" 탭을 직접 확인하는 습관을 들이는 게 낫다.
주문이 쌓이고 있으면 코드 어딘가에 Algo 주문 취소가 빠져있는 거다.

 

결론 


바이낸스 선물 자동매매에서 TP/SL 취소가 안 된다면 이 두 가지를 모두 쓰고 있는지 확인하자.

fapiPrivateDeleteAllOpenOrders — 일반 주문 취소
fapiPrivateDeleteAlgoOpenOrders — Algo 주문 취소 (TP/SL)

둘 중 하나만 쓰면 반드시 남는 주문이 생긴다.
AI한테 코드 짜달라고 할 때 "Algo 주문 취소도 같이 넣어줘"라고 명시하자.
그 한 마디가 1달짜리 삽질을 막아준다.

📈 백테스트