En handelsbot för Ja och Nej behöver en entydig dokumentation av vad den köper eller säljer. Utfallssida, kontoåtgärd och pris är separata uppgifter. Ett program som omvandlar allt till en enda sannolikhet kan tappa skillnaden mellan att köpa Nej, sälja Ja och bara observera ett mittpris för Ja. Åtgärderna kan vara ekonomiskt relaterade enligt en vanlig binär modell men kräva olika kontanter, innehav och kontobehörigheter.
Boten bör bevara handelsplatsens ursprungliga representation och en granskad intern tolkning. Sedan utvärderar den det faktiska genomförbara priset, tar med tillämpliga avgifter och dokumenterar varje orderförsök fram till avstämning. De fiktiva exemplen nedan använder en binär utbetalning på en dollar eller noll med exakt komplementära utfall där det anges. De är exempel på redovisning och kontroll, inte påståenden om en viss handelsplats aktuella avgifter eller en strategis förväntade resultat.
Koppling av sidor i en Ja–Nej-bot börjar med identifierare
Lagra kontraktets identifierare och varje utfalls identifierare uttryckligen. En beteckning som Ja är meningsfull bara inom ett visst kontrakt. Två närliggande marknader kan båda ha ett Ja-utfall men avse olika trösklar, datum eller källor. Kopplingen bör förbinda strategins villkor med det exakta utfall som utföraren skickar en order för, med en versionshanterad regelhänvisning som förklarar förhållandet.
Håll köp och försäljning som separata åtgärdsfält. Ett köp ökar den valda positionen och förbrukar nödvändiga kontanter eller säkerheter enligt kontots faktiska mekanik. En försäljning minskar eller ändrar positionen på annat sätt enligt den modell handelsplatsen stöder. Anta inte obegränsad blankning och anta inte att ett ekonomiskt komplement alltid kan uttryckas genom samma operativa åtgärd.
En rekommendation att köpa 120 Nej-enheter bör till exempel förbli ett Nej-köp i instruktionsposten. Systemet kan också beräkna motsvarande riktade exponering mot Ja för riskanalys, men den härledda vyn får inte ersätta den faktiska orderidentiteten. Om adaptern i tysthet gör om den till en Ja-försäljning kan den skapa en instruktion som kontot inte stöder eller ett annat kassaflöde än det riskkontrollen godkände.
Den äldre guiden om att automatiskt köpa Ja- och Nej-andelar på Polymarket ger bakgrund till val av utfall. Ett robust kopplingstest bör avsiktligt använda liknande kontraktsnamn och motsatta sidor. Målet är att bevisa att boten väljer det godkända utfallet och åtgärden, inte bara ger ett pris som ser rimligt ut.
Håll observerade och härledda priser åtskilda
En handelsplats kan rapportera de två utfallens orderböcker direkt eller visa en representation från vilken ett säljpris för motsatt sida härleds. Boten bör dokumentera kopplingen och bevara den ursprungliga observationen. Ett härlett pris bör identifiera den källsida, det pris, den mängd och den tidsstämpel som stöder det. Då kan en granskare undersöka omvandlingen när kontots faktiska åtgärd verkar överraskande.
Kalshis dokumentation om orderböcker beskriver arrayer med köpbud för Ja och Nej och komplementära förhållanden till säljpriser. I ett vanligt endollarsexempel motsvarar ett köpbud för Ja på $0,33 ett säljpris för Nej på $0,67. Förhållandet kan ligga till grund för en beräkning av ett Nej-köp, men gör inte varje visat Ja-värde till ett lämpligt indatavärde. Ett mittpris eller en gammal senaste affär är inte samma sak som det aktuella köpbudet för motsatt sida.
Bevara orderdjup tillsammans med pris. Om källans köpbud bara täcker 40 enheter stöder det härledda säljpriset den mängden på nivån, inte ett obegränsat köp. Ytterligare mängd kräver fler nivåer och en ny beräkning av genomsnittskostnaden. En adapter som härleder rätt pris men kopplar det till fel mängd kan ändå skapa en felaktig rekommendation.
Den relaterade guiden om programvara för oddshandel undersöker normaliserade data mer allmänt. Ett användbart internt format bör ange observationens typ och ursprung. Normalisering gör värden jämförbara bara när den bevarar fakta som behövs för att tolka dem; om sida eller tidsstämpel tas bort kan en prydlig datastruktur bli mindre sanningsenlig än det ursprungliga svaret.
Bevara precision i pris och mängd
Behandla priser och mängder enligt den aktuella handelsplatsens dokumenterade enheter och tillåtna precision. Anta inte att varje marknad använder heltalscent eller hela kontrakt. En decimalsträng som representerar dollar bör inte läsas som ett heltal i cent, och ett mängdfält bör inte avrundas bara för att användargränssnittet visar färre siffror. Adaptern behöver en uttrycklig omräkningsregel med tester vid relevanta gränser.
Använd aritmetik som passar pengar och den nödvändiga precisionen. Binära flyttalsrepresentationer kan ge små avrundningsartefakter, så implementationen bör använda en verifierad decimalmetod eller fixpunktsmetod där det passar. Huvudkravet är deterministisk omräkning och avrundning enligt handelsplatsens faktiska regler. En viss programmeringsteknik räcker inte om dess utdata inte kontrollerats mot priser och mängder som stöds.
Boten bör skilja visningsavrundning från orderavrundning. Att visa ett pris med två decimaler för läsbarhet ger inte tillstånd att skicka det avrundade värdet om den faktiskt tillåtna eller avsedda gränsen skiljer sig. På samma sätt bör en ordermängd som minskats för att uppfylla ett mängdsteg speglas i tillståndet och exponeringsberäkningen. Tyst avrundning kan förändra ekonomin eller lämna en oväntad restposition.
Den äldre genomgången av Kalshis handels-API visar behovet av handelsplatsspecifika adaptrar. Acceptanstesterna bör omfatta värden nära tillåtna steg, minsta mängder och kontogränser. En bot som bara fungerar för bekanta runda tal har inte visat att den korrekt kan bevara hela intervallet av indata som stöds.
Avgiftsredovisning i en Ja–Nej-bot börjar före inlämning
Uppskatta avgifter för den faktiskt övervägda sidan, priset, mängden och genomföranderollen med aktuella marknadsspecifika villkor. Lagra skattningen separat från den slutliga avgift som kontot rapporterar. Skattningen ger underlag för tillståndet; den faktiska avgiften bestämmer slutposten. En avgiftsskillnad bör kunna förklaras utan att originalrekommendationen skrivs om som om den hade perfekt förutseende.
Anta att den fiktiva boten föreslår köp av 120 Nej-enheter till ett genomförbart säljpris på $0,67. Köpkostnaden är $80,40. Anta att uppskattade förvärvsavgifter är $1,60, vilket ger ett totalt åtagande på $82. Med den angivna vanliga utbetalningen betalar en Nej-vinst $120 och ger en vinst på $38, medan en Nej-förlust ger en förlust på $82. Talen bör visas tillsammans med sina antaganden i stället för som en allmän vinstprocent.
Kontots tillstånd bör reservera den högsta tillåtna köpkostnaden och en tillräcklig avgiftsmarginal. Om ordern kan genomföras på flera nivåer upp till ett pristak ska det relevanta högsta åtagandet användas, inte bara det första observerade säljpriset. Avgifter kan också fungera annorlunda för partiella fyllningar eller ändrade genomföranderoller, så policyn bör ta hänsyn till den faktiska avgiftstabellen i stället för att anta ett universellt belopp per enhet.
Polymarkets aktuella avgiftsdokumentation använder marknadsspecifika parametrar. Det är ett skäl att verifiera den tillämpliga avgiftstabellen, inte att kopiera ett standardvärde till varje bot. De hypotetiska $1,60 ovan är ett pedagogiskt indatavärde och beskriver inte en namngiven handelsplats avgift för den mängden eller det priset.
En fullständig orderpost kopplar avsikt till belägg
Orderposter i en handelsbot för Ja och Nej bör bevara rekommendationen, tillståndet, inlämningsförsöket, handelsplatsens orderidentitet och efterföljande fyllningar. Rekommendationen förklarar varför åtgärden övervägdes. Tillståndet avgränsar vad kontot får göra. Inlämningsposten fastställer vad som skickades. Fyllningar fastställer vad som förändrade kontot. Separata steg gör fel lättare att lokalisera.
Varje försök behöver en beständig identitet. Om ett svar försvinner kan boten undersöka försöket i stället för att skapa en ny oförklarad order. Lagra den ursprungliga sidan, åtgärden, mängden och prisgränsen tillsammans med försöket. En återhämtningsprocess bör inte behöva rekonstruera dem från en senare positionsögonblicksbild eller operatörens minne av en instrumentpanelsetikett.
Fyllningsposter behöver stabila genomförandeidentifierare, faktiska mängder, priser och avgifter. Upprepad leverans av samma fyllning ska inte öka positionen två gånger. En delvis fylld order bör behålla sitt ofyllda åtagande tills den slutförts, avvisats eller annullerats med tillräckliga belägg. Kontots riskvy beror både på bekräftade enheter och enheter som fortfarande kan tillkomma.
En handelsbot för binära marknader använder posterna för att upprätthålla avgränsad exponering och avräkningsredovisning. Ja–Nej-adaptern tillför ett särskilt ansvar: varje post måste bevara vilket utfall som innehades och vilken åtgärd som skapade eller minskade det. Rätt mängd på fel sida ger fortfarande fel möjlig utbetalning.
En försäljning måste använda köpbudet för den innehavda sidan
Fortsätt med det fiktiva Nej-köpet som kostade $82 totalt. Anta att kontot senare överväger att sälja alla 120 Nej-enheter till ett genomförbart köpbud på $0,63. Bruttoförsäljningen skulle ge $75,60. Med en antagen försäljningsavgift på $1,20 skulle nettointäkterna vara $74,40, vilket ger en förlust på $7,60 jämfört med anskaffningskostnaden. Beräkningen använder köpbudet för Nej eftersom kontot säljer Nej.
Att använda säljpriset för Ja direkt som försäljningspris vore fel utan den lämpliga granskade omvandlingen. Boten bör hämta eller härleda priset för den faktiska åtgärden, verifiera tillgänglig mängd och tillämpa aktuell avgiftsskattning. En gemensam hjälpfunktion kallad hämta pris är farlig om anroparen inte kan ange om den behöver ett säljpris för köp, ett köpbud för försäljning eller en referens som inte går att handla mot.
En försäljningsrekommendation bör också ange om den stänger hela innehavet eller bara en del. Att sälja 60 av de 120 enheterna lämnar 60 Nej-enheter med villkorad utbetalning. Boten bör inte markera kontraktet som utan position bara för att försäljningsinstruktionen accepterades. Bekräftade försäljningsavslut avgör återstående mängd, och varje öppen rest förblir en del av kontots möjliga framtida tillstånd.
Den relaterade artikeln om handelsbotar för odds förklarar hur noterade format kan normaliseras före utvärdering. Den omräkningen ersätter inte val av orderbokssida efter åtgärd. Ett korrekt omräknat pris för att köpa en sida är fortfarande fel indata för att beräkna vad kontot skulle få genom att sälja den.
Gränser som beaktar sidan behöver tolkas i scenarier
Riskgränser kan använda mängder, bundna pengar eller möjliga förluster, men kopplingen från innehav till scenarier måste respektera kontraktet. För exakt komplementära sidor av en vanlig binär fråga kan lika stora Ja- och Nej-mängder bilda en parad utbetalning enligt de angivna reglerna. Olika mängder lämnar restexponering. Mellan olika kontrakt kanske en skenbar utjämning mellan Ja och Nej inte alls finns.
Anta att ett konto har 120 Nej-enheter och 80 Ja-enheter i samma fiktiva kontrakt. Enligt den enkla modellen bildar 80 enheter par och 40 Nej-enheter förblir riktade. Om Ja vinner får kontot $80; om Nej vinner får det $120. Anskaffningskostnader och avgifter avgör nettoresultatet i varje fall. En nettomängd på minus 40 kan sammanfatta riktningsskillnaden men bör inte ersätta bruttoinnehav eller kassahistorik.
Bruttomängder spelar operativ roll eftersom försäljning eller hantering av varje sida kan kräva separata åtgärder och innehav. En riskpanel som bara visar nettoexponering kan dölja hur mycket kapital som bundits på båda sidor. Den kan också dölja vilka order som fortfarande är aktiva och kan ändra balansen. Behåll bruttoinnehav, parad mängd och restexponering tillgängliga för granskning.
Den äldre guiden om Polymarkets bot-API ger bakgrund till utfallsspecifika kontoposter. Boten bör förklara varje härlett nettomått utifrån faktiska positioner och verifierade utbetalningsförhållanden. En riskmodell blir otillförlitlig när ett bekvämt tal med tecken behandlas som bevis för en utjämning som kontraktsvillkoren inte stöder.
Order med okänt utfall måste behålla sin ursprungliga sida
Om Nej-köpsbegäran får en timeout bör boten bevara den som ett osäkert Nej-köp med ursprunglig mängd och kostnadsgräns. Den bör inte svara med en Ja-försäljning bara för att åtgärderna kan vara ekonomiskt relaterade i en förenklad modell. En sådan ändring inför en ny kontoåtgärd och kan kräva andra innehav, behörigheter och annan kassahantering.
Undersök originalförsöket genom order- och kontoposter som stöds. Om det fylldes delvis ska bekräftade Nej-enheter tas med och varje olöst rest behållas. Om det avvisades ska relevant outnyttjad reservation släppas. Om det förblir öppet ska man avgöra om det ska behållas eller annulleras enligt aktuell strategi. Besluten bör använda den ursprungliga identiteten och faktiska kontobelägg.
En kapplöpning med annulleringen kan ändra sidans saldo. Anta att 50 Nej-enheter är bekräftade när en återkallelse begärs och att ytterligare 15 fylls innan annulleringen slutförs. Positionen är 65 Nej-enheter, inte 50. Om boten redan hade skickat en motverkande order baserad på den tidigare mängden behöver den resulterande portföljen en ny avstämning. Systemet bör inte tvinga den till avsedd nettoexponering genom att redigera ett sammanfattningsfält.
Pröva fallen med ett avsiktligt asymmetriskt startkonto, till exempel ett litet Ja-innehav och en större Nej-köpsbegäran. Det gör sidfel lättare att upptäcka än ett test som börjar från noll i varje fält. Det förväntade resultatet bör ange bruttoinnehav, kontanter och möjlig utbetalning, inte bara en slutlig mängd med tecken.
Stäm av avgifter och avräkning utan att tappa granskningsspåret
Efter genomförandet ska uppskattade avgifter i resultatberäkningar ersättas med faktiska kontoavgifter, medan originalskattningen behålls för granskning. Om ytterligare en förvärvsavgift på $0,20 senare bekräftas i försäljningsexemplet stiger total anskaffningskostnad från $82 till $82,20. Med samma nettoförsäljning på $74,40 blir förlusten $7,80. Justeringen bör ha en identifierbar källa och tidpunkt.
Använd vid avräkning den slutliga återstående mängden på varje sida. En Nej-position som sålts helt har ingen återstående Nej-utbetalning, även om den ursprungliga prognosen senare visar sig riktig. En delvis såld position avräknas bara för de behållna enheterna. Den slutliga huvudboken bör koppla ihop det officiella utfallet, innehavda mängder, krediterade belopp och eventuell undantagshantering som anges i kontraktet.
Skilj en ändrad prognos från en redovisningskorrigering. En ny skattning ändrar inte redan betalda pengar, och en avgiftsjustering ändrar inte vilket utfall kontraktet frågar om. Botens poster bör låta båda ändringarna representeras utan att förvanska den andra. Åtskillnaden hjälper granskaren att förstå varför beräknat värde och slutligt resultat skiljer sig.
Om kontot inte går att stämma av ska avvikelsen bevaras och berörd ny aktivitet begränsas tills den är förstådd. En oförklarad skillnad bör inte gömmas i en övrig vinst eller förlust bara för att avsluta ärendet. Små avvikelser kan avslöja ett upprepat enhetsomräkningsfel eller problem med dubbla fyllningsposter som skulle bli väsentligt vid större storlek.
Jämför uppskattade och faktiska avgifter per åtgärd
En avgiftsgranskning bör identifiera om en skillnad kom från pris, mängd, genomföranderoll eller en felaktig avgiftstabell. Anta att boten skattade en avgift för ett helt omedelbart köp men att en del av ordern låg kvar innan den fylldes. Den faktiska behandlingen beror på aktuella handelsplats- och marknadsregler. Huvudboken bör bevara hur varje fyllning klassificerades i stället för att tilldela varje enhet samma roll utifrån originalavsikten.
Jämförelsen behöver också en konsekvent enhet. En avgift uttryckt som ett kontantbelopp bör inte jämföras direkt med en procentsats av högsta utbetalning eller en marginal per enhet. Räkna om varje mått uttryckligen och behåll det ursprungligen rapporterade värdet. Det hjälper till att skilja ett verkligt fel i kostnadsmodellen från en visning som använder olika nämnare.
Om skattningen var försiktig och faktiska avgifter lägre ska den outnyttjade reserven släppas först när relevanta poster stöder beslutet. Redovisa inte den outnyttjade reserven som intäkt. Den var kapacitet som hölls undan för en möjlig kostnad, inte pengar som tjänats genom handel. Skillnaden hindrar botens skenbara resultat från att förbättras bara för att originalskattningen avsiktligt var försiktig.
Pröva adaptern med fyra åtgärder och två utfall
En användbar acceptansuppsättning omfattar köp av Ja, försäljning av Ja, köp av Nej och försäljning av Nej där det faktiska kontot tillåter varje åtgärd. Verifiera vald orderbokssida, mängd, kassaeffekt och återstående innehav för varje fall. Tillämpa sedan båda vanliga avgörandeutfallen och bekräfta den resulterande utbetalningen. Det täcker mer betydelsefullt beteende än upprepade demonstrationer av ett lyckat Ja-köp.
Lägg till tester för ett härlett pris för motsatt sida, otillräckligt orderdjup, en avgiftsändring och en fördröjd fyllning. Förväntade poster bör bevara den ursprungliga observationen och den normaliserade tolkningen. Om en omräkning använder ett minus motsatt köpbud ska både pris- och mängdkoppling verifieras. Om marknaden använder finare steg ska värden som skulle misslyckas med ett antagande om heltalscent tas med.
Den färdiga boten bör göra ett enkelt påstående möjligt för varje åtgärd: det här kontot köpte eller sålde den här mängden av det här utfallet till dessa faktiska priser, med detta tillstånd, dessa avgifter och denna återstående utbetalningsexponering. Den tydligheten är syftet med automation som beaktar sidan. Den håller programvarans sannolikhetsberäkningar kopplade till de positioner och kassaflöden kontot faktiskt äger.