En lille datagitterform, forbundet med en lige streg til en tandhjulsform, der står alene til højre.

Betting-bots og API: automatisering uden at blive låst ude

Botten kører klokken tre om natten. Din konto skal stadig være der klokken ni. Betfair trækker en reel grænse mellem de to veje dertil, og den er ikke den, de fleste forumtråde beskriver.

En betting-bot er ethvert script, der placerer eller styrer spil uden en finger på musen. På Betfair Exchange er det ikke ordet "bot", der afgør, om det er tilladt, men ordet "API". Betfairs vilkår behandler et spil, der er placeret ved andre automatiserede midler end ved, at kontohaveren placerer hvert spil manuelt, som mistænkelig aktivitet, og trækker så API’et direkte ud af den klausul igen: Spil placeret gennem det er udtrykkeligt undtaget. En anden regel rammer også API-brugere: Kontoen skal forblive personlig og ikke være en tjeneste, der drives for en anden. Før noget af det betyder noget, så test logikken mod den forsinkede nøgles forsinkede data, og design ud fra API’ets egne grænser for forespørgsler, samtidighed og logins. Selve nøglerne, hvad hver koster, og hvad de fire brokere siger om deres egne værktøjer, har en side for sig, der er linket nedenfor.

Hvad reglen egentlig deler

Automatisering er én linje blandt flere i det bredere sæt af professionelle spilmetoder, som dette site dækker, og den har sin egen side, fordi reglerne her er mere præcise end "sharp spillere bruger software". Forumstenografi behandler "bot" som én ting: software, der placerer spil. Betfairs vilkår er mere præcise. Klausul 12.1.4 opregner blandt de aktiviteter, den behandler som mistænkelige, et spil placeret "otherwise than through the Account holder placing each Bet manually" (på anden måde end ved, at kontohaveren placerer hvert spil manuelt), hvilket læst alene ville ramme ethvert script, der nogensinde er skrevet. Den læses ikke alene: Den samme klausul bærer sin egen undtagelse, angivet for en sikkerheds skyld, at spil placeret "via the Application Programming Interface (API)" ikke er omfattet. Sæt de to fragmenter sammen, og opdelingen er præcis: Et script, der klikker sig gennem den almindelige hjemmeside, er det, klausulen er rettet mod, og et script, der taler med API’et, er den undtagelse, klausulen selv nævner.

En sidebemærkning: "bot" gør et stort arbejde i den sætning, og ordet står aldrig i klausulen. Betfairs jurister skrev i stedet "otherwise than through the Account holder placing each Bet manually", hvilket er en længere måde at sige det samme på, men en langt sværere sætning at citere forkert. Tilbage til, hvad det betyder for dig.

Reglen er altså hverken "bots er forbudt" eller "bots er i orden". Den er smallere: Et uofficielt script, der arbejder på hjemmesiden som et par meget hurtige hænder, ligger inden for en klausul om mistænkelig aktivitet, mens den samme logik koblet til det officielle API ligger inden for undtagelsen. Den, der trader stigen i hånden, og et script, der gør det samme gennem API’et, behandles forskelligt af det samme dokument, og forskellen er døren, ikke strategien bag den.

Linjen om personlig brug, og hvor en bot kan krydse den

En anden klausul betyder lige så meget og bliver læst langt sjældnere. Betfair kan behandle en kontos brug som forbudt "if we suspect (acting reasonably) that your Account's usage represents 'business usage'" (hvis vi med rimelighed har mistanke om, at din kontos brug udgør "erhvervsmæssig brug"), defineret bevidst bredt: "'business usage' includes any use by a betting operator or any use by an individual or organisation supplying data or services to a betting operator" (klausul 11.2.13). Det har intet at gøre med API-undtagelsen ovenfor. Et script kan ligge midt i 12.1.4's undtagelse og alligevel komme i konflikt med 11.2.13, hvis det i virkeligheden placerer spil for en anden, fodrer en abonnementstjeneste eller er bagenden af et produkt, der sælges til andre spillere.

Jeg ville se de to klausuler som svar på forskellige spørgsmål. Klausul 12.1.4 spørger, hvordan spillet blev placeret. Klausul 11.2.13 spørger, hvis penge og hvis beslutning det i virkeligheden var. En bot, der kun handler på én persons egen konto, klarer det andet spørgsmål som standard. En bot, der styrer flere personers indsatser eller sælger sine signaler, gør ikke, uanset hvilken dør den bruger til at placere spillet.

Enhver vej ind i API’et starter fra en verificeret konto. Betfairs egen udviklerhjælp siger det ligeud: Uden en Betfair-konto kan du slet ikke fortsætte med licensering ("you cannot proceed with licensing"), og de ID-kontroller, verifikationen egentlig indebærer, ligger foran enhver nøgle. Erhvervsmæssig automatisering har sin egen separate vej gennem Betfairs forretningsside, ikke en personlig nøgle med et større budget.

API’et er døren. Et script på hjemmesiden er det ikke.

Hvad du bør teste, før en Live-nøgle bliver finansieret

Alle, der bygger en bot, vil springe frem til at placere spil. Den ærlige rækkefølge går den anden vej: Bevis logikken mod data, der med vilje er langsommere end realtid, med den mindste indsats stedet tillader, før en betalt nøgle eller en seriøs bankroll er i nærheden.

Betfairs Delayed-nøgle: hvor gamle prisdata kan være

Kilde: Betfairs udviklerdokumentation, FACTS-betfair.md afsnit 6.

Data bag diagrammet
PunktVærdi
Hurtigste øjebliksbillede1
Langsomste øjebliksbillede180

Det spænd, ét sekund i bedste fald og op til tre minutter i værste, er ikke en afrundingsfejl, man trækker på skuldrene af. Odds, som et script sidst så som rimelige, kan have flyttet sig langt forbi det, når scriptet handler, og der er ingen sandkasse, der dæmper det: Betfairs egen dokumentation siger, at der ikke findes et testmiljø, hvor nogen kan teste uden at bruge rigtige penge. Hvert spil, en Delayed-nøgle placerer, er et levende spil med et rigtigt resultat, og derfor er den mindste indsats, stedet tillader, den eneste fornuftige måde at køre dette trin på.

Et hypotetisk eksempel, hvor alle tal er opfundet kun til regnestykket. Sig, at et script følger odds, der ligger på 2,10, beslutter at back’e dem, og API’et i det øjeblik leverer et øjebliksbillede, der er 180 sekunder gammelt. Et mål, et rødt kort eller en sen afmelding kan ske på tre minutter, så de odds, scriptet tror, det back’er, og de odds, der faktisk er tilgængelige, når ordren lander, kan være to forskellige tal. Ingen snedig logik længere oppe retter en beslutning bygget på forældet information; forsinkelsen selv, ikke strategien ovenpå, er det første, der er værd at teste.

Stedet er kun halvdelen af billedet; den anden halvdel er det feed, en bot faktisk reagerer på, og et script bygget på tynd historik skyder ved siden af, uanset hvilken nøgle det kører på. Tjek regnestykket i hånden på en beregner, før du stoler på et scripts egne tal, og husk, at exchange-kommission stadig trækkes fra ethvert vindende spil; hvad den gør ved en bots nettotal er værd at læse, før en strategi bedømmes som en succes på papiret.

En række små mekaniske arme over en spilkupon, hvor alle på nær én står stille midt i bevægelsen.
Det meste af en bot er ventetid. Den del, der fyrer af, er den del, reglerne bekymrer sig om.

De grænser, et script skal designes omkring

Intet af dette handler om, hvorvidt automatisering er tilladt. Det handler om det loft, API’et selv sætter for, hvordan et script opfører sig, angivet i klare tal i stedet for overladt til gætværk. Fire af dem betyder mest, mens et script stadig er på tegnebrættet, og sammen med den forsinkede nøgles eget forsinkelsesvindue ovenfor er det tal, Betfair kan ændre; tjek de aktuelle vilkår, før du designer produktionskode omkring nogen af dem.

  • Et loft på 200 point for forespørgsler om markedsdata. Omkostningen lægges sammen på tværs af markederne og den type data, der bedes om; går du over totalen, får du en fejl i stedet for dataene.
  • Et loft på 3 samtidige forespørgsler på ordre- og positionskald. Tjekker du aktuelle ordrer, gevinst og tab eller afregnede ordrer mere end tre gange på én gang, mens tidligere kald stadig kører, bliver det afvist i stedet for sat i kø.
  • Et loft på 1.000 instruktioner i sekundet for at placere, annullere, opdatere eller erstatte ordrer. Det dækker hele kontoen på tværs af alle åbne forbindelser, ikke ét script for sig.
  • En udelukkelse på 20 minutter efter for mange mislykkede logins. Hvert yderligere loginforsøg afvises automatisk i den periode, uanset hvad der forårsagede de tidligere fejl.

Et andet hypotetisk eksempel, og det der faktisk fanger folk. Et script, hvis loginhåndtering har en fejl, undlader at forny sin session i tide og prøver igen i en tæt løkke i stedet for at trække sig. Tyve minutter er omtrent en fodboldhalvleg; udløs udelukkelsen ved kampstart, og scriptet misser mere af kampen, end det nogensinde nåede at fange. Rettelsen er kedeligere end historien: Hold sessionen, og behandl et mislykket login som en grund til at stoppe, ikke til at prøve igen med det samme.

Hvor en brokers egne vilkår lægger endnu et lag til

Alt ovenfor er Betfairs eget regelsæt, og det gælder kun en Betfair-konto, der holdes direkte. En brokers exchange-værktøj er et andet produkt, åbnet hos brokeren og ikke hos Betfair, så Betfairs API-klausuler følger ikke automatisk med dertil. Det, der betyder noget i stedet, er hver brokers egne vilkår, og de siger ikke alle det samme om scripts: Nogle offentliggør et eget API, andre forbyder automatiseret adgang helt. Se en brokers klausul mod scraping som dens egen husregel, der skal respekteres og meldes, hvis den ændrer sig, aldrig som noget, du skal finde en vej uden om. Hvad hver broker allerede siger om bots har detaljerne broker for broker, ved siden af hvad nøglerne koster; denne side gentager det ikke.

Hvis det at bygge og vedligeholde et script ikke er det projekt, du egentlig ønsker, har brokerne allerede pakket noget af dette: en brokers indbyggede automatisering i stedet dækker, hvad der kommer færdiglavet, uden kode. En konto, der er markeret for mistænkelig aktivitet under klausul 12.1.4, automatiseret eller ej, bliver heller ikke stille og roligt ignoreret; hvordan en kontobegrænsning egentlig ser ud dækker den side af sagen.

Jeg ville ikke bygge noget, før jeg havde læst den konkrete brokers aktuelle vilkår, ikke et forumsammendrag. De fire brokeres vilkår sammenlignet side om side er den hurtigste måde at se, hvor automatisering er velkommen, hvor vilkårene er tavse, og hvor den er forbudt helt.

Ofte stillede spørgsmål

Er det imod reglerne at bruge en betting-bot på Betfair Exchange?

Ikke automatisk. Betfairs vilkår behandler et spil placeret ved andre automatiserede midler end ved, at kontohaveren manuelt placerer hvert spil, som mistænkelig aktivitet, og undtager så udtrykkeligt spil placeret via det officielle API fra den samme klausul. Et script, der arbejder gennem API’et, ligger i undtagelsen; et, der arbejder på den almindelige hjemmeside som meget hurtige hænder, gør ikke.

Kan en betting-bot køres for en anden eller som erhverv?

Det krydser en separat grænse. Betfair kan behandle en konto som forbudt, hvis den med rimelighed mistænker, at brugen tæller som erhvervsmæssig brug, defineret til at omfatte brug fra en spiludbyder eller fra enhver, der leverer data eller tjenester til en. En personlig konto er til kontohaverens eget spil, automatiseret eller ej.

Hvad er egentlig forskellen på en betting-bot og Betfairs API?

"Bot" er en stenografi for softwaren; API’et er den konkrete, godkendte kanal, Betfair har bygget til automatiseret adgang. Vilkårene bedømmer ikke software efter den etiket, den bærer, kun efter hvilken kanal der placerede spillet.

Kan en betting-bot testes uden at risikere rigtige penge?

Ikke på Delayed-nøglen, den gratis udviklingsmulighed: Betfair siger, at der ikke findes et testmiljø, hvor nogen kan teste uden at bruge rigtige penge, så hvert spil, den placerer, er et levende spil med et rigtigt resultat, og det bør holdes til den mindste indsats, mens logikken stadig bevises.

Hvor hurtigt kan en betting-bot placere ordrer, før API’et dæmper den?

De lofter, Betfair angiver, er et loft på 200 point for, hvor meget markedsdata én forespørgsel kan bede om, en grænse på 3 samtidige forespørgsler på ordre- og positionskald og et loft på 1.000 ordreinstruktioner på tværs af kontoen i ét sekund. For mange mislykkede logins lægger en udelukkelse på 20 minutter oveni. Tjek den aktuelle dokumentation, før du stoler på nogen af dem i produktionskode.

Tillader sportsspilsbrokerne på dette site betting-bots?

Det varierer fra broker til broker, og denne side gentager ikke detaljerne; siden, der dækker hver brokers egen holdning til API og automatisering, har dem broker for broker, ved siden af prisen på Betfairs nøgler.