Bot pro kontrakty na události je program propojující informace o události s řízeným obchodním postupem. Jeho nejdůležitější návrhovou otázkou není rychlost odeslání objednávky. Je jí to, jak program ví, co se stalo, co smí dělat a kdy je jeho záznam účtu dost důvěryhodný pro pokračování. Rychlý systém zaměňující tyto otázky může změnit skromné rozhodnutí v nezamýšlenou pozici.

Architektura by měla zachovávat řetězec od podkladů po stav účtu. Veřejné pozorování podporuje doporučení. Doporučení může projít nebo neprojít rozhodnutím o riziku. Povolený pokyn může vytvořit pokus o objednávku, který může vytvořit vyplnění. Tato vyplnění musejí později souhlasit s pozicemi a zůstatky účtu. Tento článek popisuje řetězec pomocí fiktivních příkladů bez předpokladu, že každé místo obchodování zpřístupňuje totožné typy objednávek nebo že fungující program dokládá ziskovou strategii.

Bot pro kontrakty na události potřebuje registr kontraktů

Začněte výslovným registrem kontraktů, které bot smí zvažovat. Ukládejte kontext místa obchodování, identifikátor trhu, identifikátory výsledků, jednotku vypořádání a odkaz na pravidla. Přidejte čas události, konec obchodování a zdroj pojmenovaný v kontraktu. Registr by měl rozlišovat počáteční zveřejnění a revidovanou hodnotu a uchovávat verzi mapování použitou pro každé rozhodnutí.

Tento záznam je přesnější než výsledek hledání obsahující název trhu. Automatické hledání může objevit kandidátní kontrakt, ale objevení by nemělo tiše povolovat obchodování. Dva trhy mohou sdílet titulek a používat odlišné prahy nebo pozorovací okna. Mapování posouzené člověkem nebo otestovaný postup párování pravidel musí doložit, že data přijímaná botem odpovídají na otázku, kterou kontrakt vypořádává.

Zacházejte se změnou mapování jako s významnou systémovou událostí. Pokud se dříve rozpoznané pole stane nedostupným, bot by neměl vybrat podobně pojmenované pole jen proto, že udrží postup v chodu. Pokud se objeví upřesnění kontraktu, zachovejte starý výklad a zaznamenejte přezkum nových informací. Tato historie je nutná pro pochopení, proč byla dřívější pozice otevřena za předpokladů, které se později mohou změnit.

Starší průvodce rozhraním API bota pro predikční trhy pomáhá čtenářům identifikovat vazbu identifikátorů kontraktů a akcí účtu. Registr není jen programátorské pohodlí. Je hranicí bránící směrování signálu pro jednu událost do povrchně podobné, ale ekonomicky odlišné pozice.

Oddělte pozorování od výkladu

Vrstva pozorování zaznamenává, co zdroj uvedl a kdy to systém obdržel. Neměla by okamžitě převádět každou aktualizaci na obchodní signál. Zachovávejte časové razítko zdroje, časové razítko přijetí, identifikátor a přesnou relevantní hodnotu. Pokud se zpráva opakuje, označte ji za stejné pozorování, nikoli druhé nezávislé potvrzení. Pokud zprávy přicházejí mimo pořadí, zachovejte informaci o pořadí, nikoli přepište novější pozorování starším.

Vrstva výkladu rozhoduje, co pozorování znamená pro kontrakt. Zpráva, že se index rovná 100,3, může podporovat Ano pro práh nad 100,2, ale pouze pokud se týká správného vydání, pole a zacházení se zaokrouhlováním. Titulek říkající, že index překonal očekávání, nestačí, když se kontrakt ptá na absolutní hodnotu. Parser musí vyjmout fakt relevantní pro kontrakt, nikoli obecný kladný nebo záporný sentiment.

Některé vstupy podporují odhad pravděpodobnosti místo přímého faktického určení. Program by měl tento výstup označovat jako předpověď a zachovávat jeho nejistotu. Hodnota důvěry vrácená jazykovým modelem nebo klasifikátorem není automaticky kalibrovanou pravděpodobností výplaty kontraktu. Pokud výklad vyžaduje nový právní nebo faktický úsudek, systém jej může předat k přezkumu bez udělení oprávnění modelu vytvářet expozici.

Užitečný diagnostický pohled zobrazuje původní pozorování vedle odvozeného tvrzení. Když operátor zpochybní rozhodnutí, měl by dokázat prozkoumat vazbu bez rekonstrukce z cenového grafu. To také usnadňuje izolování selhání zdroje: zastaralé pozorování, nesprávné vyjmutí údaje a rozumná, ale neúspěšná předpověď jsou odlišné problémy vyžadující jiné opravy.

Definujte rozhodovací oprávnění bota pro kontrakty na události

Fáze doporučení navrhuje akci s kontraktem, stranou, množstvím, cenovým limitem a důvodem. Fáze povolení rozhoduje, zda návrh odpovídá aktuálním omezením účtu. Tyto fáze by měly být oddělené i v malém programu. Strategie může doporučovat nákup, zatímco účet již dosáhl limitu události, jiná objednávka zůstává nevyřešená nebo tržní proud příliš zastaral pro podporu navržené ceny.

Záznam povolení by měl pojmenovat kontrolované limity. Mohou zahrnovat maximální pořizovací náklad, maximální expozici vůči události, maximální počet otevřených objednávek a požadavek aktuálního mapování kontraktu. Výsledkem je omezené oprávnění s vypršením platnosti, nikoli neurčitý pokyn dál zkoušet, dokud není získáno požadované množství. Pokud se podmínky před odesláním změní, vykonávající komponenta by měla požádat o nové rozhodnutí nebo akci odmítnout.

Například fiktivní strategie doporučuje 100 jednotek Ano s nákupním limitem 0,56 $ a další rezervou 2 $ na poplatky. Riziková kontrola účtu povoluje pro tuto událost nejvýše 60 $ závazku. Navržený maximální závazek je 58 $, takže tomuto konkrétnímu omezení vyhovuje. Stále může nesplnit jiné omezení, například nevyřešenou objednávku na stejném trhu nebo chybějící časové razítko oficiálního zdroje.

Rozdíl se stává zvlášť důležitým, když bot plní několik úkolů. Výzkumný modul může přidávat kontrakty do seznamu sledování, ale neměl by získat oprávnění obchodovat jen proto, že sdílí proces s vykonávající komponentou. Oznamovací modul může upozornit člověka na neobvyklé rozpětí, ale upozornění nepovoluje novou strategii. Výslovná oprávnění brání tomu, aby se užitečná pozorování stala náhodnými pokyny účtu.

Rezervujte expozici před jakýmkoli odesláním

Rezervace expozice bota pro kontrakty na události brání tomu, aby několik souběžných rozhodnutí utrácelo stejnou kapacitu. Když je pokyn povolen, rezervujte jeho maximální povolený náklad a relevantní expozici vůči události před odesláním. Zachovejte rezervaci po dobu otevřené objednávky nebo nejistého výsledku. Uvolněte pouze část, u které autoritativní záznamy dokládají, že se již nemůže provést.

Předpokládejte, že se fiktivní objednávka na 100 jednotek začne vyplňovat. Čtyřicet jednotek se provede za 0,54 $ a stojí 21,60 $ před poplatky. Šedesát jednotek zůstává otevřených s limitem 0,56 $ a představuje až 33,60 $ dalšího nákupního nákladu. Se zachovanou rezervou na poplatky 2 $ činí kombinovaný závazek 57,20 $. Nižší cena provedené části snižuje závazek z původních 58 $, ale nevyplněná část je stále možnou budoucí pozicí.

Pokud je relevantní peněžní rozpočet účtu 100 $, tato zjednodušená rezervace ponechává 42,80 $ nevázaných. Neponechává 78,40 $ jen proto, že bylo dosud vynaloženo pouze 21,60 $. Vyšší číslo by ignorovalo otevřenou objednávku a mohlo dovolit jiné strategii spotřebovat peníze již potřebné pro možné vyplnění. Skutečné implementace musejí také ověřovat a slaďovat skutečné poplatky a případné chování rezervací specifické pro platformu.

Používejte jeden sdílený pohled na expozici napříč strategiemi obchodujícími stejný účet. Samostatné programy s nezávislými počitadly mohou každý věřit, že účet má dostatek kapacity. Starší pojednání o automatizaci obchodování na predikčních trzích poskytuje kontext koordinace těchto odpovědností. Rezervační systém by měl při selhání postupovat konzervativně, pokud nedokáže určit, zda se jiný pokyn stále může provést.

Modelujte objednávky jako stavy, nikoli zprávy o úspěchu

Požadavek na objednávku může být připravený, odeslaný, potvrzený jako přijatý, čekající v knize, částečně vyplněný, dokončený, odmítnutý, zrušený nebo nejistý. Jde o pojmové stavy, nikoli tvrzení, že každé API používá přesně tyto názvy. Mapujte skutečné odpovědi místa obchodování do zdokumentovaného místního modelu. Zachovávejte původní odpověď vedle výkladu, aby bylo možné později prozkoumat chybu adaptéru.

Úspěšná síťová odpověď může doložit přijetí požadavku bez doložení vyplnění zamýšleného množství. Naopak síťový časový limit může vypršet po přijetí objednávky místem obchodování. Bot se musí vyhýbat považování každého úspěchu za dokončenou pozici a každého vypršení limitu za odmítnutí. Identifikátory objednávek, záznamy vyplnění a snímky účtu poskytují odlišné podklady o skutečném dění.

Aktuální dokumentace životního cyklu objednávky Polymarket rozlišuje stavy objednávky a obchodu. Tento rozdíl ilustruje, proč jediná místní logická hodnota nazvaná dokončeno nestačí. Implementace musí dodržovat stavy konkrétního místa obchodování a produktu včetně případných mezilehlých stavů provádění nebo vypořádání, které zůstávají nevyřešené po ohlášení spárování.

Vykonávající komponenta by měla také zachovávat původní povolený pokyn. Pokud se objednávka vyplní za lepší cenu, výsledná pozice by měla zůstat dohledatelná ke stejnému oprávnění. Pokud zbývající množství potřebuje vyšší cenu, jde o nové rozhodnutí vyžadující povolení podle pravidel strategie. Tiché zvýšení limitu k dokončení cíle mění řízenou vykonávající komponentu na nepřezkoumanou komponentu strategie.

Stavy obnovy bota pro kontrakty na události brání duplicitní expozici

Zvažte odeslání, jehož odpověď se k botovi nikdy nedostane. Místní záznam ví, že byl odeslán pokus, ale neví, zda se stal objednávkou. Správným dalším stavem je nejistota. Zachovejte rezervaci expozice a prozkoumejte místo obchodování pomocí podporovaných identifikátorů a záznamů účtu schopných pokus vyřešit. Nevytvářejte novou objednávku jen proto, že první odpověď chybí.

Předpokládejte, že původní pokyn požadoval 100 jednotek. Záznamy účtu později odhalí 40 vyplněných a 60 stále otevřených. Bot požádá o zrušení zbytku, ale dalších 15 jednotek se vyplní před účinností zrušení. Ověřená a sladěná pozice činí 55 jednotek a 45 jednotek již není otevřených po potvrzení zrušení. Pokud by bot předpokládal selhání původního pokusu a odeslal další objednávku na 100 jednotek, jeho zamýšlená expozice by mohla být značně překročena.

Obnova by měla být trvalá napříč restarty procesu. Zapište identifikátor pokusu a rezervaci před řízeným odesláním nebo jako jeho součást podle návrhu konzistence systému. Po restartu prozkoumejte nevyřešené pokusy před přijímáním nových doporučení pro stejnou expozici. Čisté spuštění programu neznamená čistý účet. Místo obchodování stále může držet objednávky vytvořené předchozím procesem.

Průvodce automatizací kontraktů na události rozšiřuje toto rozlišení do okolního postupu výzkumu a přezkumu. Obnova není jen technický detail pro vzácné výpadky. Je součástí kontroly expozice strategie, protože se účet může měnit, zatímco je místní systém odpojený, restartuje nebo čeká na odpověď.

Sestavte smyčku ověřování a sladění nezávislou na strategii

Proces ověřování a sladění porovnává místní očekávání s autoritativními záznamy účtu. Měl by běžet, i když se nevytváří žádný nový signál. Porovnávejte otevřené objednávky, provedená množství, pozice, poplatky a dostupné zůstatky pomocí konzistentních identifikátorů a časů pozorování. Nesoulad by měl vytvořit výslovnou výjimku, nikoli být tiše opraven způsobem mazajícím historii toho, jak se místní model stal chybným.

Oddělujte běžné časové rozdíly od nevysvětlených nesrovnalostí. Aktualizace vyplnění může dorazit před odpovídající aktualizací zůstatku podle cesty vykazování místa obchodování. Systém může při čekání na konzistentní snímek povolovat zdokumentovaný dočasný stav. Rozdíl přetrvávající nad rámec očekávaného procesu by však měl blokovat novou expozici v dotčeném rozsahu až do vysvětlení. Rozsahem může být jeden trh, jeden účet nebo celá vykonávající komponenta.

Záznam ověřování a sladění by měl uvádět, která pozorování podporují aktuální pozici. Operátor by měl vidět, že 55 jednotek pochází ze dvou vyplnění po 40 a 15, nikoli z odvozeného rozdílu zaokrouhlených zůstatků. Uchovávejte úpravy poplatků odděleně, aby změna hotovosti nebyla zaměněna za změnu množství kontraktů. Po rozhodnutí výsledku propojte výplatu se skutečnou zbývající pozicí a konečným výsledkem kontraktu.

Čtenáři pracující s rozhraním účtu mohou použít starší pojednání o obchodním botu Kalshi API k uspořádání potřebných záznamů. Princip je nezávislý na implementačním jazyku: strategie navrhuje, co by mělo nastat, zatímco ověřování a sladění ustavuje, co nastalo. Ani jedné funkci by nemělo být dovoleno nahrazovat chybějící podklady vlastními očekáváními.

Sestavte smyčku ověřování a sladění nezávislou na strategiiSubmission timeoutFind orderFind fillsKeep reservationResume after proofTRADING FIELD NOTESEDUCATIONAL RESOURCE
Nejisté odeslání zůstává aktivním rizikem, dokud je nevyřeší autoritativní záznamy objednávek a účtu.

Dejte systémům s více částmi a kotováním další hranice

Směrový bot může často vyjadřovat expozici jedinou pozicí. Systém s více částmi potřebuje sledovat, zda je zamýšlená kombinace dokončená a co zůstává při provedení jen některých objednávek. Kandidátní arbitráž kontraktů na události závisí na slučitelných výplatách a proveditelné realizaci. Bot by měl vyjadřovat každou část a kombinované možné výsledky, nikoli zaznamenat pár jako dokončený při přijetí první objednávky.

Rezervujte kapacitu pro nedokončené části a definujte maximální čas nebo podmínku setrvání bez spárování. Pokud se druhá část stane nedostupnou, systém potřebuje předem definovanou reakci konzistentní s limity ztráty účtu. Může zahrnovat zrušení nevyplněných objednávek, zmenšení první pozice nebo ponechání omezené expozice k přezkumu. Neměla by předpokládat, že jakékoli zajištění za jakoukoli cenu je automaticky vhodnější než řádné rozhodnutí.

Kotovací systém čelí jiné výzvě: obě strany mohou zůstat aktivní, zatímco vyplnění mění zásobu pozic. Tvůrce trhu kontraktů na události proto potřebuje oprávnění zohledňující zásobu a spolehlivý pohled na nevyřízené kotace. Aktualizace kotace nahrazující starou objednávku musí zohledňovat jakýkoli interval, během kterého oba pokyny mohou zůstávat aktivní. Povolená hrubá a čistá expozice systému by měla tuto možnost odrážet.

Tato rozšíření ilustrují, proč obecná funkce koupit nebo prodat není úplnou architekturou bota. Různé strategie potřebují různé reprezentace nedokončené práce. Společným základem jsou výslovná oprávnění, zachovaná identita objednávek a ověřování a sladění; vrstva specifická pro strategii popisuje přijatelné kombinace vyplnění a podklady potřebné před další akcí.

Sledujte časy řídící rozhodnutí

Bot by měl zachovávat několik časů, protože odpovídají na různé otázky. Časové razítko zdroje události popisuje, kdy byla informace zveřejněna. Časové razítko přijetí popisuje, kdy ji místní proces získal. Časové razítko knihy popisuje stav trhu použitý pro doporučení. Časové razítko povolení popisuje, kdy účet akci schválil. Sloučení do jediného časového pole může skrýt zastaralé pozorování za nedávnou událostí zpracování.

Předpokládejte, že zdrojové pozorování bylo zveřejněno v 9:00, dosáhlo sběrače v 9:01 a bylo přehráno po restartu v 9:10. Přehrání je nové pro restartovaný proces, ale základní podklad je deset minut starý. Pravidlo čerstvosti založené jen na místním čase vložení by mohlo botovi dovolit považovat pozorování za aktuální. Zachovejte původní časy a výslovně označte přehrání, aby pravidlo hodnotilo skutečnost, kterou bylo navrženo omezovat.

Porovnávání časů potřebuje také pravidla pro chybějící nebo nekonzistentní hodnoty. Pokud zdroj neposkytuje důvěryhodný čas zveřejnění, systém by si jej neměl vymýšlet. Může použít zdokumentovanou náhradní možnost s přísnějším oprávněním nebo neprovést akce vyžadující silnější časové podklady. Cílem je zviditelnit časovou nejistotu v rozhodovacím záznamu, nikoli dovolit přesně vypadajícímu razítku naznačovat znalost, kterou systém nemá.

Testujte incidenty měnící účet

Užitečná testovací sada se zaměřuje na závažné přechody. Simulujte vypršení limitu odpovědi po přijetí, částečné vyplnění během rušení, zastaralý tržní snímek a restart s nevyřešenou objednávkou. Ověřte, že bot zachovává správnou rezervaci a odmítá akce, které by mohly překročit jeho limity. Test pouze potvrzující, že funkce vrací hodnotu přiřazenou uvnitř ní, nabízí málo podkladů o těchto skutečných cestách selhání.

Používejte malý soubor znovu přehratelných incidentů se známými očekávanými záznamy. U příkladu 100 jednotek by test měl skončit s 55 vyplněnými a 45 zrušenými bez druhého odeslání 100 jednotek. Peněžní model by měl odrážet skutečné ceny vyplnění a poplatky, nikoli původní maximální odhad. Jiný test může záměrně vynechat událost vyplnění a vyžadovat, aby ověřování a sladění obnovilo chybějící provedení z dotazu na účet.

Testujte také neškodnou neaktivitu. Když je předpověď nedostupná, mapování kontraktu nevyřešené nebo stav účtu nekonzistentní, správným výsledkem může být žádná objednávka. Systém hodnocený jen podle úspěšných odeslání může odměňovat aktivitu a přehlížet rozhodnutí bránící nežádoucí expozici. Zaznamenávejte důvod odmítnutí akce, aby operátoři mohli rozlišit záměrné pozastavení a nepovšimnutou poruchu.

Bot je připraven na širší použití pouze tehdy, když jeho záznamy činí běžný provoz a obnovu srozumitelnými. Operátor by měl dokázat určit aktuální kontrakt, podklady, oprávnění, otevřené závazky a potvrzenou pozici bez hádání. Tato transparentnost nedokládá obchodní výhodu, ale činí chování programu přezkoumatelným a dává strategii spolehlivý základ pro hodnocení.

Pokračujte v učení

Prozkoumat všechny zdroje