Ein Kalshi-API-Trading-Bot verbindet eine Handelsrichtlinie mit einem authentifizierten Konto für Ereigniskontrakte. Die Schwierigkeit besteht nicht darin, eine einzelne erfolgreiche Anfrage zu senden. Sie besteht darin, deren Bedeutung zu erhalten, wenn Einheiten abweichen, eine Antwort verloren geht, eine Order teilweise ausgeführt wird oder die API ihre Darstellung ändert.
Ein zuverlässiger Client behandelt jede Kontoaktion als wirtschaftliche Absicht mit dauerhafter Identität. Netzwerkversuche, Signaturen und Antworten gehören zu dieser Absicht. Sie sollten nicht zu unabhängigen Trades werden, nur weil eine Verbindung langsam war oder ein Prozess neu gestartet wurde.
Dieser Artikel konzentriert sich auf die Anfragegrenze. Wo konkrete Details nötig sind, verwendet er aktuelle Konventionen der Predictions API; die Beispiele dienen als veranschaulichende technische Übungen. Produktivzugang, Kontoberechtigungen und die genaue Marktkonfiguration müssen für das betreffende Konto überprüft werden.
Definieren Sie die wirtschaftliche Absicht vor der Anfrage
Die Strategie sollte ihren Wunsch in Begriffen ausdrücken, die auch außerhalb einer HTTP-Nutzlast sinnvoll bleiben. Eine Absicht benennt den Kontrakt, die gewünschte Richtungsänderung, eine Höchstmenge, einen akzeptablen Preis und eine Frist. Sie hält außerdem die Genehmigung der Aktion und die möglicherweise beanspruchte Kontozuteilung fest.
Diese Aufzeichnung unterscheidet sich von einem Anfrageversuch. Ein Versuch hat einen Zeitstempel, ein Ziel, eine Signatur und eine Antwort oder einen Fehler. Mehrere Versuche können zu einer Absicht gehören, aber der Client sollte die Zahl der Versuche nicht mit der Zahl autorisierter Positionen verwechseln.
Speichern Sie die Absicht dauerhaft, bevor Sie die Aktion ausführen. Sendet der Client zuerst und speichert später, hinterlässt ein Absturz zwischen diesen Schritten eine Kontowirkung ohne lokale Erklärung. Das vorherige Schreiben ermöglicht einem neu gestarteten Prozess, eine ungeklärte Absicht zu entdecken und zu untersuchen, statt anzunehmen, es habe keinen Trade gegeben.
Die Aufzeichnung muss nicht groß sein. Sie sollte genügend Informationen enthalten, um die vorgeschlagene wirtschaftliche Aktion zu reproduzieren und von einem anderen Vorschlag zu unterscheiden. Ein Begründungscode wie Prognoseeinstieg ist nur hilfreich, wenn er auf die konkrete Prognose und Richtlinienversion verweist, die die Order autorisiert haben.
Der Leitfaden zum API-Entwurf eines Prognosemarkt-Bots behandelt die Trennung von Richtlinie und Kontozugriff. An dieser Grenze gilt vor allem: Transportdetails sollen eine genehmigte Absicht umsetzen und nicht durch versehentliche Standardwerte eine neue Handelsrichtlinie schaffen.
Authentifizierung eines Kalshi-API-Trading-Bots
Die Authentifizierung eines Kalshi-API-Trading-Bots sollte dem aktuellen offiziellen Verfahren genau folgen. Der Leitfaden für authentifizierte Anfragen nennt eine API-Schlüsselkennung, einen Millisekundenzeitstempel und eine Base64-kodierte RSA-PSS-Signatur mit SHA256. Die signierte Nachricht verknüpft Zeitstempel, HTTP-Methode und vollständigen Anfragepfad ohne Abfrageparameter.
Die meisten Implementierungsfehler sind hier Darstellungsfehler. Ein Zeitstempel in Sekunden ist keiner in Millisekunden. Ein doppelt vorhandener Pfad, weil zwei Hilfsfunktionen jeweils ein Präfix hinzufügen, ist nicht der beabsichtigte Pfad. Wird eine andere Methode signiert als gesendet, beschreibt der Autorisierungsnachweis nicht die tatsächlich übertragene Aktion.
Erzeugen Sie Ziel und Signaturpfad aus derselben validierten Anfragedefinition. Das senkt die Gefahr, dass eine Hilfsfunktion einen Pfad signiert, während eine andere an eine abweichende Adresse sendet. Tests sollten einen Pfad mit und einen ohne Abfrageparameter abdecken.
Trennen Sie das Signieren von gewöhnlichen Diagnoseausgaben. Protokolle können Methode, eine sichere Pfadbeschreibung, eine Absichtskennung und die Antwortklassifizierung festhalten, ohne einen privaten Schlüssel aufzuzeichnen. Ein Supportexport sollte kein Material offenlegen, das zukünftige Kontoaktionen autorisiert.
Nehmen Sie einen Authentifizierungsfehler zum Anlass, Zugangsdaten, Zeitbehandlung und Anfrageaufbau zu prüfen. Dieselbe ungültige Anfrage in hoher Geschwindigkeit zu wiederholen, behebt sie nicht. Die Strategie sollte kein neues Risiko erzeugen können, bis der Client die Gültigkeit seiner authentifizierten Kontoansicht feststellen kann.
Verwenden Sie die aktuelle Terminologie für Ereignisorders
Die aktuelle V2-Referenz zum Erstellen von Orders verwendet den Ereignisorderpfad, eine Orderbuchseite bid oder ask, die Kontraktzahl als Zeichenfolge und einen Festkommapreis in Dollar. Der Preis wird auf der YES-Skala angegeben: bid kauft YES, ask verkauft YES. Eine ältere Nutzlast sollte nicht ohne Prüfung des aktuellen Schnittstellenvertrags in einen neuen Client übernommen werden.
Übersetzen Sie die Strategiesprache an einer einzigen Stelle in diese Darstellung. Eine Strategie kann vom Erwerb eines NO-Engagements sprechen, während die Anfrage einen Preis auf der YES-Skala verwendet. Diese Übersetzung sollte ausdrücklich erfolgen und getestet werden, damit eine spätere Anzeigeänderung eine Order nicht unbemerkt umkehrt.
Prüfen Sie die Umrechnung anhand eines hypothetischen Beispiels. Soll die wirtschaftliche Grenze in einem einfachen binären Kontrakt höchstens 32 Cent für NO betragen, liegt der komplementäre Preis auf der YES-Skala bei 68 Cent. Der Adapter muss beabsichtigte Richtung und Grenze gemeinsam erhalten. Nur die Seite zu ändern und eine nicht dazu passende Preiskonvention beizubehalten, kann einen anderen Trade erzeugen.
Trennen Sie Anfrage- und Antwortmodelle. Eine kompakte Erstellungsantwort kann eine Order bestätigen, ohne jedes Feld einer vollständigen Kontoorderansicht zu liefern. Der Client sollte fehlende Felder nicht mit optimistischen Annahmen wie vollständig ausgeführt oder kein verbleibendes Risiko füllen.
Eine Schemaabweichung sollte diesen Aktionspfad sichtbar stoppen. Fehlt ein erforderliches Feld oder hat es eine unbekannte Bedeutung, kann stillschweigende Annahme die spätere Buchführung beschädigen. Ein eng begrenzter Fehler ist einer im Allgemeinen erfolgreichen Anfrage mit unbekannter wirtschaftlicher Bedeutung vorzuziehen.
Behandeln Sie Festkommapreise im Kalshi-API-Trading-Bot exakt
Festkommapreise eines Kalshi-API-Trading-Bots sollten bei Validierung, Berechnung und Serialisierung exakt bleiben. Der offizielle Leitfaden zur Festkommadarstellung beschreibt Dollarzeichenfolgen, gebrochene Kontraktzahlen und marktspezifische Preisbereiche. Die allgemeine Annahme, jeder gültige Preis sei ein ganzer Cent, reicht nicht mehr aus.
Verwenden Sie Dezimalarithmetik oder eine sorgfältig definierte Darstellung mit skalierten Ganzzahlen. Entscheidend ist, dass eine gültige Eingabe wie 0.1250 ihren beabsichtigten Wert behält. Rundung mit binären Gleitkommazahlen sollte nicht entscheiden, ob ein vorgeschlagener Preis auf dem zulässigen Marktraster liegt.
Als Beispiel ergibt der Kauf von 12,50 Kontrakten zu 0,2400 Dollar vor Gebühren exakt 3 Dollar. Ein Parser, der den halben Kontrakt verwirft, erfasst stattdessen 2,88 Dollar und hinterlässt eine Differenz von 12 Cent. Ein Parser, der Dollar für Cent hält, erzeugt einen wesentlich größeren Fehler.
Validieren Sie Preise vor der Einreichung gegen das aktuelle Marktraster. Schlägt ein theoretisches Modell 0,237 Dollar vor, während das betreffende Preisband eine andere Schrittweite zulässt, benötigt der Client eine festgelegte Rundungsrichtlinie. Die Rundung auf einen aggressiveren Preis kann die maximalen Kosten der Strategie verletzen; die Richtlinie muss daher die wirtschaftliche Grenze einhalten.
Bewahren Sie die ursprüngliche Eingabe und den normalisierten Wert in den Diagnosenachweisen auf. So kann ein Prüfer einen Quellenfehler von einem Umrechnungsfehler unterscheiden. Auch spätere Darstellungsänderungen lassen sich leichter testen, weil dieselben aufgezeichneten Fälle durch alte und neue Adapter laufen können.
Trennen Sie Kontraktzahl, Preis und Geldbetrag
Auf einer Orderansicht stehen oft drei Größen dicht beieinander: Kontrakte, Dollar je Kontrakt und Gesamtgeldbetrag. Sie sind nicht austauschbar. Ein Feld namens amount ist für ein internes Modell zu ungenau, sofern seine Einheit nicht festgelegt und klar dokumentiert ist.
Verwenden Sie aussagekräftige Namen und Typen. Die Kontraktmenge kann gebrochen sein. Der Limitpreis bezeichnet einen Betrag pro Kontrakt. Die geschätzte Belastung umfasst Menge mal Preis sowie einen Zuschlag für anwendbare Kosten. Die tatsächliche Geldbewegung ergibt sich aus dem aufgezeichneten Kontoergebnis und kann von der Schätzung abweichen.
Eine hypothetische Kaufabsicht über 25 Kontrakte zu 44 Cent hat einen Kaufbetrag von 11 Dollar. Sie ist weder die Anweisung, 25 Dollar auszugeben, noch eine Order über 44 Dollar. Diese Unterschiede wirken selbstverständlich, gehen aber leicht verloren, wenn mehrere Endpunkte unterschiedliche Feldnamen oder Einheiten verwenden.
Bauen Sie Einheitenprüfungen in die Anfragegrenze ein. Ein Preis außerhalb des zulässigen Kontraktbereichs, eine negative Kaufmenge oder eine Geldschätzung, die sich nicht mit Menge und Preis abgleichen lässt, sollte vor dem Signieren abgelehnt werden. Solche Prüfungen sind hilfreicher, als den Fehler erst nach Ablehnung durch den Handelsplatz zu entdecken.
Der Überblick zur Handels-API für Prognosemärkte ordnet diese Darstellungen in einen breiteren Integrationskontext ein. Ein guter Client hält Einheiten von der Quellenbeobachtung bis zum Kontobericht ausdrücklich fest, statt sich darauf zu verlassen, dass eine Benutzeroberfläche sie am Ende erschließt.
Behalten Sie bei unklaren Versuchen eine Kennung bei
Erstellen Sie vor der Einreichung eine lokale Absichtskennung und eine passende clientseitige Orderkennung. Speichern Sie die Zuordnung zur serverseitigen Orderkennung, sobald diese bekannt ist. Diese Identitäten ermöglichen, eine spätere Kontoaufzeichnung mit der verursachenden Aktion zu verbinden.
Der offizielle Schnelleinstieg beschreibt die Duplikaterkennung über die clientseitige Orderkennung. Diese Funktion ist hilfreich, dennoch sollte der Client ein eigenes Absichtsjournal führen und aktuelle Kontonachweise prüfen. Machen Sie aus einer dokumentierten Duplikatprüfung nicht die unbelegte Behauptung, jede Anfrage könne unter allen Bedingungen unbegrenzt wiederholt werden.
Wird nach der Übertragung einer Order eine Zeitüberschreitung gemeldet, ist das Ergebnis unbekannt. Der Client sollte die ursprüngliche wirtschaftliche Absicht und ihre reservierte Kapazität beibehalten. Anschließend kann er Orders und Ausführungen prüfen oder eine dokumentierte Wiederholung unter Beibehaltung der passenden Identität durchführen. Als Standardreaktion auf Unsicherheit eine neue Kennung anzulegen, birgt das Risiko einer zweiten unabhängigen Verpflichtung.
Eine Duplikatantwort kann selbst ein hilfreicher Nachweis sein. Sie kann darauf hindeuten, dass die ursprüngliche Aktion den Handelsplatz erreicht hat, beweist allein aber nicht, welche Menge ausgeführt wurde. Verfolgen Sie die Identität zur Kontoaufzeichnung und klären Sie das verbleibende Risiko.
Bewahren Sie das Journal über Neustarts hinweg auf. Eine nur im Prozessspeicher abgelegte Kennung verschwindet genau dann, wenn die Wiederherstellung sie womöglich am dringendsten braucht. Dauerhaftigkeit ist hier keine abstrakte Datenbankpräferenz; sie erhält die Verbindung zwischen einer genehmigten Entscheidung und möglicherweise bereits bestehenden Kontowirkungen.
Klassifizieren Sie die Wiederholungsrichtlinie eines Kalshi-API-Trading-Bots
Eine Wiederholungsrichtlinie für einen Kalshi-API-Trading-Bot sollte ungültige Eingaben, verweigerte Berechtigungen, Belastung der Anfragelimits, Transportfehler und unklare wirtschaftliche Ergebnisse unterscheiden. Diese Kategorien verlangen unterschiedliche Antworten. Eine einzige allgemeine Wiederholungsschleife kann ein kleines Verbindungsproblem in ein größeres Kontoproblem verwandeln.
Ein ungültiges Preisraster oder eine fehlerhaft formatierte Menge erfordert eine Korrektur. Eine Zugriffsverweigerung verlangt, Kontoberechtigung oder Status zu verstehen. Druck auf Anfragelimits erfordert Taktung und Priorisierung. Eine verlorene Antwort nach einem Schreibzugriff verlangt Abgleich. Ein vorübergehender Lesefehler kann einen weiteren Beobachtungsversuch erlauben, ohne eine neue Position zu autorisieren.
Jede Wiederholung muss weiterhin die Frist der Absicht beachten. Ein preisbasierter Einstieg, der vor einer Veröffentlichung sinnvoll war, kann nach einigen Sekunden Verzögerung nicht mehr gelten. Einen abgelaufenen Trade erfolgreich zuzustellen, ist keine erfolgreiche Umsetzung der ursprünglichen Richtlinie.
Verwenden Sie bei wiederholbarer Kommunikationsarbeit zunehmende Warteintervalle mit Obergrenzen für die Anzahl der Versuche und die verstrichene Zeit. Wählen Sie die Grenzen nach Wert und Dringlichkeit der Aufgabe. Das Ausschöpfen der Wiederholungsrichtlinie sollte einen klaren ungeklärten Zustand erzeugen und keine unsichtbare, endlos laufende Schleife.
Erfassen Sie den Grund jedes Versuchs. Ein späterer Prüfer sollte erkennen können, ob der Client frische Nachweise beschaffte, eine dokumentierte duplikatsichere Aktion wiederholte oder Unsicherheit untersuchte. Diese Unterscheidung hilft festzustellen, ob das eigentliche Problem in der Handelsplatzantwort, im lokalen Anfrageaufbau oder in den zeitlichen Annahmen der Strategie liegt.
Halten Sie Lesekapazität für die Wiederherstellung frei
Ein Client kann sinnvolle Kontrolle verlieren, wenn Routineabfragen die zur Prüfung einer unklaren Order nötige Kapazität verbrauchen. Die Budgetierung von Anfragelimits sollte daher Raum für Kontowiederherstellung und Risikoreduktion reservieren, statt jede Anfrage gleich zu behandeln.
Die aktuellen Kalshi-Limits verwenden Tokenkosten und kontospezifische Budgets. Die Dokumentation zu Anfragelimits unterscheidet Lese- und Schreibressourcen und beschreibt aktuelle Routingdetails. Ein Client sollte die anwendbare Konfiguration ermitteln, statt für jedes Konto und jeden Endpunkt dieselbe feste Zahl von Anfragen pro Sekunde anzunehmen.
Betrachten Sie einen hypothetischen Zeitplaner mit begrenztem Lesebudget. Ein vollständiger Scan Hunderter unbeteiligter Märkte kann weniger wichtig sein als die Prüfung, ob eine kürzlich erteilte Order ausgeführt wurde. Blockiert der Scan diese Prüfung, bleibt die Strategie möglicherweise länger im Ungewissen und versäumt zulässige Aktionen oder führt unsichere aus.
Stapelverarbeitung und Streaming können Arbeit verringern, beseitigen aber nicht die Notwendigkeit, die Semantik der Endpunkte zu verstehen. Ein Stapel kann unterschiedliche Ergebnisse enthalten. Ein Stream kann abbrechen. Der Zeitplaner sollte die Informationen priorisieren, die zum Feststellen der aktuellen Kontoverpflichtungen erforderlich sind.
Messen Sie Anfragekosten nach Zweck. Trennen Sie Marktsuche, normale Beobachtung, Ordernachverfolgung und Wiederherstellung. So lässt sich bei wachsendem Druck Hintergrundarbeit reduzieren, ohne versehentlich die kontoschützenden Prüfungen abzuschalten.
Rekonstruieren Sie Teilausführungen ohne Doppelzählung
Eine Teilausführung verändert sowohl den Bestand als auch das verbleibende Orderrisiko. Der Client muss beide Tatsachen erhalten. Eine angefragte Menge von 30, davon 12 ausgeführt und 18 weiterhin aktiv, unterscheidet sich von einer abgeschlossenen Order, bei der nur 12 ausgeführt wurden.
Klären Sie, ob jedes Feld kumulativ oder inkrementell ist. Zeigt eine Antwort eine insgesamt ausgeführte Menge von 12 und eine spätere Antwort 20, beträgt die zusätzliche Ausführung acht. Beide Gesamtwerte zu addieren, erzeugt eine falsche Position von 32. Inkrementelle Ausführungsereignisse erfordern eine andere Behandlung einschließlich Duplikaterkennung.
Eine Stornierung kann sich zeitlich mit einer Ausführung überschneiden. Die endgültige Aufzeichnung muss zulassen, dass eine Teilmenge ausgeführt wurde, bevor die verbleibende Order entfernt wurde. Eine erfolgreiche Stornierung macht frühere Ausführungen weder rückgängig noch beweist sie, dass die ursprüngliche Anfrage wirkungslos blieb.
Verwenden Sie Kontopositionen als Gegenprüfung und beachten Sie, dass Momentaufnahmen unterschiedliche Beobachtungszeiten abbilden können. Ziel ist ein erklärter Abgleich, nicht identische Antworten aller Endpunkte in jedem Augenblick zu erzwingen. Bewahren Sie Zeitstempel und die Reihenfolge der Nachweise auf, mit denen eine Differenz geklärt wurde.
Der Leitfaden zur Kontosynchronisierung auf Prognosemärkten entwickelt diese Überlegung auf Systemebene. An der API-Grenze besteht die wesentliche Aufgabe darin, ausreichend Identitäts- und Mengendetails zu erhalten, damit ein späterer Abgleich korrekt möglich ist.
Testen Sie die Grenze mit gezielt erzeugten Fehlern
Nützliche Clienttests konzentrieren sich auf Fehler, die die wirtschaftliche Bedeutung verändern können. Testen Sie eine gebrochene Menge, einen Preis an einer Bandgrenze, eine abgelaufene Absicht und ein unbekanntes Antwortfeld. Für jeden Fall sollte eine erwartete Entscheidung vorliegen, die ohne Live-Trade geprüft werden kann.
Testen Sie anschließend Kommunikationsunsicherheit. Simulieren Sie das Verschwinden einer Antwort nach einer angenommenen Anfrage. Starten Sie den Client neu, während diese Absicht ungeklärt bleibt. Erwartet wird, die bestehende Absicht wiederherzustellen und ihr Kontoergebnis zu prüfen, statt aus einem leeren Zustand eine neue Strategieentscheidung zu beginnen.
Testen Sie auch fehlerhafte Quelldaten. Ein fehlender Preis darf nicht zu null werden. Eine Zeichenfolge, die sich nicht parsen lässt, darf nicht zur Standardmenge werden. Unbrauchbare Daten mit Erklärung abzulehnen, ist ein erfolgreiches Testergebnis.
Halten Sie Zugangsdaten und tatsächliche Kontoaktionen aus gewöhnlichen automatisierten Testläufen heraus. Kontrollierte Testdaten können das Umrechnungs- und Klassifizierungsverhalten belegen. Eine separate autorisierte Demoübung kann anschließend die Verbindung prüfen, ohne simulierte Liquidität als Beleg für die Ausführungsqualität im Livebetrieb zu behandeln.
Bewahren Sie die Fehlerfälle schließlich bei der Weiterentwicklung der API auf. Der Wert einer Regressionssammlung liegt darin, wirtschaftliche Erwartungen zu erhalten, während sich das Anfrageformat ändert. Ein Update ist akzeptabel, wenn es weiterhin das beabsichtigte begrenzte Verhalten erzeugt, nicht schon dann, wenn es kompiliert oder einen erfolgreichen HTTP-Status zurückgibt.
Behandeln Sie API-Änderungen als geprüfte Übersetzungsaufgabe
Eine API-Änderung sollte eine Prüfung der Adapterannahmen auslösen. Neue Feldnamen können einfach sein, aber eine geänderte Preiskonvention, Mengenbedeutung oder Antwortvollständigkeit kann das Kontoverhalten verändern, selbst wenn der Code weiterläuft.
Führen Sie eine kleine Kompatibilitätsaufzeichnung mit der geprüften Dokumentation, den unterstützten Anfrageformaten und den Testfällen, die ihre Bedeutung belegen. Beschreiben Sie einen Client nicht als dauerhaft kompatibel. Kompatibilität ist ein Nachweis, der an eine Version und eine getestete Menge von Operationen gebunden ist.
Vergleichen Sie bei einer Migration die normalisierten Ergebnisse gespeicherter Beispiele. Dieselbe wirtschaftliche Absicht sollte in der neuen Darstellung gleichwertige Grenzen und dieselbe Richtung erzeugen. Derselbe Ausführungsverlauf sollte zu derselben Position und Erklärung der Geldbewegungen führen. Unterschiede sollten verstanden sein, bevor neue Aktionen freigeschaltet werden.
Ein eng begrenzter Adapter macht diese Arbeit handhabbar. Die Strategieforschung kann weiterhin mit ausdrücklich benannten Kontrakten, Wahrscheinlichkeiten und wirtschaftlichen Grenzen arbeiten, während eine geprüfte Grenze aktuelle Handelsplatzkonventionen behandelt. Diese Trennung macht API-Wartung zu einem konkreten Übersetzungsproblem und gibt dem Kontoinhaber eine klarere Grundlage für die Entscheidung, wann der Client wieder handeln darf.
Verwandte Leitfäden und durchgerechnete Beispiele
- Automatisierter Handel über die Kalshi-API: Jede Entscheidung verfolgen — Entwickeln Sie einen prüfbaren Client von der Marktsuche bis zum Kontoabgleich.
- Kalshi-Handels-API: Die richtige Datenschnittstelle wählen — Wählen Sie Markt- und Kontoschnittstellen unter Beachtung von Anfragebudgets und Datenkonventionen.