작은 데이터 그리드 모양이 직선으로 연결되어, 오른쪽에 홀로 서 있는 톱니바퀴 모양과 이어져 있다.

베팅 봇과 API: 계정이 잠기지 않는 자동화

봇은 새벽 3시에 돌아갑니다. 계정은 9시에도 그대로 있어야 합니다. Betfair는 그 둘 사이에 실제 선을 긋고 있지만, 그 선은 대부분의 포럼 글이 설명하는 선이 아닙니다.

베팅 봇이란 마우스에 손가락을 대지 않고 베팅을 넣거나 관리하는 모든 스크립트를 말합니다. Betfair Exchange에서 그것이 허용되는지를 가르는 말은 "봇"이 아니라 "API"입니다. Betfair 약관은 계정 소유자가 각 베팅을 직접 수동으로 넣는 것 외의 다른 자동화된 수단으로 넣은 베팅을 의심스러운 행위로 간주하면서도, 바로 그 조항에서 API를 다시 떼어냅니다. API를 통해 넣은 베팅은 명시적으로 제외됩니다. 두 번째 규칙은 API 이용자도 똑같이 걸립니다. 계정은 다른 사람을 위해 운영되는 서비스가 아니라, 계속 개인적인 것으로 남아야 합니다. 그보다 먼저, Delayed 키의 지연된 데이터를 상대로 로직을 테스트하고, 요청·동시성·로그인에 대한 API 자체 한도에 맞춰 설계해야 합니다. 키 자체와 각각의 비용, 그리고 네 브로커가 자사 도구에 대해 말하는 내용은 아래에 링크된 별도 페이지에 있습니다.

이 규칙이 실제로 나누는 것

자동화는 이 사이트가 다루는 더 넓은 전문 베팅 기법들 안에 있는 여러 선 중 하나이며, 여기 규칙이 "샤프 베터는 소프트웨어를 쓴다"보다 훨씬 구체적이기 때문에 따로 페이지를 둡니다. 포럼에서는 "봇"을 한 가지로 뭉뚱그립니다. 베팅을 넣는 소프트웨어라는 것입니다. Betfair 약관은 더 정밀합니다. 12.1.4조는 의심스러운 것으로 간주하는 행위 중에 "계정 소유자가 각 베팅을 직접 수동으로 넣는 것 외의 방식"으로 넣은 베팅을 올리는데, 이것만 따로 읽으면 지금까지 작성된 모든 스크립트가 걸려들 것입니다. 하지만 따로 읽을 수 없습니다. 같은 조항이 의심의 여지를 없애기 위해, "API(Application Programming Interface)를 통해" 넣은 베팅은 포함되지 않는다는 예외를 스스로 담고 있습니다. 두 조각을 합치면 그 선은 정확합니다. 일반 웹사이트를 클릭해 들어가는 스크립트가 이 조항이 겨냥하는 대상이고, API에 말을 거는 스크립트는 이 조항이 스스로 이름 붙인 예외입니다.

참고로, "봇"이라는 말은 저 문장에서 많은 일을 하고 있지만, 그 단어는 실제 조항에는 전혀 나오지 않습니다. Betfair의 법무팀은 대신 "계정 소유자가 각 베팅을 직접 수동으로 넣는 것 외의 방식"이라고 썼는데, 같은 말을 길게 돌려 쓴 것이지만 잘못 인용하기는 훨씬 어려운 문장입니다. 어쨌든, 이것이 당신에게 어떤 의미인지로 돌아가겠습니다.

그러니 이 규칙은 "봇은 금지"도 아니고 "봇은 괜찮음"도 아닙니다. 더 좁습니다. 아주 빠른 두 손처럼 웹사이트를 조작하는 비공식 스크립트는 의심스러운 행위를 다루는 조항 안에 들어가고, 같은 로직이 공식 API에 연결되면 그 예외 안에 들어갑니다. 사다리를 직접 손으로 트레이딩하는 사람과 API를 통해 같은 일을 하는 스크립트는 같은 문서 안에서 다르게 취급되며, 그 차이는 전략이 아니라 문이 어느 쪽이냐입니다.

개인 이용의 선, 그리고 봇이 그 선을 넘는 지점

두 번째 조항도 똑같이 중요하지만 훨씬 덜 읽힙니다. Betfair는 "(합리적으로 행동하여) 귀하의 계정 이용이 '사업적 이용'에 해당한다고 의심되는 경우" 계정의 이용을 금지된 것으로 다룰 수 있으며, 이는 일부러 넓게 정의되어 있습니다. "'사업적 이용'에는 베팅 운영사에 의한 이용이나, 베팅 운영사에 데이터나 서비스를 제공하는 개인 또는 단체에 의한 이용이 포함됩니다"(11.2.13조). 이는 위의 API 예외와는 아무 관계가 없습니다. 스크립트가 12.1.4조의 예외 안에 정확히 들어가 있더라도, 실제로 다른 사람을 위해 베팅을 운영하거나, 구독 서비스에 데이터를 공급하거나, 다른 베터에게 판매되는 제품의 백엔드 역할을 하고 있다면 11.2.13조에 걸릴 수 있습니다.

저라면 이 두 조항을 서로 다른 질문에 답하는 것으로 다루겠습니다. 12.1.4조는 베팅이 어떻게 넣어졌는지를 묻습니다. 11.2.13조는 그것이 실제로 누구의 돈이고 누구의 결정이었는지를 묻습니다. 오직 한 사람 자신의 계정에서만 작동하는 봇은 두 번째 질문을 기본적으로 통과합니다. 여러 사람의 스테이크를 관리하거나 자신의 신호를 판매하는 봇은, 베팅을 넣는 데 어느 문을 쓰든 그렇지 않습니다.

API로 들어가는 모든 경로는 인증된 계정에서 시작합니다. Betfair 자체 개발자 도움말은 분명하게 말합니다. Betfair 계정이 없으면 "라이선스 절차를 전혀 진행할 수 없"으며, 신원 확인이 실제로 요구하는 것이 어떤 키보다도 먼저 와야 합니다. 상업적 자동화는 예산이 더 큰 개인 키가 아니라, Betfair의 비즈니스 쪽을 통한 별도의 경로를 거칩니다.

문은 API입니다. 웹사이트 위의 스크립트는 그 문이 아닙니다.

Live 키에 돈을 넣기 전에 테스트해야 할 것

봇을 만드는 사람은 누구나 곧바로 베팅을 넣는 단계로 건너뛰고 싶어 합니다. 정직한 순서는 그 반대입니다. 유료 키나 진짜 뱅크롤이 근처에 오기 전에, 일부러 실시간보다 느린 데이터를 상대로 로직을 증명하고, 그 장소가 허용하는 가장 작은 스테이크로 시작해야 합니다.

Betfair Delayed 키: 가격 데이터가 얼마나 오래될 수 있는가

출처: Betfair 개발자 문서, FACTS-betfair.md 6절.

차트 데이터
항목값
가장 빠른 스냅샷1
가장 느린 스냅샷180

최선일 때 1초, 최악일 때 3분에 이르는 이 범위는 그냥 넘길 만한 오차가 아닙니다. 스크립트가 마지막으로 합리적이라고 본 가격은, 스크립트가 실제로 움직일 때쯔음에는 이미 한참 지나가 있을 수 있으며, 이를 완화해 줄 샌드박스도 없습니다. Betfair 자체 문서는 실제 자금을 쓰지 않고 테스트할 수 있는 테스트베드는 존재하지 않는다고 밝힙니다. Delayed 키가 넣는 모든 베팅은 실제 결과가 따르는 실제 베팅이며, 그래서 이 단계를 실행하는 유일하게 합리적인 방법은 그 장소가 허용하는 가장 작은 스테이크입니다.

가상의 예시이며, 모든 숫자는 산술을 위해서만 지어낸 것입니다. 스크립트가 2.10에 있는 가격을 지켜보다가 백하기로 결정했는데, 바로 그 순간 API가 180초 묵은 스냅샷을 돌려준다고 해봅시다. 골이나 레드카드, 늦은 출전 취소는 3분 안에 일어날 수 있으므로, 스크립트가 백한다고 생각하는 가격과 주문이 실제로 도착했을 때 제시되어 있는 가격은 서로 다른 두 숫자일 수 있습니다. 상류에 아무리 정교한 로직을 둬도 낡은 정보 위에 세워진 결정은 고쳐지지 않습니다. 그 위의 전략이 아니라 지연 그 자체가, 가장 먼저 테스트할 가치가 있는 것입니다.

장소는 그림의 절반일 뿐입니다. 나머지 절반은 봇이 실제로 반응하는 피드이며, 얕은 이력 위에 세워진 스크립트는 어떤 키로 돌리든 오작동합니다. 스크립트 자체의 숫자를 믿기 전에 계산기로 직접 산술을 확인하고, 거래 수수료는 이기는 베팅에서도 여전히 빠져나간다는 것을 기억하십시오. 그것이 봇의 순수치에 어떤 영향을 주는지는 전략이 서류상 성공으로 판정되기 전에 읽어볼 가치가 있습니다.

베팅 슬립 위로 늘어선 작은 기계 팔들이, 하나만 빼고 모두 움직임 중간에 멈춰 있다.
봇의 대부분은 기다림입니다. 작동하는 그 부분이 바로 규칙이 신경 쓰는 부분입니다.

스크립트가 맞춰 설계해야 하는 한도

지금부터는 자동화가 허용되는지의 문제가 아닙니다. API 자체가 스크립트의 동작에 두는 한계, 추측에 맡기지 않고 분명한 숫자로 정해 둔 한계에 관한 것입니다. 스크립트가 아직 설계 단계에 있을 때 가장 중요한 것은 그중 네 가지이며, 위에서 다룬 Delayed 키 자체의 지연 구간과 더불어, 이는 Betfair가 바꿀 수 있는 숫자들입니다. 이 중 무엇에 맞춰 실제 운영 코드를 설계하기 전에 현재 약관을 확인하십시오.

  • 마켓 데이터 요청에 대한 200포인트 한도. 비용은 요청한 마켓과 데이터 종류 전체에 걸쳐 합산되며, 총합을 넘기면 데이터 대신 오류가 돌아옵니다.
  • 주문 및 포지션 조회에 대한 동시 3건 한도. 이전 요청이 아직 처리 중인 상태에서 현재 주문, 손익, 또는 정산된 주문을 세 번 넘게 동시에 확인하면, 대기열에 들어가는 것이 아니라 거부됩니다.
  • 주문 생성·취소·수정·교체에 대한 초당 1,000건 한도. 이는 하나의 스크립트만이 아니라, 열려 있는 모든 연결에 걸친 계정 전체에 적용됩니다.
  • 로그인 실패가 쌓이면 20분간 잠깁니다. 그 기간 동안은 앞선 실패의 원인이 무엇이었든, 이후의 모든 로그인 시도가 자동으로 거부됩니다.

두 번째 가상의 예시이며, 실제로 사람들을 걸려들게 하는 쪽입니다. 로그인 처리에 버그가 있는 스크립트가 세션을 제때 갱신하지 못하고, 물러서는 대신 촘촘한 루프로 재시도합니다. 20분은 대략 축구 전반전 하나입니다. 킥오프 때 이 잠금에 걸리면 스크립트는 잡아낸 것보다 더 많은 경기를 놓칩니다. 해법은 이야기보다 훨씬 단조롭습니다. 세션을 유지하고, 로그인 실패를 즉시 재시도할 이유가 아니라 멈출 이유로 다루십시오.

브로커 자체 약관이 더하는 층

위의 모든 내용은 Betfair 자체 규정집이며, 직접 보유한 Betfair 계정에만 적용됩니다. 브로커의 거래소 도구는 Betfair가 아니라 브로커와 함께 여는 다른 제품이므로, Betfair의 API 조항이 그곳까지 자동으로 따라가지는 않습니다. 대신 중요한 것은 각 브로커 자체의 약관이며, 스크립트에 대해 모두 같은 말을 하지는 않습니다. 일부는 자체 API를 공개하고, 다른 일부는 자동화된 접속을 완전히 막습니다. 브로커의 스크래핑 방지 조항은 돌아갈 방법을 찾을 대상이 아니라, 지켜야 하고 바뀌면 보고해야 할 그 브로커 고유의 규칙으로 다루십시오. 각 브로커가 봇에 대해 이미 말하는 내용이 브로커별 세부 사항을 키 비용과 함께 다루므로, 이 페이지에서는 반복하지 않습니다.

스크립트를 만들고 유지하는 것이 실제로 원하는 일이 아니라면, 브로커들은 이미 이 중 일부를 패키지로 제공합니다. 브로커 내장 자동화는 코드 없이 바로 쓸 수 있는 것을 다룹니다. 12.1.4조에 따라 의심스러운 행위로 표시된 계정은, 자동화든 아니든 조용히 넘어가지지 않습니다. 계정 제한이 실제로 어떤 모습인지가 그쪽을 다룹니다.

저라면 포럼 요약이 아니라 해당 브로커의 현재 약관을 읽기 전에는 아무것도 만들지 않겠습니다. 네 브로커의 약관을 나란히 비교한 페이지가 자동화가 반겨지는 곳, 아무 말도 없는 곳, 완전히 막힌 곳을 가장 빨리 보는 방법입니다.

자주 묻는 질문

Betfair Exchange에서 베팅 봇을 쓰는 것은 규칙 위반인가요?

자동으로 그런 것은 아닙니다. Betfair 약관은 계정 소유자가 각 베팅을 직접 수동으로 넣는 것 외의 다른 자동화된 수단으로 넣은 베팅을 의심스러운 행위로 간주하면서도, 바로 같은 조항에서 공식 API를 통해 넣은 베팅은 명시적으로 제외합니다. API를 통해 작동하는 스크립트는 그 예외 안에 들어가지만, 아주 빠른 손처럼 일반 웹사이트를 조작하는 스크립트는 그렇지 않습니다.

베팅 봇을 다른 사람을 위해, 또는 사업으로 운영할 수 있나요?

그것은 별개의 선을 넘습니다. Betfair는 해당 이용이 사업적 이용에 해당한다고 합리적으로 의심되면 계정을 금지된 것으로 다룰 수 있으며, 여기에는 베팅 운영사에 의한 이용이나 그런 운영사에 데이터나 서비스를 제공하는 자에 의한 이용이 포함됩니다. 개인 계정은 자동화 여부와 관계없이 그 소유자 본인의 베팅을 위한 것입니다.

베팅 봇과 Betfair API의 실제 차이는 무엇인가요?

"봇"은 소프트웨어를 가리키는 줄임말일 뿐이고, API는 Betfair가 자동화된 접속을 위해 만든 구체적이고 승인된 통로입니다. 약관은 소프트웨어에 붙은 이름표가 아니라, 어느 통로로 베팅을 넣었는지만으로 판단합니다.

베팅 봇을 실제 자금을 걸지 않고 테스트할 수 있나요?

무료 개발 옵션인 Delayed 키로는 그럴 수 없습니다. Betfair는 실제 자금을 쓰지 않고 테스트할 수 있는 테스트베드는 존재하지 않는다고 말하며, 그래서 Delayed 키가 넣는 모든 베팅은 실제 결과가 따르는 실제 베팅이므로, 로직을 증명하는 동안에는 가장 작은 스테이크로 유지하는 것이 가장 좋습니다.

베팅 봇은 API가 제한을 걸기 전까지 얼마나 빠르게 주문을 넣을 수 있나요?

Betfair가 정해 둔 한도는 요청 하나가 요구할 수 있는 마켓 데이터에 대한 200포인트 한도, 주문 및 포지션 조회에 대한 동시 3건 한도, 그리고 계정 전체에 걸쳐 1초당 1,000건의 주문 지시 한도입니다. 로그인 실패가 쌓이면 여기에 20분간의 잠금이 더해집니다. 운영 코드가 이 중 무엇에 의존하기 전에 현재 문서를 확인하십시오.

이 사이트의 스포츠 베팅 브로커들은 베팅 봇을 허용하나요?

브로커마다 다르며, 이 페이지에서는 세부 내용을 반복하지 않습니다. 각 브로커가 API와 자동화에 대해 어떤 입장인지 다루는 페이지가 Betfair 키 비용과 함께 브로커별로 정리합니다.