코인선물, Bitget, Binance

트레이딩뷰 웹훅 코인선물 자동매매, PC 프로그램에서 텔레그램 서버 상주판으로

트레이딩뷰 차트의 볼린저밴드 알림이 울리면 선물 포지션을 잡고, 익절과 손절까지 프로그램이 처리합니다. 같은 고객이 Bitget 비트코인으로 시작해 이더리움판을 추가했고, 지인에게 줄 Binance판을 다시 의뢰했습니다. 마지막에는 PC를 켜 둬야 하던 프로그램을 서버에 올리고 휴대폰 텔레그램으로 조작하도록 바꿨습니다. 그 사이에 신호 서버가 통째로 사라져 프로그램이 멈춘 일도 있었습니다.

플랫폼
Bitget, Binance USDⓈ-M
무기한 선물 (REST)
신호
트레이딩뷰 알림 웹훅
자체 릴레이 서버 경유
형태
Windows PC 프로그램,
서버 상주 텔레그램 봇
제작 기간
Binance PC판 4일
텔레그램판은 엿새 뒤 전달
텔레그램 봇 대화 화면 두 개. 왼쪽은 API 키 등록과 자동매매 시작, 오른쪽은 현재 상태 조회와 롱 진입 알림, 보유 중 신호 무시 알림, 서버 재시작 후 자동 재개 알림
텔레그램판 재현 화면. 실제 텔레그램에 접속하지 않고, 납품한 봇 코드의 메시지 문구와 버튼 구성을 그대로 옮겨 그렸습니다 (잔고, 가격, 설정값은 예시)

01배경과 요구사항

처음 의뢰는 단순했습니다. 트레이딩뷰 1시간봉에 볼린저밴드를 올려 두고, 밴드 중심선의 방향과 밴드 터치를 함께 보고 롱이나 숏 신호를 냅니다. 한 봉이 위아래 밴드를 모두 건드리고 마감하면 그 봉은 신호에서 뺍니다. 판단은 봉 마감 기준이고, 진입 뒤에는 평균 진입가 대비 익절 %와 손절 %에 닿으면 시장가로 정리합니다. 구체적인 수치는 고객의 것이라 여기에는 적지 않습니다.

이 전략 하나가 네 번에 걸쳐 모습을 바꿨습니다.

02신호가 주문이 되기까지

신호 판단은 트레이딩뷰가 맡고, 주문은 프로그램이 맡습니다. 둘 사이를 작은 릴레이 서버가 잇습니다.

트레이딩뷰가 PC로 직접 웹훅을 쏠 수는 없습니다. 가정집 PC는 밖에서 들어오는 요청을 받을 주소가 없기 때문입니다. 그래서 서버가 신호를 받아 두고 PC가 가지러 가는 구조를 택했습니다. 프로그램별로 신호 경로와 사용 권한 키를 따로 두어서, 비트코인판과 이더리움판이 같은 릴레이를 쓰면서도 서로 섞이지 않습니다.

Binance 비트코인판 PC 프로그램 화면. API 키 입력, 코인과 익절 손절 퍼센트, 오더 사이즈, 레버리지 설정, 현재자산과 포지션 수량, 평단가, 익절가, 손절가, 오른쪽에 진입 로그와 보유 중 신호 무시 로그
납품한 Binance 비트코인판을 가짜 계좌 응답과 가짜 신호로 띄워 찍은 실제 프로그램 화면 (API 키, 잔고, 가격, 설정값은 예시)

03신호 서버가 사라진 날

프로그램은 그대로인데 인증도 신호도 닿지 않았습니다

2026년 9월, 릴레이와 인증을 맡던 예전 서버 두 대가 모두 폐기되어 접속이 끊겼습니다. 프로그램 안에는 그 서버 주소가 들어 있었으니, 실행 권한 확인에서 막히고 신호도 받지 못했습니다. 고객이 새 서버를 마련했고, 빈 서버에서 릴레이를 처음부터 다시 세웠습니다.

두 달 전에 만든 이더리움판도 이때 함께 새 서버로 옮겼습니다. 이더리움판은 비트코인판과 폴더, 설정 파일, 로그, 신호 경로가 모두 분리돼 있어 두 프로그램을 한 PC에서 같이 켜 둘 수 있습니다. 이더리움 선물은 최소 주문 수량이 있어서, 주문 크기와 레버리지를 곱한 값이 그 수량에 못 미치면 진입이 거부됩니다. 이 계산은 설명서에 예시와 함께 적었습니다.

Bitget 이더리움판 PC 프로그램 화면. API Key, Secret Key, API PW 세 칸과 코인 ETH, 자산대비 퍼센트 주문, Isolated 마진 설정, 포지션 정보와 진입 로그
Bitget 이더리움판. 같은 방식으로 찍은 실제 프로그램 화면 (값은 예시). Bitget은 API 비밀번호 칸이 하나 더 있습니다

04Binance로 옮기며 바로잡은 것

의뢰 내용은 "조건은 같습니다. 거래소만 바이낸스입니다."가 전부였습니다. 전략은 손대지 않았습니다. 다만 2년 전 코드를 다시 읽으니 Bitget에서는 문제가 없었어도 Binance에서는 사고가 될 동작이 몇 군데 있었습니다.

거래소 연동은 범용 라이브러리 대신 Binance REST를 직접 호출하도록 썼습니다. 주문 단위와 최소 금액을 주문 전에 검사하는 부분을 직접 다루기 위해서였고, 덤으로 실행 파일이 60MB에서 41MB로 줄었습니다. 서명, 수량 자릿수, 포지션 모드, 신호 처리는 네트워크 없이 도는 자동 테스트 29개로 확인합니다.

05PC를 끄면 손절도 멈춥니다

PC판은 익절과 손절을 거래소에 예약 주문으로 걸어 두지 않습니다. 프로그램이 가격을 보고 있다가 주문을 냅니다. 그래서 PC가 꺼지거나 절전에 들어가면 청산 감시도 같이 멈춥니다. 꺼져 있던 동안 온 신호도 버려집니다. PC를 24시간 켜 두기 어려운 사용자에게는 이 점이 가장 큰 약점이었습니다.

텔레그램판은 같은 매매 엔진을 릴레이가 돌고 있는 그 서버에 올린 것입니다. 화면이 없어진 자리를 텔레그램 봇이 대신합니다. 채팅창 아래에 고정된 버튼 일곱 개로 시작, 중지, 상태 확인, 설정, API 키 등록, 최근 기록, 도움말을 다룹니다.

텔레그램 봇 대화 화면 두 개. 왼쪽은 등록 코드 입력 후 등록 완료와 사용법 안내, 오른쪽은 현재 설정과 레버리지, 마진, 익절, 손절, 오더, 방식, 코인 버튼
등록과 설정 재현 화면. 봇 코드의 문구와 버튼 배치 그대로입니다 (등록 코드와 설정값은 예시)

거래소 연동 파일은 PC판과 글자 하나 다르지 않게 유지했고, 두 파일이 같은지를 테스트가 검사합니다. 한쪽만 고쳐서 두 판의 주문 동작이 어긋나는 일을 막기 위해서입니다. 엔진, 대화, 저장을 다루는 자동 테스트가 40개 더 있습니다.

두 판을 같이 켜면 주문이 두 번 나갑니다

PC판과 텔레그램판은 같은 릴레이에서 같은 신호를 읽습니다. 둘을 동시에 켜 두면 신호 하나에 주문이 두 번 들어갑니다. 코드로 막을 수 있는 문제가 아니어서, 설명서와 전달 메시지 양쪽에 "텔레그램판으로 바꾼 뒤에는 PC판을 꺼 달라"고 적었습니다.

06한계와 주의할 점

07납품 결과물

08기술 스택

Python 3 PyQt5 (PC판 GUI) Binance USDⓈ-M Futures REST (HMAC 서명 직접 구현) Bitget 선물 API TradingView Pine Script 알림, 웹훅 표준 라이브러리 HTTP 릴레이 Telegram Bot API (long polling) Ubuntu, systemd PyInstaller

09관련 사례

※ 본 사례는 과거 고객 요구사항을 익명 처리하여 재구성한 것이며, 수익률과 수익금은 공개하지 않습니다. 알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천, 투자 자문, 수익 보장 서비스가 아닙니다. 레버리지를 쓰는 가상자산 선물은 가격이 조금만 움직여도 손실이 크게 불어나고, 강제 청산으로 증거금 전부를 잃을 수 있습니다. 자동매매 프로그램은 설정한 규칙을 실행할 뿐이며, 서버나 통신 장애로 주문이 늦거나 나가지 않을 수 있습니다. 투자 판단과 그 결과는 사용자 본인에게 있습니다.

PC에서 돌리던 프로그램을 서버로 옮기고 싶으시면

지금 쓰는 프로그램을 옮기는 일도, 처음부터 새로 만드는 일도 상담에서 말씀해 주세요.
거래소와 신호를 받는 방식을 알려 주시면 됩니다.

무료 상담 시작하기 고객 후기 보기
← 제작 사례 전체 보기