Arbitrážní bot pro kontrakty na události potřebuje spravovat období, kdy je navržená kombinace skutečná jen částečně. Skener může identifikovat ceny vypadající společně přitažlivě, ale účet přijímá jednotlivé objednávky a vyplnění. Jedna objednávka může být přijata, zatímco jiná je odmítnuta. Zrušení může dorazit po dalším vyplnění. Odpověď může zmizet, i když místo obchodování požadavek přijalo. Bot musí tyto stavy popisovat bez předstírání, že zamýšlený pár již existuje.

Ústředním problémem návrhu je koordinace v nejistotě. Rezervujte kapacitu potřebnou pro obě části, zachovávejte jejich identity a měřte expozici zbývající, když nepostupují společně. Zdejší fiktivní příklady používají výslovně slučitelné binární výplaty jednoho dolaru. Ilustrují kontroly provádění, nikoli tvrzení, že skutečný obchod napříč místy obchodování lze provést atomicky nebo že zdánlivá arbitráž nemá riziko.

Rezervace arbitrážního bota kontraktů na události začínají schváleným párem

Systém provádění by měl přijímat posouzenou definici páru místo dvou volně souvisejících názvů trhů. Definice zahrnuje kontext každého místa obchodování, identifikátor kontraktu, stranu výsledku, verzi pravidel a vztah výplat. Měla by také uvádět zvažované výjimečné výsledky a podmínky zneplatňující mapování. Pár kontraktů, jehož význam zůstává nevyřešený, patří do výzkumu, nikoli do připravené fronty vykonávající komponenty.

Kandidátní pokyn přidává aktuální množství, cenové stropy, odhady poplatků a časy pozorování. Pojmenovává maximální přijatelný kombinovaný náklad a množství nespárované expozice, které je účet připraven tolerovat. Tyto limity jsou odlišné. Pár může být při dokončení finančně dostupný, zatímco jeho první část vytváří pro účet příliš velkou dočasnou směrovou expozici. Obě otázky potřebují odpověď před jakýmkoli odesláním objednávky.

Používejte trvalý identifikátor případu k propojení definice, doporučení, povolení a konečných objednávek. Každá část by měla mít také vlastní stabilní identitu pokynu. Identifikátor páru vysvětluje, proč objednávky patří k sobě; identifikátory částí umožňují systému prozkoumat jednotlivé odeslání. Ani jeden by neměl být nahrazen jen proto, že síťovému požadavku vyprší časový limit nebo proces restartuje.

Starší článek o arbitrážním botu pro predikční trhy poskytuje širší vztah zjištěné příležitosti a obchodního postupu. Tento návrh začíná v okamžiku, kdy analýza výplat již byla posouzena. Jeho úkolem je zajistit viditelnost skutečné kombinace účtu při pohybu objednávek různými stavy.

Rezervujte místní prostředky a sdílenou kapacitu rizika

Předpokládejte, že fiktivní pár požaduje 500 jednotek A Ano za nejvýše 0,37 $ a 500 jednotek B Ne za nejvýše 0,60 $. Předpokládejte, že pravidla činí z jedné jednotky každé části kombinovanou výplatu jednoho dolaru v modelovaných výsledcích. Nákupní částky by činily 185 $ a 300 $. S hypotetickými poplatky 3 $ a 4 $ je celkový pořizovací náklad 492 $ a do předpokládané výplaty 500 $ zbývá 8 $.

Bot potřebuje podle těchto předpokladů dostupných 188 $ pro A a 304 $ pro B. Pokud části používají oddělené účty, existence 492 $ někde v celkovém portfoliu nestačí. Každý účet potřebuje před provedením vlastní použitelnou kapacitu. Rezervace by měla zahrnovat příslušné poplatky a případnou další rezervu obnovy zvolenou operátorem. Rezerva je kontrolním pravidlem, nikoli součástí předpokládaného zisku, pokud není skutečně utracena.

Na úrovni portfolia rezervujte relevantní expozici vůči události i hotovost. Několik kandidátních párů může záviset na stejné události nebo stejném místě obchodování druhé části. Povolení každému případu nezávisle rezervovat prostředky bez kontroly sdílených limitů může vytvořit nadměrné nahromadění nedokončených prvních částí. Společná riziková služba nebo jiná konzistentní metoda koordinace musí zabránit tomu, aby tyto případy nárokovaly stejnou zbývající kapacitu.

Rezervace by měly přetrvávat během nejistoty. Objednávka odmítnutá s autoritativním potvrzením může uvolnit nevyužitou částku. Objednávka s chybějící odpovědí nemůže. Restart procesu by měl před přijímáním nových případů znovu načíst nevyřešené rezervace. Jinak se program může tvářit, že má nový rozpočet, zatímco účty stále obsahují závazky vytvořené během předchozího sezení.

Zvolte posloupnost provádění záměrně

Odeslání obou částí téměř současně omezuje některá zpoždění pořadí, ale nezaručuje současné přijetí ani provedení. Odeslání jedné části první může zjednodušovat koordinaci, ale vytváří období známé směrové expozice. Systém by měl volit posloupnost podle pozorované likvidity, chování míst obchodování a povolené expozice účtu a poté hodnotit výsledky volby, nikoli ji považovat za implementační detail.

Běžným pokušením je provést obtížnější část jako první. To může být rozumné pro otestovaný postup, ale stále to potřebuje definovanou reakci při zmizení snazší části. Jiný přístup používá čekající objednávku na jedné straně a reaguje na její vyplnění. Může zlepšovat kotovanou vstupní cenu a zároveň zvyšovat šanci změny doplňkové ceny před reakcí. Relevantní metrikou je dokončená kombinace a její nedokončené případy.

Pokyny provedení jedné objednávky nevytvářejí transakci napříč místy obchodování. Například pokyn vše nebo nic může omezit jednu část na místě, které jej podporuje, ale nenutí jiné místo vyplnit odpovídající objednávku. Dokumentace Polymarket k životnímu cyklu objednávky popisuje několik chování jednotlivých objednávek. Bot musí ověřit skutečné podporované chování každé části a vyhnout se rozšíření místní záruky na celý pár.

Zdokumentujte zvolenou posloupnost v záznamu případu. Zaznamenejte, kdy bylo vytvořeno každé povolení, kdy byl odeslán každý požadavek a jaké informace byly dostupné před druhým odesláním. Tyto podklady umožňují pozdější porovnání pravidel pořadí. Bez nich může úspěšný pár skrývat stejnou slabinu načasování, která v dalším případě způsobí nákladné částečné provedení.

Sledujte množství v každé fázi

U každé části rozlišujte požadovaná, přijatá, vyplněná, zrušená a stále nejistá množství. Tato čísla odpovídají na různé otázky. Požadované množství vyjadřuje záměr. Vyplněné množství ustavuje pozici. Otevřené množství ji stále může zvýšit. Nejisté množství představuje expozici, kterou místní systém dosud nevyřešil. Sloučení do jediného procenta dokončení může skrývat směr a velikost zbývajícího rizika.

Spárované množství je množství, pro které byly požadované pozice skutečně získány ve slučitelných poměrech. V jednoduchém příkladu jedna ku jedné, pokud má A vyplněno 500 a B 300, spárované množství je 300 a nespárované množství A 200. Pokud složitější výplata vyžaduje jiný poměr, výpočet párování musí dodržovat tento posouzený poměr, nikoli předpokládat rovnost.

Udržujte výpočet množství nezávislý na peněžních zůstatcích. Změna zůstatku může zahrnovat poplatky, převody nebo nesouvisející obchody, takže špatně nahrazuje záznamy vyplnění. Ukládejte identifikátor, stranu, množství a cenu každého vyplnění a odstraňujte duplicity opakovaného doručení stejného vyplnění. Přehraná událost by měla potvrzovat existující informace, nikoli vytvářet druhý záznam pozice.

Starší průvodce arbitrážním botem Kalshi může pomoci vymezit záznamy účtu pro implementaci konkrétního místa obchodování. Obecným pravidlem je, že dokončení páru musí být odvozeno ze skutečných množství částí. Kladná kombinovaná kotace, odeslaná dávka nebo dva potvrzené požadavky samy o sobě nemohou doložit dokončenou pozici.

Částečná vyplnění arbitrážního bota kontraktů na události vytvářejí nové rozhodnutí

Pokračujte ve fiktivním příkladu se všemi 500 jednotkami A vyplněnými za 0,37 $, ale pouze 300 jednotkami B vyplněnými za 0,60 $. Nákupní částky jsou 185 $ a 180 $, celkem 365 $ před poplatky. Tři sta jednotek tvoří úplné páry s nákladem 291 $ před poplatky. Zbývajících 200 jednotek A stojí 74 $ a má směrovou expozici. Původní předpokládaný čistý výsledek 8 $ pro 500 úplných párů již tento stav účtu nepopisuje.

Bot by měl přestat hodnotit případ výhradně podle původního skóre příležitosti. Nyní potřebuje rozhodnutí o obnově s aktuálními kotacemi a výslovnými limity. Lze dalších 200 jednotek B získat v povoleném celkovém nákladu? Lze nespárované jednotky A prodat v povolené ztrátě? Je dočasné ponechání dovoleno a jak dlouho? Každá možnost by měla používat skutečnou existující pozici a aktuálně dosažitelná množství.

Předpokládejte, že písemné pravidlo operátora povoluje zmenšit nespárované A při nákupní nabídce ne nižší než 0,34 $ po potvrzeném zrušení zbývající objednávky B. Prodej 200 jednotek A za tuto cenu vytváří 68 $. Účet pak drží 300 úplných párů, které podle předpokladů příkladu vyplácejí 300 $. Kombinovaný příjem je 368 $ vůči nákupní částce 365 $ a zbývají 3 $ před poplatky. Pokud skutečné celkové poplatky této cesty činí 5 $, konečným výsledkem je ztráta 2 $.

Tato ztráta není podkladem pro tvrzení, že aritmetika plně dokončeného páru za 492 $ byla chybná. Ukazuje, že zamýšlené provedení nenastalo a obnova měla náklad. Evidence by měla zachovat oba výpočty. Hodnocení pouze dokončených příznivých párů při vyloučení obnovených částečných případů by nadhodnocovalo užitečnost pravidel provádění.

Odeslání s vypršeným limitem si musí zachovat identitu

Když požadavku vyprší časový limit, bot ví, že místní komunikace selhala. Nemusí vědět, zda místo obchodování objednávku přijalo. Přesuňte část do nejistého stavu, zachovejte rezervaci a dotazujte podporované záznamy objednávek a účtu. Používejte původní klientské identifikátory nebo identifikátory místa obchodování, pokud jsou dostupné. Pokud tyto záznamy nedokážou pokus okamžitě vyřešit, nejistota zůstává součástí výpočtu expozice.

Nevytvářejte novou objednávku jen proto, že požadované množství ještě není viditelné v místní pozici. Původní objednávka může čekat v knize, být částečně vyplněná nebo čekat ve fázi zpracování specifické pro místo obchodování. Druhý pokyn může zdvojit zamýšlené množství. V párovém systému to může vytvořit nadměrně vyplněnou část i po dokončení druhé strany a změnit nominálně spárovaný případ zpět na směrovou expozici.

Obnova arbitrážního bota kontraktů na události potřebuje podmínku eskalace. Po definované době nebo konkrétní chybě může systém zakázat nové případy v dotčeném účtu a požádat o přezkum operátorem. Jde o kontrolní reakci na chybějící podklady, nikoli prohlášení, že místo obchodování objednávku ztratilo. Záznam by měl přesně uvádět, co zůstává neznámé a které dotazy nebo snímky účtu byly prozkoumány.

Po konečném vyřešení pokusu aktualizujte původní případ, nikoli jej skrývejte za náhradní záznam. Pokud byl odmítnut, uvolněte nevyužitou rezervaci. Pokud se vyplnil, zahrňte vyplnění a přepočítejte spárované množství. Pokud zůstává otevřený, rozhodněte podle aktuálního stavu případu, zda jej ponechat nebo zrušit. Každý výsledek by měl zachovávat vazbu na původní povolení.

Rušení a nahrazování potřebují vlastní hranici

Zrušení objednávky nevrací již nastalá vyplnění. Ani nedokládá, že žádné vyplnění nenastalo během přenosu požadavku na zrušení. Bot by měl část dál sledovat, dokud nemá dost autoritativních podkladů k určení konečného provedeného množství a množství, které již nelze provést. Uvolnění celé rezervace okamžitě po odeslání zrušení může podhodnocovat závazek účtu.

Náhradní objednávka přináší podobný problém. Pokud stará objednávka stále může být aktivní, opětovné odeslání celého zamýšleného množství může dočasně zdvojnásobit množství schopné vyplnění. Vykonávající komponenta potřebuje zdokumentovaná pravidla nahrazování konzistentní se skutečným chováním místa obchodování. Mohou vyžadovat potvrzení před nahrazením nebo zachování rezervy pro jakýkoli podporovaný překryv. Nikdy by neměla spoléhat na skrytí staré objednávky místním rozhraním jako na důkaz jejího odstranění místem obchodování.

V příkladu 500 proti 300 předpokládejte dalších 40 jednotek B vyplněných během rušení. Spárované množství se mění na 340 a nespárované A klesá na 160. Prodej 200 jednotek A při obnově podle dřívějšího snímku by případ přehnaně napravil a ponechal nadměrnou expozici B. Rozhodnutí o obnově proto musí používat ověřený a sladěný stav množství nebo výslovně zohledňovat zbývající nejistotu.

Související článek o obchodním botu pro trhy událostí zkoumá přerušení a plánované změny šířeji. Párové provádění přidává konkrétní požadavek: kontrolní akce na jedné části může změnit, co by mělo nastat na druhé. Systém musí tyto aktualizace koordinovat sdíleným stavem případu, nikoli nechat každou část fungovat jako nesouvisející obchodní program.

Rušení a nahrazování potřebují vlastní hraniciOne leg fillsOther leg partialCancel remainderReduce unmatched unitsAccount for costsTRADING FIELD NOTESEDUCATIONAL RESOURCE
Částečný pár se stává samostatným případem obnovy s vlastními přípustnými náklady a akcemi.

Zachovávejte rozpočet obnovy bez honby za dokončením

Rozpočet obnovy definuje, kolik dalšího nákladu nebo ztráty smí systém přijmout ke snížení nedokončené expozice. Měl by být odlišný od původního vstupního prahu. Účet může po částečném vyplnění racionálně přijmout omezenou ztrátu, aby se vyhnul držení většího rizika události, ale oprávnění by mělo být výslovné. Jinak může bot odůvodnit téměř jakoukoli cenu tvrzením, že dokončuje arbitráž.

Stanovte rozpočet v podmínkách přezkoumatelných operátorem: maximální nespárovaný pořizovací náklad, maximální další náklad dokončení, maximální povolená ztráta při zmenšení a podmínky vyžadující lidský úsudek. Cenový strop druhé části lze přepočítat ze skutečného nákladu první části a povoleného výsledku. Výpočet by měl zahrnovat již vzniklé skutečné poplatky a konzervativní odhady zbývající akce.

Rozpočet není pokynem utratit celou povolenou částku. Porovnávejte dostupné alternativy pomocí aktuálně dosažitelných množství. Pokud zrušení a malé zmenšení obnoví přijatelnou pozici, systém nemusí vynucovat dokončení původní velikosti. Pokud žádná alternativa nesplňuje schválené hranice, pozastavte postup a jasně zpřístupněte nevyřešenou pozici. Zbývající riziko účtu by mělo být viditelné, i když je bot nedokáže automaticky vyřešit.

Starší pojednání o automatizovaném arbitrážním botu Polymarket nabízí kontext oddělení detekce a řízené akce. Logika obnovy zasluhuje vlastní soubor dat hodnocení, protože je volána za podmínek odlišných od běžného vstupu. Chování fungující v klidných snímcích může selhat, když likvidita zmizí právě při vyplnění první části.

Zásoba pozic se může hromadit napříč několika případy

Bot může provozovat mnoho párů najednou, ale účet zažívá jejich kombinovanou zásobu pozic. Dva nedokončené případy mohou ponechat expozici vůči stejnému výsledku, i když se identifikátory párů liší. Agregujte pozice a otevřené závazky podle události a relevantního nepříznivého scénáře. Nepředpokládejte, že samostatné záznamy případů vytvářejí nezávislé limity rizika.

Tvůrce trhu kontraktů na události používá zásobu pozic k formování dalších rozhodnutí o kotacích. Párový bot těží ze stejného povědomí, když na účtu zůstávají nedokončené části. Nové případy mohou existující nerovnováhu snížit, zvýšit nebo vytvářet jinou expozici při výjimečných výsledcích. Riziková kontrola by měla hodnotit výsledné portfolio, nikoli považovat každý navržený pár za automaticky neutrální.

Pokud se bot účastní také tvorby trhu kontraktů na události, jeho čekající kotace patří do stejného modelu expozice. Kotace vytvořená pro poskytování likvidity se může vyplnit, zatímco arbitrážní systém rezervuje kapacitu pro druhou část. Oddělené rozpočty vzájemně se ignorující mohou oba místně projít a selhat na úrovni účtu. Sdílené rezervace a konzistentní ověřování a sladění jsou nutné, i když strategie mají různé cíle.

Pravidelné ověřování a sladění by mělo porovnávat kombinovaný místní model s autoritativními pozicemi, objednávkami a poplatky. Případ lze označit jako provozně uzavřený až po vyřešení jeho objednávek a správném přiřazení zbývající pozice. Pokud je záměrná zbytková pozice převedena do jiné strategie, zaznamenejte toto předání odpovědnosti. Odstranění případu z obrazovky by nemělo odstranit jeho riziko z evidence.

Testujte případy, které by změnily rozhodnutí

Používejte přehrání incidentů procvičující koordinaci, nikoli jen úspěšné odeslání objednávky. Jeden test by měl přijmout A a odmítnout B. Jiný by měl částečně vyplnit B během rušení. Třetí by měl doručit stejné vyplnění dvakrát. Čtvrtý by měl restartovat proces po odeslaném požadavku před zaznamenáním odpovědi. Očekávaný výsledek by měl určovat množství, rezervace, povolené další akce a případné požadované pozastavení.

U propočteného případu částečného vyplnění nezávisle ověřte aritmetiku: vynaložených 365 $, získaných zpět 68 $ ze zmenšení 200 nespárovaných jednotek A, přijatých 300 $ ze zbývajících slučitelných párů a 5 $ předpokládaných skutečných poplatků vytváří ztrátu 2 $. Test by neměl případ označovat jako ziskový pár 500 jednotek jen proto, že to bylo původní doporučení. Měl by zachovat důvod odlišnosti výsledku a plánu.

Testujte také rozhodnutí nezačít. Odmítněte pár s nesouladnými pravidly, nedostatečným místním financováním, zastaralou hloubkou nebo nevyřešeným stavem účtu. Tato odmítnutí jsou součástí zamýšleného chování bota. Systém procházející jen testy aktivního provádění může stále být nebezpečný, protože nikdy neprokázal respektování podmínek, za kterých by se provedení nemělo uskutečnit.

Konečný přezkum by měl dokázat rekonstruovat každý případ od schváleného vztahu výplat po ověřený a sladěný výsledek účtu. Bot s párovými částmi je užitečný, když činí neúplné kombinace výslovnými, omezuje jejich důsledky a zachovává dost podkladů pro vysvětlení obnovy. To je praktický standard automatizace v postupu, kde dvě přitažlivé ceny nezaručují dva dokončené obchody.

Pokračujte v učení

Prozkoumat všechny zdroje