Skip to main content
Zurück zu Docs
🤖Bot-Builder

Bot-Ausführungs-Engine

Wie Bots via Cron laufen, Paper vs Live-Modus

Die Bot-Ausführungs-Engine ist die cron-gesteuerte Laufzeitumgebung, die deine Bot-Strategien tatsächlich ausführt. Wenn du verstehst, wie sie funktioniert, kannst du unerwartetes Bot-Verhalten leichter debuggen und die Performance optimieren.

Architektur

Die Ausführungs-Engine ist ein Vercel-Cron-Job, der alle 15 Minuten läuft:

  1. Trigger. Der Vercel-Cron ruft /api/cron/execute-bots jeweils um 0/15/30/45 nach jeder vollen Stunde auf.
  2. Authentifizierung. Der Endpunkt verifiziert anhand eines signierten Tokens, dass die Anfrage von Vercel stammt.
  3. Bot-Enumeration. Ruft alle Bots mit status="running" aus der Datenbank ab.
  4. Strategie-Dispatch. Für jeden Bot wird das passende Strategie-Template geladen (EV Follower, ARB Hunter usw.).
  5. Markt-Auswertung. Die Strategie prüft den aktuellen Marktzustand anhand der Parameter des Bots.
  6. Order-Platzierung. Wenn die Bedingungen zutreffen, übermittelt die Engine Orders über die Polymarket CLOB API (Live-Modus) oder erfasst simulierte Fills (Paper-Modus).
  7. Audit-Logging. Jede Aktion — Auswertung, Trade, Fehler — wird im Audit-Trail protokolliert.

Warum 15 Minuten?

Die Wahl von 15-Minuten-Intervallen wägt mehrere Faktoren gegeneinander ab:

  • Polymarket-Rate-Limits. Die CLOB API erlaubt 10 Trades/Minute pro Nutzer. Über alle Bots × alle Nutzer hinweg müssen wir unterhalb der aggregierten Limits bleiben.
  • Kosten. Bei jedem Cron-Tick werden alle Märkte für alle Bots gescannt. Häufiger = mehr Rechenaufwand = höhere Kosten.
  • Abnehmender Grenznutzen. Prediction-Märkte bewegen sich langsamer als Krypto- oder Aktienmärkte. Eine Granularität von 5 Minuten gegenüber 15 Minuten erfasst nur selten zusätzlichen Alpha.
  • Kompatibilität mit dem Vercel-Free-Tier. Unser Cron-Zeitplan passt innerhalb der Limits des Hobby-Tiers von Vercel.

Für Nutzer im Bot-Plan, die eine schnellere Ausführung wünschen, sind TWAP-Orders nicht an den 15-Minuten-Cron gebunden — sie werden über einen separaten Cron in Slices pro Minute ausgeführt.

Tatsächlich Durchgesetzte Limits

Die Bremsen des Bots wirken über GELD und offene Positionen, nicht über einen Trade-Zähler:

  • Pro Trade: standardmäßig 25 $ in der Automatisierung, anpassbar unter Einstellungen → Trading.
  • Pro Bot und Tag: standardmäßig 100 $, plus ein optionales Limit für die Anzahl Trades, das du am Bot selbst setzt.
  • Pro Bot, gleichzeitig: 3 offene Live-Positionen, und nie zwei im selben Markt am selben Tag.
  • Pro Profil und Tag: ein Gesamtbudget, das vor jeder Order atomar reserviert wird, damit zwei Bots nicht denselben Dollar ausgeben.

Wird ein Limit erreicht, wird die Order abgelehnt, protokolliert und dir gemeldet — der Bot macht weiter, statt es erneut zu versuchen. ## Was Passiert, Wenn ein Trade Fehlschlägt

Die CLOB-API kann aus mehreren Gründen fehlschlagen:

  • Netzwerkfehler. Die Idempotenz-Reservierung bleibt bestehen und die Order geht in die Abstimmung — nie wird blind eine zweite Order gesendet.
  • Unzureichendes Guthaben. Wird abgelehnt, bevor die Venue erreicht wird, protokolliert und gemeldet; der Bot wird deswegen nicht pausiert.
  • Markt geschlossen. Wird protokolliert, und der Bot geht zur nächsten Gelegenheit über.
  • Preis verschoben. Liegt der Preis außerhalb deines Limits, kreuzt die Order nicht und der Bot versucht es im nächsten Zyklus erneut.

Ein fehlgeschlagener Trade bricht die Ausführung nicht ab: er wird protokolliert und der Bot läuft weiter. ## Deine Bots überwachen

Drei Oberflächen zeigen dir, was deine Bots tun:

  • Performance (Bot-Plan) — PnL pro Bot mit getrenntem Live und Paper, Trefferquote, Anzahl der Trades und die noch offenen Positionen.
  • Sicherheit → Audit-Log — die Spur jeder sensiblen Kontoaktion, einschließlich einer abgelehnten echten Order und dem Grund (Kill Switch, Tageslimit, Plan, Region).
  • Benachrichtigungen — Fills und Fehler erreichen dich in der App und, wenn du den Kanal verifiziert hast, per Telegram oder WhatsApp. Ein Bot, der seinen maximalen Verlust erreicht, pausiert sich selbst und sagt es dir.

Hat ein Bot nicht gehandelt, obwohl du es erwartet hast, steht der Grund im Audit-Log. Ein Skip-Log pro Zyklus gibt es nicht: Ein Zyklus, der nichts findet, tut einfach nichts.

Ausführung manuell auslösen

Mit der Schaltfläche „Execute now" auf der Bots-Seite (für Nutzer im Bot-Plan verfügbar) kannst du sofort einen Zyklus auslösen, ohne auf den nächsten Cron-Tick zu warten. Nützlich für:

  • Testen von Parameteränderungen, ohne 15 Minuten zu warten
  • Erfassen zeitkritischer Signale, die du manuell identifiziert hast
  • Überprüfen der Konnektivität nach einer Wartung der CLOB API

Manuelle Auslösungen zählen auf dein Tages-Rate-Limit an. Spamme diese Schaltfläche nicht.

Einen Bot stoppen

Drei Möglichkeiten, einen Bot zu stoppen:

  1. Pausieren. Der Bot behält bestehende Positionen, geht aber keine neuen ein. Für kurze Pausen.
  2. Stoppen. Der Bot wird vollständig deaktiviert. Offene Positionen bleiben bestehen; schließe sie manuell.
  3. Kill-Switch (global). Einstellungen → Trading → Kill Switch stoppt sofort ALLE Bots und JEGLICHE automatisierte Ausführung. Für Notfälle.

Der Kill-Switch ist die richtige Wahl, wenn du unerwartetes Verhalten bemerkst — pausiere zum Untersuchen und reaktiviere, sobald du sicher bist.

Audit-Trail

Jede Bot-Aktion wird in der Tabelle bot_audit_logs protokolliert, mit:

  • Zeitstempel
  • Bot-ID
  • Aktionstyp (evaluate, place_order, close_order, error)
  • Beteiligter Markt
  • Entscheidungsbegründung (welche Bedingung ausgelöst hat oder warum übersprungen wurde)
  • Order-Details (Größe, Preis, Richtung)
  • Ergebnis (filled, rejected, partial)

Du kannst Audit-Logs als CSV von der Bot-Detailseite exportieren. Nützlich für:

  • Steuermeldungen (Export für Form 8949 verfügbar)
  • Strategie-Review („Warum hat der Bot diesen Markt ausgelassen?")
  • Debugging, wenn das Verhalten nicht den Erwartungen entspricht
  • Compliance-Dokumentation, wenn du professionell handelst

Häufige Probleme bei der Bot-Ausführung

Der Bot zeigt „running", handelt aber nie.

  • Prüfe das Skip-Log — wahrscheinlich liegen alle Signale unter deiner Mindest-Edge-Schwelle.
  • Versuche, min_edge leicht zu senken, aber gehe nicht unter 5pp.
  • Stelle sicher, dass die Kategorie-Filter nicht zu eng gefasst sind.

Der Bot handelt zu viel.

  • Das Tages-Trade-Limit ist zu hoch.
  • Die Mindest-Edge ist zu niedrig — du fängst Rauschen ein.
  • Füge zusätzliche Filter hinzu (Mindest-Konfidenz, Mindest-Volumen).

Der Bot handelt nur auf einer Plattform.

  • Prüfe den Polymarket-vs.-Kalshi-Schalter in der Bot-Konfiguration.
  • Stelle sicher, dass die Statusanzeige der anderen Plattform grün ist.

Ein Live-Bot hat plötzlich aufgehört zu handeln.

  • Prüfe den Status der CLOB API (sie könnte ausgefallen sein).
  • Prüfe, ob deine CLOB-API-Zugangsdaten nicht abgelaufen sind.
  • Prüfe, ob dein Polymarket-Wallet ein USDC-Guthaben hat.

Verwandte Dokumentation