주문 체결
거래소 요청 제한(rate limit)이란 하나의 IP 주소나 API 키로부터 주어진 시간 구간 내에 거래소가 받아들이는 최대 API 요청 수, 또는 최대 요청 가중치를 말합니다. 이를 초과하면 오류가 반환되며, 계속될 경우 해당 IP나 키가 일시적으로 차단(ban)됩니다.
자동화는 사람보다 훨씬 많은 요청을 발생시킵니다. 레버리지 설정, 진입 접수, 보호 주문 생성, 포지션 폴링, 그리고 모든 계정의 모든 신호에 대한 체결 확인이 그 예입니다. 제한은 동일한 IP나 키를 사용하는 모든 것에 공유되므로, 잘못 동작하는 루프 하나가 동일한 서버상의 다른 모든 계정의 주문을 막을 수 있습니다. 빠르게 움직이는 시장에서의 차단이 최악의 경우입니다. 포지션을 열 수 없고, 소프트웨어 안에만 존재하는 손절가는 이동시킬 수도 없습니다. 제한은 거래소마다, 엔드포인트마다 다르기도 하므로, 플랫폼은 이를 직접 부딪혀 발견하기보다는 미리 예산을 세워야 합니다.
AlgoVesta는 주문당 호출 횟수를 고정된 소량으로 유지하며, 시장 데이터는 계정마다 거래소를 폴링하는 대신 공유되는 공개 피드에서 읽어옵니다. 요청 예산은 거래소별, 키별로 추적되며, 거래 장소가 요청 제한이나 차단 응답으로 답하면 영향을 받은 키나 서버는 즉시 재시도하는 대신 물러섭니다. 이 상태는 기록되어 대시보드에 나타납니다. 공유 테스트넷에서 보고된 차단은 실거래 차단과 별도로 관리되어, 테스트 환경이 실거래 실행 서버를 순환에서 제외시키는 일이 없도록 합니다. 손절과 목표가는 거래 장소에 대기 주문으로 배치되므로, 일시적인 제한이 포지션을 보호받지 못한 상태로 남기지 않습니다. 과거 데이터 조회 등 무거운 읽기 작업은 별도의 머신에서 실행되어 실행 서버의 예산을 소모하지 않습니다. 재시도 로직과 지원 거래소 페이지를 참고하십시오.
시장 급등 중에 신호 채널이 하나의 계정에 대해 1분 안에 여덟 개의 신호를 발동시킵니다. 각각은 고정된 호출 집합으로 실행되며, 거래소의 분당 예산 안에 충분히 들어갑니다. 포지션은 손절가가 거래소에 대기 상태로 배치된 채 열립니다. 만약 중간에 거래소가 요청 제한 오류를 반환했다면, 나머지 신호는 그 사유와 함께 차단됨으로 기록되었을 것이고, 해당 키는 더 긴 차단을 유발하는 대신 다음 시도 전에 잠시 멈췄을 것입니다.