Bot arbitrażu kontraktów zdarzeniowych musi zarządzać okresem, w którym proponowana kombinacja jest realna tylko częściowo. Skaner może wskazywać ceny atrakcyjne razem, lecz konto otrzymuje osobne zlecenia i realizacje. Jedno zlecenie może zostać przyjęte, a drugie odrzucone. Anulowanie może nadejść po dodatkowej realizacji. Odpowiedź może zniknąć mimo przyjęcia żądania przez platformę. Bot musi opisywać te stany bez udawania, że zamierzona para już istnieje.
Podstawowym problemem projektowym jest koordynacja przy niepewności. Rezerwuj zasoby obu części, zachowuj ich tożsamości i mierz ekspozycję pozostałą przy różnym postępie. Fikcyjne przykłady używają jawnie zgodnych jednodolarowych wypłat binarnych. Ilustrują kontrole wykonania, nie twierdzenie o możliwości niepodzielnego wykonania rzeczywistej transakcji między platformami ani o braku ryzyka pozornego arbitrażu.
Rezerwacje bota arbitrażowego zaczynają się od zatwierdzonej pary
Silnik wykonania powinien otrzymywać ocenioną definicję pary zamiast dwóch luźno powiązanych nazw rynków. Definicja zawiera kontekst każdej platformy, identyfikator kontraktu, stronę wyniku, wersję reguł i relację wypłat. Powinna też określać rozważone wyjątkowe wyniki i warunki unieważniające przyporządkowanie. Para o nierozstrzygniętym znaczeniu należy do badań, nie kolejki gotowej do wykonania.
Instrukcja kandydata dodaje bieżące ilości, pułapy cen, szacunki opłat i czasy obserwacji. Nazywa maksymalny akceptowalny koszt łączny i tolerowaną przez konto niesparowaną ekspozycję. Limity są odrębne. Para może być przystępna po ukończeniu, a pierwsza część tworzyć zbyt dużą przejściową ekspozycję kierunkową. Oba pytania wymagają odpowiedzi przed wysłaniem zlecenia.
Użyj trwałego identyfikatora sprawy łączącego definicję, rekomendację, zatwierdzenie i późniejsze zlecenia. Każda część powinna też mieć własną stabilną tożsamość instrukcji. Identyfikator pary wyjaśnia przynależność zleceń, a identyfikatory części pozwalają badać pojedyncze wysłanie. Żadnego nie należy zastępować tylko przez przekroczenie czasu żądania lub restart procesu.
Wcześniejszy artykuł o bocie arbitrażowym rynku predykcyjnego daje szerszą relację wykrytej okazji i procesu handlu. Ten projekt zaczyna po dokonanym przeglądzie analizy wypłat. Jego zadaniem jest widoczność faktycznej kombinacji konta podczas przechodzenia zleceń przez różne stany.
Rezerwuj lokalne środki i wspólną zdolność ryzyka
Załóżmy fikcyjną parę 500 jednostek A Tak po maksymalnie $0.37 i 500 B Nie po maksymalnie $0.60. Przyjmijmy reguły dające jednostce każdej pozycji połączoną wypłatę jednego dolara w modelowanych wynikach. Kwoty zakupu wyniosłyby $185 i $300. Przy hipotetycznych opłatach $3 i $4 łączny koszt nabycia to $492, pozostawiający $8 poniżej założonej wypłaty $500.
Bot potrzebuje dostępnych $188 dla A i $304 dla B przy tych założeniach. Jeśli części używają osobnych kont, istnienie $492 gdzieś w portfelu nie wystarcza. Każde konto potrzebuje własnych użytecznych zasobów przed wykonaniem. Rezerwacja powinna obejmować właściwe opłaty i dodatkowy bufor naprawczy wybrany przez operatora. Bufor jest polityką kontroli, nie częścią projektowanego zysku, chyba że rzeczywiście zostanie wydany.
Na poziomie portfela rezerwuj właściwą ekspozycję zdarzenia obok gotówki. Kilka par kandydatów może zależeć od tego samego zdarzenia lub platformy drugiej części. Pozwolenie każdej sprawie niezależnie rezerwować środki bez wspólnych limitów może tworzyć nadmierne nagromadzenie nieukończonych pierwszych części. Wspólna usługa ryzyka lub inna spójna koordynacja musi zapobiegać zajmowaniu przez te sprawy tych samych pozostałych zasobów.
Rezerwacje powinny trwać przy niepewności. Zlecenie odrzucone z wiążącym potwierdzeniem może zwolnić niewykorzystaną kwotę. Zlecenie z brakującą odpowiedzią nie może. Restart powinien ponownie wczytać nierozstrzygnięte rezerwacje przed przyjęciem nowych spraw. Inaczej program może pozornie mieć świeży budżet przy nadal obecnych zobowiązaniach poprzedniej sesji.
Świadomie wybierz sekwencję wykonania
Wysłanie obu części niemal jednocześnie zmniejsza pewne opóźnienia sekwencji, lecz nie gwarantuje równoczesnego przyjęcia ani wykonania. Wysłanie jednej najpierw może upraszczać koordynację, ale tworzy okres znanej ekspozycji kierunkowej. System powinien wybrać sekwencję na podstawie obserwowanej płynności, zachowania platform i dozwolonej ekspozycji konta, a potem oceniać skutki wyboru zamiast traktować go jako szczegół implementacji.
Częstą pokusą jest wykonanie najpierw trudniejszej części. Może to być rozsądne w przetestowanym procesie, lecz nadal potrzebuje określonej reakcji na zniknięcie łatwiejszej. Inne podejście używa oczekującego zlecenia jednej strony i reaguje na realizacje. Może poprawiać kwotowaną cenę wejścia, zwiększając szansę zmiany ceny dopełniającej przed reakcją. Właściwą miarą jest ukończona kombinacja i jej nieukończone przypadki.
Instrukcje wykonania pojedynczego zlecenia nie tworzą transakcji między platformami. Na przykład instrukcja wszystko albo nic może ograniczać jedną część na obsługującej ją platformie, lecz nie zmusza drugiej platformy do realizacji odpowiadającego zlecenia. Dokumentacja cyklu zleceń Polymarket opisuje kilka zachowań pojedynczych zleceń. Bot musi zweryfikować faktycznie obsługiwane zachowanie każdej części i nie rozszerzać lokalnej gwarancji na całą parę.
Dokumentuj wybraną sekwencję w zapisie sprawy. Zapisuj czas każdego zatwierdzenia, wysłania każdego żądania i informacje dostępne przed drugim wysłaniem. Dane pozwalają później porównywać polityki sekwencji. Bez nich udana para może ukryć tę samą słabość czasową, która w następnej sprawie powoduje kosztowne częściowe wykonanie.
Śledź ilości na każdym etapie
Dla każdej części rozróżniaj ilość żądaną, przyjętą, zrealizowaną, anulowaną i nadal niepewną. Liczby odpowiadają na różne pytania. Żądana wyraża zamiar. Zrealizowana ustanawia pozycję. Otwarta nadal może ją zwiększyć. Niepewna reprezentuje ekspozycję jeszcze nierozstrzygniętą przez system lokalny. Połączenie ich w jeden procent ukończenia może ukrywać kierunek i wielkość pozostałego ryzyka.
Sparowana ilość to ta, dla której rzeczywiście nabyto wymagane pozycje w zgodnych proporcjach. W prostym przykładzie jeden do jednego, przy 500 zrealizowanych A i 300 B, sparowana ilość wynosi 300, a niedopasowana A 200. Jeśli bardziej złożona wypłata wymaga innego stosunku, rachunek dopasowania musi podążać za ocenionym stosunkiem zamiast zakładać równość.
Utrzymuj rachunek ilości niezależny od sald gotówki. Zmiana salda może zawierać opłaty, przelewy lub niepowiązane transakcje, więc źle zastępuje zapisy realizacji. Przechowuj identyfikator, stronę, ilość i cenę każdej realizacji oraz usuwaj powtórzone dostarczenia tej samej realizacji. Odtworzone zdarzenie powinno potwierdzać istniejącą informację zamiast tworzyć drugi wpis pozycji.
Wcześniejszy poradnik bota arbitrażowego Kalshi pomaga ująć zapisy konta dla implementacji konkretnej platformy. Ogólna reguła mówi, że ukończenie pary musi wynikać z rzeczywistych ilości części. Dodatnia łączna oferta, wysłana partia lub dwa potwierdzone żądania same nie ustanawiają ukończonej pozycji.
Częściowe realizacje tworzą nową decyzję bota arbitrażowego
Kontynuujmy fikcyjny przykład z realizacją wszystkich 500 A po $0.37, ale tylko 300 B po $0.60. Kwoty zakupu to $185 i $180, razem $365 przed opłatami. Trzysta jednostek tworzy pełne pary kosztujące $291 przed opłatami. Pozostałe 200 A kosztuje $74 i ma ekspozycję kierunkową. Pierwotny projektowany wynik netto $8 dla 500 pełnych par nie opisuje już stanu konta.
Bot powinien przestać oceniać sprawę wyłącznie pierwotną punktacją okazji. Potrzebuje teraz decyzji naprawczej według aktualnych ofert i jawnych limitów. Czy można nabyć kolejne 200 B w zatwierdzonym koszcie całkowitym? Czy można sprzedać niedopasowane A w dopuszczalnej stracie? Czy dozwolone jest czasowe utrzymanie i jak długo? Każda opcja powinna używać faktycznie istniejącej pozycji i bieżących wykonalnych ilości.
Załóżmy, że pisana reguła operatora pozwala zmniejszyć niedopasowane A przy ofercie kupna nie niższej niż $0.34 po potwierdzonym anulowaniu pozostałego B. Sprzedaż 200 A po tej cenie daje $68. Konto posiada następnie 300 pełnych par wypłacających $300 przy założeniach przykładu. Łączne wpływy to $368 wobec kwoty zakupu $365, pozostawiając $3 przed opłatami. Jeśli rzeczywiste łączne opłaty tej ścieżki wyniosą $5, ostateczny wynik to strata $2.
Strata nie dowodzi błędnego rachunku w pełni ukończonej pary za $492. Pokazuje brak zamierzonego wykonania i koszt naprawy. Ewidencja powinna zachowywać oba rachunki. Ocena tylko ukończonych korzystnych par z pominięciem naprawionych częściowych przypadków zawyżałaby użyteczność polityki wykonania.
Przekroczenie czasu wysłania musi zachować tożsamość
Gdy żądanie przekracza czas, bot wie o lokalnej awarii komunikacji. Niekoniecznie wie, czy platforma przyjęła zlecenie. Przenieś część do stanu niepewnego, zachowaj rezerwację i odpytuj obsługiwane zapisy zleceń i konta. Używaj dostępnych pierwotnych identyfikatorów klienta lub platformy. Jeśli zapisy nie rozstrzygają próby od razu, niepewność pozostaje częścią rachunku ekspozycji.
Nie twórz nowego zlecenia tylko dlatego, że pożądana ilość nie jest jeszcze widoczna lokalnie. Pierwotne może oczekiwać, być częściowo zrealizowane lub czekać na etap przetwarzania właściwy platformie. Druga instrukcja może zdublować zamierzoną ilość. W systemie sparowanym może to przepełnić część nawet po ukończeniu drugiej strony, zmieniając nominalnie dopasowaną sprawę z powrotem w ekspozycję kierunkową.
Naprawa bota arbitrażu kontraktów zdarzeniowych potrzebuje warunku eskalacji. Po określonym czasie lub błędzie system może wyłączyć nowe sprawy dotkniętego konta i poprosić operatora o przegląd. To reakcja kontrolna na brak danych, nie deklaracja zgubienia zlecenia przez platformę. Zapis powinien dokładnie określać pozostałe niewiadome oraz zbadane zapytania lub migawki konta.
Po ostatecznym rozstrzygnięciu próby aktualizuj oryginalną sprawę zamiast ukrywać ją za zastępczym zapisem. Przy odrzuceniu zwolnij niewykorzystaną rezerwację. Przy realizacji uwzględnij wykonania i przelicz dopasowaną ilość. Przy nadal otwartym zleceniu zdecyduj o utrzymaniu lub anulowaniu według obecnego stanu sprawy. Każdy wynik powinien zachowywać połączenie z pierwotnym zatwierdzeniem.
Anulowanie i zastąpienie potrzebują własnej granicy
Anulowanie zlecenia nie odwraca już wykonanych realizacji. Nie dowodzi też braku realizacji podczas przesyłania żądania anulowania. Bot powinien monitorować część do uzyskania dość wiążących danych o końcowej wykonanej ilości i ilości już niewykonalnej. Zwolnienie całej rezerwacji natychmiast po wysłaniu anulowania może zaniżać zaangażowanie konta.
Zlecenie zastępcze wprowadza podobny problem. Jeśli stare nadal może być aktywne, ponowne wysłanie pełnej zamierzonej ilości może czasowo podwoić ilość zdolną do realizacji. Wykonawca potrzebuje udokumentowanej polityki zastępowania zgodnej z faktycznym działaniem platformy. Może wymagać potwierdzenia przed zastąpieniem lub rezerwować na obsługiwane nakładanie. Nigdy nie powinna traktować ukrycia starego zlecenia w interfejsie jako dowodu usunięcia przez platformę.
W przykładzie 500 wobec 300 załóżmy dodatkową realizację 40 B podczas anulowania. Dopasowana ilość rośnie do 340, a niedopasowane A spada do 160. Naprawcza sprzedaż 200 A według wcześniejszej migawki nadmiernie skorygowałaby sprawę, pozostawiając nadmiar B. Decyzja naprawcza musi więc używać uzgodnionego stanu ilości lub jawnie uwzględniać pozostałą niepewność.
Powiązany artykuł o bocie handlu na rynku zdarzeniowym szerzej bada przerwy i zaplanowane zmiany. Wykonanie sparowane dodaje szczególny wymóg: działanie kontrolne jednej części może zmieniać właściwe postępowanie z drugą. System musi koordynować aktualizacje wspólnym stanem sprawy zamiast pozwalać częściom działać jak niepowiązane programy handlowe.
Zachowuj budżet naprawczy bez pogoni za ukończeniem
Budżet naprawczy określa dodatkowy koszt lub stratę akceptowalne dla systemu przy zmniejszaniu nieukończonej ekspozycji. Powinien być odrębny od pierwotnego progu wejścia. Konto może rozsądnie akceptować ograniczoną stratę po częściowej realizacji dla uniknięcia większego ryzyka zdarzenia, lecz pozwolenie powinno być jawne. Inaczej bot może uzasadniać niemal dowolną cenę twierdzeniem o kończeniu arbitrażu.
Ustal budżet w kategoriach możliwych do oceny przez operatora: maksymalny koszt nabycia niedopasowanej pozycji, maksymalny dodatkowy koszt ukończenia, maksymalna dozwolona strata redukcji i warunki wymagające oceny człowieka. Pułap ceny drugiej części można przeliczyć z faktycznego kosztu pierwszej i dozwolonego wyniku. Rachunek powinien obejmować rzeczywiste opłaty już poniesione i zachowawcze szacunki pozostałego działania.
Budżet nie jest instrukcją wydania całej dozwolonej kwoty. Porównuj dostępne alternatywy przy obecnych wykonalnych ilościach. Jeśli anulowanie i mała redukcja przywracają akceptowalną pozycję, system nie musi wymuszać ukończenia pierwotnej wielkości. Jeśli żadna alternatywa nie mieści się w zatwierdzonych granicach, zatrzymaj się i jasno pokaż nierozstrzygniętą pozycję. Pozostałe ryzyko konta powinno być widoczne nawet przy braku możliwości automatycznej naprawy.
Wcześniejsze omówienie automatycznego bota arbitrażowego Polymarket daje kontekst rozdzielenia wykrywania i kontrolowanego działania. Logika naprawcza zasługuje na własny zbiór oceny, bo jest uruchamiana w innych warunkach niż zwykłe wejście. Zachowanie działające w spokojnych migawkach może zawieść, gdy płynność znika dokładnie podczas realizacji pierwszej części.
Zapas może narastać w kilku sprawach
Bot może prowadzić wiele par naraz, lecz konto doświadcza połączonego zapasu. Dwie nieukończone sprawy mogą pozostawić ekspozycję na ten sam wynik mimo różnych identyfikatorów par. Agreguj pozycje i otwarte zobowiązania według zdarzenia i właściwego niekorzystnego scenariusza. Nie zakładaj, że osobne zapisy spraw tworzą niezależne limity ryzyka.
Animator rynku kontraktów zdarzeniowych wykorzystuje zapas do kształtowania dalszych kwotowań. Bot sparowany korzysta z tej samej świadomości przy nieukończonych częściach na koncie. Nowe sprawy mogą zmniejszać nierównowagę, zwiększać ją lub tworzyć inną ekspozycję przy wynikach wyjątkowych. Kontrola ryzyka powinna oceniać wynikły portfel zamiast automatycznie uznawać każdą proponowaną parę za neutralną.
Jeśli bot uczestniczy też w animowaniu rynku kontraktów zdarzeniowych, jego oczekujące oferty należą do tego samego modelu ekspozycji. Oferta dostarczania płynności może się zrealizować podczas rezerwowania zasobów drugiej części przez silnik arbitrażu. Wzajemnie ignorujące się budżety mogą oba przejść lokalnie i zawieść na poziomie konta. Wspólne rezerwacje i spójne uzgodnienie są konieczne nawet przy różnych celach strategii.
Okresowe uzgodnienie powinno porównywać połączony model lokalny z wiążącymi pozycjami, zleceniami i opłatami. Sprawę można zamknąć operacyjnie dopiero po rozstrzygnięciu zleceń i poprawnym przypisaniu pozostałej pozycji. Jeśli celowo pozostawiona pozycja przechodzi do innej strategii, zapisz przekazanie odpowiedzialności. Usunięcie sprawy z ekranu nie powinno usuwać jej ryzyka z ewidencji.
Testuj przypadki zmieniające decyzję
Używaj odtworzeń incydentów badających koordynację, nie tylko udane wysyłanie zleceń. Jeden test powinien przyjąć A i odrzucić B. Inny częściowo wykonać B podczas anulowania. Trzeci dostarczyć tę samą realizację dwukrotnie. Czwarty zrestartować proces po wysłaniu żądania, lecz przed zapisem odpowiedzi. Oczekiwany wynik powinien określać ilości, rezerwacje, dozwolone następne działania i wymaganą pauzę.
Dla rozpatrywanej częściowej realizacji niezależnie sprawdź rachunek: wydane $365, odzyskane $68 ze zmniejszenia 200 niedopasowanych A, otrzymane $300 z pozostałych zgodnych par i $5 założonych rzeczywistych opłat dają stratę $2. Test nie powinien nazywać sprawy zyskowną parą 500 jednostek tylko dlatego, że była to pierwotna rekomendacja. Powinien zachować powód różnicy wyniku wobec planu.
Testuj też decyzję o nierozpoczynaniu. Odrzucaj parę z niedopasowanymi regułami, niewystarczającym lokalnym finansowaniem, nieaktualną głębokością lub nierozstrzygniętym stanem konta. Odmowy są częścią zamierzonego zachowania bota. System przechodzący tylko testy aktywnego wykonania nadal może być niebezpieczny, bo nigdy nie wykazał respektowania warunków wstrzymania wykonania.
Końcowy przegląd powinien odtwarzać każdą sprawę od zatwierdzonej relacji wypłat do uzgodnionego wyniku konta. Bot sparowanych transakcji jest użyteczny, gdy uwidacznia niepełne kombinacje, ogranicza skutki i zachowuje dość danych do wyjaśnienia naprawy. To praktyczny standard automatyzacji procesu, w którym dwie atrakcyjne ceny nie gwarantują dwóch ukończonych transakcji.