En arbitragebot för händelsekontrakt behöver hantera perioden när föreslagen kombination bara delvis är verklig. En skanner kan identifiera priser som ser attraktiva ut tillsammans men kontot får enskilda order och fyllningar. En order kan accepteras medan en annan avvisas. En annullering kan komma efter ytterligare fyllning. Ett svar kan försvinna trots att handelsplatsen accepterat begäran. Boten måste beskriva tillstånden utan att låtsas att avsett par redan finns.
Huvudproblemet är samordning under osäkerhet. Reservera kapacitet för båda benen, bevara identiteterna och mät exponeringen som återstår när de inte går framåt tillsammans. De fiktiva exemplen använder uttryckligt förenliga binära utbetalningar på en dollar. De visar genomförandekontroller, inte ett påstående att verklig handel över handelsplatser kan slutföras atomiskt eller att skenbart arbitrage är riskfritt.
Reservationer börjar med ett godkänt par
Genomförandemotorn bör få en granskad pardefinition snarare än två löst relaterade marknadsnamn. Definitionen inkluderar varje handelsplatskontext, kontraktsidentifierare, utfallssida, regelversion och utbetalningssamband. Den bör också ange beaktade undantagsutfall och villkoren som gör kopplingen ogiltig. Ett kontraktspar med olöst innebörd hör till analys, inte utförarens redo-kö.
Kandidatinstruktionen lägger till aktuella mängder, pristak, avgiftsuppskattningar och observationstider. Den anger maximal acceptabel kombinerad kostnad och mängden oparad exponering kontot tål. Gränserna är skilda. Ett par kan vara överkomligt om komplett medan första benet skapar för stor tillfällig riktad exponering. Båda frågor behöver svar före varje orderinskickning.
Använd en beständig fallidentifierare för att koppla definition, rekommendation, auktorisering och slutliga order. Varje ben bör också ha egen stabil instruktionsidentitet. Paridentifieraren förklarar varför order hör ihop; benidentifierarna låter systemet undersöka en enskild inskickning. Ingen bör ersättas bara för att en nätverksbegäran når tidsgränsen eller processen startar om.
Den äldre artikeln om arbitragebotar för prognosmarknader ger det bredare sambandet mellan upptäckt möjlighet och handelsprocess. Denna utformning börjar där utbetalningsanalysen redan granskats. Uppgiften är att hålla kontots faktiska kombination synlig medan order går genom olika tillstånd.
Reservera lokala medel och gemensam riskkapacitet
Anta att ett fiktivt par kräver 500 A Ja till högst 0,37 dollar och 500 B Nej till högst 0,60 dollar. Anta att reglerna gör en enhet av varje till en sammanlagd utbetalning på en dollar i modellerade utfall. Köpbeloppen skulle vara 185 och 300 dollar. Med hypotetiska avgifter på 3 och 4 dollar är total förvärvskostnad 492 dollar och lämnar 8 dollar under antagen utbetalning på 500 dollar.
Boten behöver 188 dollar tillgängliga för A och 304 för B under antagandena. Om benen använder separata konton räcker inte 492 dollar någonstans i hela portföljen. Varje konto behöver egen användbar kapacitet före genomförande. Reservationen bör inkludera lämpliga avgifter och extra återhämtningsbuffert vald av operatören. Bufferten är en kontrollpolicy, inte del av prognostiserad vinst om den inte faktiskt spenderas.
Reservera relevant händelseexponering liksom kassa på portföljnivå. Flera kandidatpar kan bero på samma händelse eller samma handelsplats för andra benet. Om varje fall reserverar oberoende utan gemensamma gränskontroller kan för många ofärdiga första ben ackumuleras. En gemensam risktjänst eller annan konsekvent samordning måste hindra fallen från att göra anspråk på samma återstående kapacitet.
Reservationer bör bestå genom osäkerhet. En order avvisad med auktoritativ bekräftelse kan frigöra oanvänt belopp. En order med saknat svar kan inte det. En omstart bör läsa in olösta reservationer före nya fall. Annars kan programmet se ut att ha ny budget medan kontona fortfarande har åtaganden från föregående session.
Välj genomförandeföljd avsiktligt
Att skicka båda benen nästan samtidigt minskar viss sekvensfördröjning men garanterar inte samtidig acceptans eller genomförande. Ett ben först kan förenkla samordning men skapa en period av känd riktad exponering. Systemet bör välja följd utifrån observerad likviditet, handelsplatsbeteende och tillåten kontoexponering och sedan utvärdera valets resultat i stället för att kalla det implementeringsdetalj.
En vanlig frestelse är svårare benet först. Det kan vara rimligt i ett testat flöde men behöver ett definierat svar om enklare benet försvinner. Ett annat angreppssätt använder en vilande order på en sida och reagerar på fyllningar. Det kan förbättra offererat köppris men öka risken att kompletterande pris ändras före svaret. Relevant mått är slutförd kombination och dess ofärdiga fall.
Enskilda orderinstruktioner skapar inte en transaktion över handelsplatser. En allt-eller-inget-instruktion kan exempelvis begränsa ett ben där den stöds men tvingar inte annan handelsplats att fylla motsvarande order. Polymarkets dokumentation om orderlivscykel beskriver flera individuella orderbeteenden. Boten måste verifiera faktiskt beteende för varje ben och undvika att utsträcka lokal garanti till hela paret.
Dokumentera vald följd i fallposten. Registrera när varje auktorisering skapades, varje begäran skickades och vilken information som fanns före andra inskickningen. Beläggen möjliggör senare jämförelse av sekvenspolicyer. Utan dem kan ett lyckat par dölja samma tidssvaghet som orsakar dyrt delvis genomförande nästa gång.
Följ mängder i varje steg
Skilj begärda, accepterade, fyllda, annullerade och fortsatt osäkra mängder för varje ben. Talen besvarar olika frågor. Begärd mängd uttrycker avsikt. Fylld mängd fastställer position. Öppen mängd kan fortfarande öka positionen. Osäker mängd representerar exponering lokalsystemet ännu inte löst. En samlad slutförandeprocent kan dölja återstående risks riktning och storlek.
Parad mängd är mängden där nödvändiga positioner faktiskt förvärvats i förenliga proportioner. I det enkla ett-till-ett-exemplet är parad mängd 300 och omatchad A-mängd 200 om A har 500 fyllda och B 300. Om ett mer komplext utbetalningssamband kräver annat förhållande måste matchningsberäkningen följa det granskade förhållandet i stället för att anta likhet.
Håll mängdberäkning oberoende av kassasaldon. Saldoändring kan inkludera avgifter, överföringar eller orelaterad handel och ersätter dåligt fyllningsposter. Lagra varje fyllnings identifierare, sida, mängd och pris och ta bort dubblettleveranser av samma fyllning. En återspelad händelse bör bekräfta befintlig information, inte skapa en andra positionspost.
Den äldre guiden till Kalshi-arbitragebotar kan rama in kontoposter för en handelsplatsspecifik implementering. Huvudregeln är att parslutförande måste härledas från faktiska benmängder. En positiv kombinerad offert, inskickad sats eller två bekräftade begäranden fastställer inte positionen ensam.
Delfyllningar skapar ett nytt beslut
Fortsätt exemplet med alla 500 A fyllda för 0,37 dollar men bara 300 B för 0,60. Köpbeloppen är 185 och 180 dollar, totalt 365 före avgifter. Tre hundra enheter bildar kompletta par som kostar 291 dollar före avgifter. Återstående 200 A kostar 74 dollar och har riktad exponering. Ursprungligt prognostiserat netto på 8 dollar för 500 kompletta par beskriver inte längre kontotillståndet.
Boten bör sluta utvärdera fallet bara efter ursprungligt möjlighetspoängtal. Den behöver nu ett återhämtningsbeslut med aktuella offerter och uttryckliga gränser. Kan ytterligare 200 B köpas inom auktoriserad totalkostnad? Kan omatchade A säljas inom tillåten förlust? Tillåts tillfälligt innehav och hur länge? Varje alternativ bör använda faktisk befintlig position och aktuellt genomförbara mängder.
Anta att operatörens skriftliga regel tillåter minskning av omatchade A vid köpkurs minst 0,34 dollar efter bekräftad annullering av återstående B-order. Försäljning av 200 A där ger 68 dollar. Kontot håller sedan 300 kompletta par som betalar 300 dollar enligt antagandena. Sammanlagda intäkter är 368 mot köpbelopp 365 dollar och lämnar 3 dollar före avgifter. Om faktiska totalavgifter för vägen är 5 dollar blir slutresultatet förlust på 2 dollar.
Förlusten bevisar inte att beräkningen för en helt slutförd parkostnad på 492 dollar var fel. Den visar att avsett genomförande inte skedde och återhämtningen kostade. Huvudboken bör bevara båda beräkningar. Att bara utvärdera gynnsamma kompletta par och utesluta återhämtade delfall skulle överdriva genomförandepolicyns användbarhet.
En inskickningstimeout måste behålla sin identitet
När en begäran når tidsgränsen vet boten att lokal kommunikation misslyckades. Den vet inte nödvändigtvis om handelsplatsen accepterade ordern. Flytta benet till osäkert tillstånd, behåll reservationen och fråga efter stödda order- och kontoposter. Använd ursprungliga klient- eller handelsplatsidentifierare där de finns. Om posterna inte löser försöket genast förblir osäkerheten del av exponeringsberäkningen.
Skapa inte ny order bara för att önskad mängd ännu inte syns i lokal position. Ursprungsordern kan vara vilande, delvis fylld eller väntande i ett handelsplatsspecifikt bearbetningssteg. En andra instruktion kan duplicera avsedd mängd. I parade system kan ett ben bli överfyllt även efter att andra sidan slutförts och ett nominellt matchat fall åter bli riktat exponerat.
Återhämtning i en arbitragebot för händelsekontrakt behöver ett eskaleringsvillkor. Efter definierad period eller visst fel kan systemet inaktivera nya fall i berört konto och begära operatörsgranskning. Det är ett kontrollsvar på saknade belägg, inte ett påstående att handelsplatsen tappat ordern. Posten bör ange exakt vad som är okänt och vilka frågor eller kontoögonblicksbilder som granskats.
Uppdatera ursprungsfallet när försöket till sist löses i stället för att dölja det bakom ersättningspost. Frigör oanvänd reservation om det avvisades. Inför fyllningar och räkna om matchad mängd om det fylldes. Avgör enligt aktuellt falltillstånd om det ska behållas eller annulleras om det förblir öppet. Varje utfall bör bevara kopplingen till ursprunglig auktorisering.
Annullering och ersättning behöver en egen gräns
Annullering reverserar inte redan skedda fyllningar. Den fastställer inte heller att ingen fyllning skedde medan annulleringsbegäran var på väg. Boten bör bevaka benet tills tillräckliga auktoritativa belägg fastställer slutligt genomförd mängd och mängden som inte längre kan genomföras. Omedelbar frigivning av hela reservationen efter annulleringsbegäran kan underskatta åtagandet.
En ersättningsorder ger liknande fråga. Om gammal order fortfarande kan vara aktiv kan hela avsedda mängden på nytt tillfälligt fördubbla möjlig fyllning. Utföraren behöver dokumenterad ersättningspolicy förenlig med faktiskt handelsplatsbeteende. Den kan kräva bekräftelse före ersättning eller reservation för stödd överlappning. Den bör aldrig förlita sig på att lokalt gränssnitt döljer gammal order som bevis för borttagning på handelsplatsen.
I exemplet 500 mot 300 kan ytterligare 40 B fyllas under annullering. Matchad mängd blir 340 och omatchad A sjunker till 160. En återhämtningsförsäljning på 200 A från tidigare ögonblicksbild skulle överkorrigera och lämna överskottsexponering i B. Återhämtningsbeslutet måste därför använda avstämt mängdtillstånd eller uttryckligen räkna med kvarvarande osäkerhet.
Den relaterade artikeln om handelsbotar för händelsemarknader undersöker avbrott och planerade ändringar bredare. Parat genomförande lägger till ett krav: en kontrollåtgärd på ett ben kan ändra vad som bör hända på det andra. Systemet måste samordna uppdateringar genom gemensamt falltillstånd i stället för att låta benen fungera som orelaterade handelsprogram.
Bevara återhämtningsbudget utan att jaga slutförande
En återhämtningsbudget definierar extra kostnad eller förlust som systemet får acceptera för att minska ofärdig exponering. Den bör skiljas från ursprunglig köptröskel. Kontot kan rationellt acceptera begränsad förlust efter delfyllning för att undvika större händelserisk men behörigheten bör vara uttrycklig. Annars kan boten motivera nästan varje pris som slutförande av arbitrage.
Sätt budgeten i granskningsbara termer: maximal omatchad förvärvskostnad, maximal extra slutförandekostnad, maximal tillåten minskningsförlust och villkor för mänskligt omdöme. Ett pristak för andra benet kan räknas om från faktisk första-benskostnad och tillåtet utfall. Beräkningen bör inkludera redan uppkomna faktiska avgifter och försiktiga uppskattningar för återstående åtgärd.
En budget är inte en instruktion att använda hela utrymmet. Jämför alternativ med aktuella genomförbara mängder. Om annullering och liten minskning återställer en acceptabel position behöver systemet inte tvinga fram ursprungsstorleken. Om inget alternativ passar godkända gränser ska det pausa och tydligt visa olöst position. Kontots återstående risk bör synas även när boten inte kan lösa den automatiskt.
Den äldre diskussionen om Polymarket-automatiserade arbitragebotar ger sammanhang för separation av upptäckt och kontrollerad handling. Återhämtningslogik förtjänar egen utvärderingsdatamängd eftersom den används under andra förhållanden än vanligt köp. Beteende som fungerar i lugna ögonblicksbilder kan fallera när likviditet försvinner precis vid första benets fyllning.
Innehav kan ackumuleras över flera fall
En bot kan driva många par samtidigt men kontot upplever deras samlade innehav. Två ofärdiga fall kan lämna exponering mot samma utfall trots olika paridentifierare. Aggregera positioner och öppna åtaganden efter händelse och relevant ogynnsamt scenario. Anta inte att separata fallposter skapar oberoende riskgränser.
En marknadsgarant för händelsekontrakt använder innehav för vidare offertbeslut. En parad bot gynnas av samma medvetenhet när ofärdiga ben återstår på kontot. Nya fall kan minska befintlig obalans, öka den eller skapa annan exponering vid undantagsutfall. Riskspärren bör utvärdera resulterande portfölj i stället för varje föreslaget par som automatiskt neutralt.
Om boten också deltar i marknadsgaranthandel med händelsekontrakt hör vilande offerter till samma exponeringsmodell. En likviditetsoffert kan fyllas medan arbitragemotorn reserverar för andra benet. Separata budgetar som ignorerar varandra kan båda godkännas lokalt och misslyckas på kontonivå. Gemensamma reservationer och konsekvent avstämning behövs även när strategierna har olika mål.
Periodisk avstämning bör jämföra samlad lokal modell med auktoritativa positioner, order och avgifter. Ett fall kan märkas operativt stängt först när order lösts och återstående position tilldelats korrekt. Om en avsiktlig restposition överförs till annan strategi ska ansvarsöverföringen registreras. Att ta bort fallet från skärmen bör inte ta bort risken från huvudboken.
Testa fallen som skulle ändra beslutet
Använd incidentåterspelningar som prövar samordning, inte bara lyckad orderinskickning. Ett test bör acceptera A och avvisa B. Ett annat delvis fylla B under annullering. Ett tredje leverera samma fyllning två gånger. Ett fjärde starta om efter inskickad begäran men före registrerat svar. Förväntat resultat bör ange mängder, reservationer, tillåtna nästa åtgärder och nödvändig paus.
Verifiera delfyllningsexemplets beräkning oberoende: spenderade 365 dollar, återvunna 68 dollar från minskning av 200 omatchade A, mottagna 300 dollar från kvarvarande förenliga par och 5 dollar i antagna faktiska avgifter ger förlust på 2 dollar. Testet bör inte kalla fallet ett lönsamt par på 500 enheter bara för att det var ursprunglig rekommendation. Det bör bevara skälet till skillnaden från planen.
Testa också beslutet att inte börja. Avvisa par med felmatchade regler, otillräcklig lokal finansiering, gammalt djup eller olöst kontotillstånd. Avvisandena ingår i botens avsedda beteende. Ett system som bara klarar aktiva genomförandetester kan ändå vara osäkert eftersom det aldrig visat respekt för villkoren där genomförande bör undanhållas.
Slutgranskningen bör kunna återskapa varje fall från godkänt utbetalningssamband till avstämt kontoresultat. En bot med parade ben är användbar när den synliggör ofullständiga kombinationer, begränsar följderna och bevarar tillräckliga belägg för att förklara återhämtning. Det är den praktiska automatiseringsstandarden i en process där två attraktiva priser inte garanterar två slutförda affärer.