호가 단위가 바뀌면 가격은 새 tick size의 정수배 격자에 맞아야 합니다. 공지의 대상 거래쌍·적용 UTC, 기준 가격, 기존 open order의 취소·유지·자동 조정 여부를 확인합니다. 봇은 소수 자릿수만 줄이지 말고 거래소 상품 정보의 tick size를 다시 받아 매수·매도 목적에 맞는 반올림을 적용한 뒤 주문을 검증해야 합니다.
tick size는 가격이 놓일 수 있는 격자입니다
Binance PRICE_FILTER는 minPrice, maxPrice와 tickSize를 정의하고 가격이 tickSize의 배수 조건을 만족해야 한다고 설명합니다. tick size가 0.01이면 100.12는 격자에 있지만 100.123은 유효하지 않습니다. 단순히 화면에 소수 셋째 자리를 숨기는 표시 설정과 다릅니다.
Coinbase 상품 응답도 quote_increment와 base_increment를 별도 필드로 제공합니다. 전자는 가격 통화의 증분, 후자는 기본자산 수량 증분으로 읽어야 합니다. 가격 증분 변경을 수량 step size 변경으로 오해하지 않습니다.
호가 단위는 화면 자릿수가 아니라 거래 엔진이 허용하는 가격 격자입니다.
JOBCOIN 해설

그림은 이 주제의 공통 개념을 단순화한 설명입니다. 아래 항목에서 이 글의 구체적인 조건과 예외를 함께 읽어보세요.
- tick size는 가격이 놓일 수 있는 격자입니다
Binance PRICE_FILTER는 minPrice, maxPrice와 tickSize를 정의하고 가격이 tickSize의 배수 조건을 만족해야 한다고 설명합니다.
- 적용 시각과 대상 심볼을 원문 그대로 보관합니다
같은 자산이라도 BTC/USD와 BTC/USDT의 tick size는 다를 수 있습니다.
- 반올림은 주문 의도를 바꿀 수 있습니다
가정상 tick size가 0.1이고 계산 가격이 100.
AI로 제작한 개념도 · 실제 가격·거래 내역·통계가 아닙니다.
적용 시각과 대상 심볼을 원문 그대로 보관합니다
같은 자산이라도 BTC/USD와 BTC/USDT의 tick size는 다를 수 있습니다. 공지에서 거래쌍, 현물·파생 상품, 적용 시간대와 단계적 적용 여부를 확인합니다. 전체 자산에 적용된다고 확대하지 않습니다.
배포 직전 exchangeInfo나 상품 API의 값을 스냅샷으로 저장하고 적용 뒤 다시 조회합니다. 공지값과 API가 잠시 다르면 신규 주문을 멈추고 거래소가 실행 기준으로 지정한 자료를 확인합니다. 캐시된 필터를 장시간 재사용하지 않습니다.
반올림은 주문 의도를 바꿀 수 있습니다
가정상 tick size가 0.1이고 계산 가격이 100.06이면 가장 가까운 격자는 100.1입니다. 하지만 매수 지정가를 위로 올리면 더 공격적인 주문이 되고, 매도 지정가를 아래로 내리면 예상보다 낮은 가격을 허용합니다. 기계적 반올림 전에 가격 상한·하한 의도를 정해야 합니다.
손절 트리거와 지정가가 함께 있는 주문은 두 가격을 각각 검증합니다. 반올림 뒤 두 값의 순서가 뒤집히거나 같아질 수 있습니다. 계산은 가격을 tick 단위 정수로 바꾸거나 정확한 decimal 연산을 사용해 0.1의 이진 부동소수점 오차로 필터 거절이 나지 않게 합니다.
| 원 가격 | 처리 | 결과와 의미 |
|---|---|---|
| 100.06 | 최근접 | 100.1, 공격성 증가 가능 |
| 100.06 | 아래 격자 | 100.0, 매수 상한 보수적 |
| 100.04 | 위 격자 | 100.1, 매도 하한 보수적 |
| 100.00 | 변경 없음 | 100.0, 이미 유효 |
기존 주문 처리 문구를 따로 찾습니다
신규 주문이 새 tick을 따라야 한다고 해서 기존 주문이 자동 취소된다고 단정할 수 없습니다. 거래소는 기존 주문 유지, 일괄 취소, 유효하지 않은 주문만 취소, 가격 자동 조정 중 하나를 선택할 수 있습니다. 자동 조정은 명시되지 않으면 가정하지 않습니다.
open orders를 적용 전후로 내려받아 주문 ID, 가격, 잔량과 상태를 비교합니다. 취소됐다면 자금이 다시 사용 가능해졌는지 확인하고 대체 주문은 새 tick과 최소 주문 조건을 함께 통과시킵니다. 부분 체결 주문은 잔량만 재주문합니다.
봇의 필터 캐시와 대기 주문을 동시에 갱신합니다
주문 생성기는 시작할 때만 상품 정보를 읽고 계속 실행하면 변경 직후 오래된 tick으로 주문을 보낼 수 있습니다. 필터에 버전 또는 취득 시각을 붙이고 공지 적용 시각 전후에 강제 갱신합니다. 필터 거절을 무한 재시도하지 않고 최신 상품 정보를 다시 받습니다.
가격 계산, 서명 직전 검증, UI 미리보기와 백테스트가 같은 tick 함수를 사용하도록 합니다. 다만 과거 체결 자료를 새 tick으로 재반올림하면 역사적 가격이 변형되므로 원자료는 그대로 보존합니다.
- 공지의 상품·거래쌍·적용 UTC를 기록합니다.
- 적용 전후 상품 API의 tick size를 저장합니다.
- 매수·매도별 반올림 방향과 가격 한도를 정의합니다.
- 기존 주문의 취소·유지·조정 문구를 확인합니다.
- 새 tick과 수량·명목가치 필터를 함께 재검증합니다.
price precision을 tick size로 대신하지 않습니다
API가 pricePrecision 또는 표시 자릿수를 제공하더라도 실제 주문 가능 가격은 PRICE_FILTER나 quote_increment를 기준으로 검증합니다. 자릿수가 2라고 해서 언제나 0.01 간격이라는 결론은 문서 정의 없이는 성립하지 않습니다.
변경 뒤 성공 주문 몇 건만 보고 완료하지 않습니다. 경계 아래·정확한 격자·경계 위 가격과 stopPrice를 테스트하고 예상 오류가 나는지 확인합니다. 주문 거절률과 필터 캐시 갱신 시각을 관측해 일부 워커만 구 설정을 쓰는 문제를 찾습니다.
자주 묻는 질문
소수 자릿수만 맞추면 tick size를 통과하나요?
항상 그렇지 않습니다. 허용 가격은 실제 tick 격자의 배수 조건을 만족해야 합니다.
기존 주문은 새 호가 단위로 자동 반올림되나요?
공지에 명시되지 않으면 가정할 수 없습니다. 적용 전후 주문 상태를 직접 대조해야 합니다.
매수와 매도를 같은 방향으로 반올림해도 되나요?
주문 가격 상한·하한 의도가 달라질 수 있어 방향별 정책을 명시해야 합니다.
더 깊이 읽기
본문에서 다룬 개념과 확인 절차를 다음 글에서 이어서 살펴보세요.



