횡보장에서 격자(그리드)로 자동 반복매매를 돌리고 싶다 — 그것도 지정가 메이커만 써서 수수료를 아끼면서.
이 요청을 업비트·빗썸 두 거래소에서 그대로 동작하는 봇으로 구현한 사례입니다. 하나의 프로그램에서 라디오 버튼으로 거래소를 바꿔 씁니다.
플랫폼
업비트 + 빗썸 (REST+WS · 라디오 전환)
특징
지정가 메이커 그리드 + 슬롯별 차등수량
유형
코인 현물 · 그리드
제작 기간
약 2~3주
제작한 그리드 트레이딩 봇 대시보드 — 가격 격자 슬롯(매수 초록·매도 빨강)·평단·슬롯별 차등수량·체결 로그 (예시 화면)
01배경 · 고객 요구사항
고객은 크게 오르지도 내리지도 않고 일정 범위에서 오르내리는 횡보장을 노렸습니다.
이런 구간에서는 방향을 맞추는 매매보다, 가격을 격자(그리드)처럼 촘촘히 나눠 싸지면 사고 비싸지면 파는 반복매매가 잘 맞습니다.
문제는 이걸 사람이 24시간 손으로 반복하기 어렵다는 것이었습니다.
요청은 세 가지로 정리됐습니다. ① 정해둔 격자에 따라 자동으로 사고팔기,
② 수수료가 새는 걸 막기 위해 시장가를 쓰지 않고 지정가(메이커)만 사용,
③ 업비트만 쓰다가 빗썸으로도 옮겨 돌릴 수 있게 한 프로그램에서 두 거래소를 지원하는 것.
코인은 24시간 쉬지 않고 움직이고, 두 거래소는 인증 방식·응답 형식·호가 단위가 서로 다릅니다.
그래서 "격자를 어떻게 자동으로 깔고 채울 것인가"라는 전략 로직만큼이나,
거래소별 특성을 흡수해 같은 전략을 두 곳에서 똑같이 굴리는 것이 이 프로젝트의 핵심이었습니다.
02구현 방식
"정해둔 기준 기간의 고점·저점을 잡아 격자를 만들고, 체결될 때마다 반대 주문을 자동으로 채워 넣는" 반복 구조로 설계했습니다. 흐름은 이렇습니다:
기준 기간 고·저 → 격자 생성 — 설정한 기준 기간의 분봉 고가·저가에서 매수/매도 기준가를 뽑고, 정한 간격(₩)으로 아래·위에 격자를 촘촘히 배치
지정가 메이커 매수/매도 — 모든 주문은 지정가(메이커) 전용. 시장가를 쓰지 않아 체결 시 수수료를 낮추는 방향으로 운영
LIFO 역순 매칭 — 한 슬롯이 체결되면 즉시 반대 주문을 접수하되, 체결된 순서의 역순으로 수량을 맞춰 박스권 안에서 반복 수익을 노림
슬롯별 차등 수량(마틴게일) — 슬롯마다 진입 수량을 다르게 줄 수 있어, 아래로 내려갈수록 더 담는 마틴게일식 운용이 가능
그리드 매매 흐름 — 격자 생성부터 LIFO 매칭·차등 수량, 거래소 대응·청산 처리까지
두 거래소는 같은 전략을 그대로 쓰되, 인증과 통신만 각 거래소 규격에 맞게 갈아 끼우는 구조로 나눴습니다.
GUI에서 업비트 / 빗썸 라디오 버튼만 바꾸면 동일한 격자 전략이 선택한 거래소에서 동작합니다.
실시간 데이터는 WebSocket으로 시세를 받고, 주문·잔고·체결 조회는 REST로 처리합니다.
또한 API 호출을 아끼기 위해 실시간 틱마다 반응하는 대신 분봉 경계 시각에 정확히 한 번씩 격자 재배치·체결 확인 사이클을 돌려,
호출 제한에 걸리지 않으면서도 판단 기준(분봉 종가)을 일관되게 유지했습니다.
03해결한 기술 난제
지정가 메이커 그리드 + 거래소별 호가 정밀도 · nonce 처리
"지정가만 쓰는 격자"는 말은 간단해도, 실제로는 거래소마다 주문 가격을 받아들이는 규칙이 달라 그대로는 안 됩니다.
빗썸은 요청에 nonce(시간 기반 일회성 값)가 필요해 PC 시계가 조금만 어긋나도 주문이 거부되고,
코인마다 호가 단위(틱)가 달라 소수점 자리수를 잘못 붙이면 주문 자체가 튕깁니다.
그래서 서버 시각에 맞춘 nonce 보정과 거래소·종목별 호가 단위 동적 정밀도를 봇 안에 넣어, 지정가 격자가 두 거래소에서 안정적으로 나가도록 만들었습니다.
지정가 메이커 전용 — 매수·매도 모두 지정가로만 접수. 시장가를 배제해 체결 수수료를 낮추는 방향으로 운영하고, 격자 가격에 정확히 걸리도록 처리
빗썸 nonce 시간 보정 — 빗썸 응답의 Date 헤더로 PC와 서버의 시간 차이를 계산해 nonce에 보정값을 적용. OS 시간 동기화 권한 없이도 "시간 어긋남" 주문 거부를 방지
거래소별 호가단위 동적 정밀도 — 종목 가격대에 맞는 호가 단위(예: 41원대 코인은 0.1원, 2,000원대는 1원)를 자동 정렬하고 자리수를 맞춰 전송. 잘못된 반올림·정수 변환으로 주문이 튕기는 문제를 차단
자기매칭 방지 — 매수가와 매도가가 겹쳐 내 주문끼리 체결되는 상황을 사전 검증으로 걸러, 불필요한 왕복과 거래소 제재를 예방
분봉 경계 정확 실행 — 60초 폴링이 아니라 설정한 분봉 경계 시각(+데이터 갱신 지연 마진)에 맞춰 한 번씩 실행해, 판단 기준을 일관되게 유지하고 API 호출을 아낌
04핵심 기능
LIFO 역순 매칭 — 체결된 매수의 역순으로 매도 수량을 맞춰 박스권 내 반복 수익을 노리고, 매도 체결 시 빈 슬롯을 다시 채움
슬롯별 차등 수량(마틴게일) — 슬롯마다 진입 수량을 다르게 설정해 아래로 갈수록 비중을 키우는 운용 지원
평단가 일괄매도 모드 — 청산 방식을 그리드 분할 매도 / 평단가 기준 전량 매도 중 선택. 평단가 대비 목표 수익률에 도달하면 보유 전량을 한 번에 정리
듀얼 거래소 라디오 전환 — 업비트 / 빗썸을 GUI에서 선택. 동일 전략을 거래소만 바꿔 운영
상태 저장·복원 — 미체결 주문·슬롯 상태를 저장해 재시작 시 이어받거나, 리셋으로 새로 시작하는 옵션 제공
GUI 대시보드 — 격자 슬롯 상태(대기·매수중·체결·매도중), 보유수량·평단·손익, 체결 로그를 실시간 표시
05제작 과정 (약 2~3주)
1주차 · 요구사항·거래소 연동 설계 — 격자 파라미터와 청산 방식 확정, 업비트·빗썸 인증·주문·조회 연동 뼈대 구축, 공통 전략과 거래소별 어댑터 분리
2주차 · 핵심 로직·화면 — 격자 생성·재배치, LIFO 역순 매칭, 슬롯 상태 관리, 슬롯별 차등 수량·평단가 일괄매도, GUI 대시보드 구현
3주차 · 검증·안정화 — 빗썸 nonce 보정·호가 정밀도 점검, 자기매칭 방지 검증, 소액 실계좌로 실체결 확인 후 인수인계
06납품 결과물
실행 프로그램 (GUI 대시보드 포함, 단일 실행 파일)
업비트·빗썸 듀얼 거래소 지원 (라디오 전환)
격자 파라미터 설정 저장·불러오기 + 상태 복원
사용설명서 + API 키 발급·설정 가이드
납품 후 30일 무료 AS (협의 범위 내)
07기술 스택
업비트 API (REST · WebSocket · JWT)빗썸 API (REST · WebSocket · HMAC-SHA512)Python그리드 엔진 (LIFO 매칭 · 슬롯 상태머신)tkinter GUI (다크 테마)PyInstaller (단일 exe 빌드)
※ 본 사례는 과거 고객 요구사항을 익명 처리하여 재구성한 것이며, 수익률·수익금은 공개하지 않습니다.
알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천·투자 자문·수익 보장 서비스가 아닙니다.
과거 백테스트 결과가 미래 실거래 수익을 보장하지 않습니다. 암호화폐·파생상품 투자는 원금 손실 위험이 있습니다.
이런 자동매매, 바로 견적 받아보세요
그리드 전략이 이미 정리돼 있으셔도, 아직 아이디어 단계여도 괜찮습니다.
알고랩이 24시간 빠르게 답변드립니다.