Diese Seite wurde maschinell übersetzt. Das englische Original ist maßgeblich. Auf Englisch lesen
Zum Hauptinhalt springen

Self-Trade Prevention (STP)

Automatischer Schutz vor Selbsthandel.

Überblick

Wenn eine eingehende (Taker-)Order gegen eine ruhende (Maker-)Order derselben Wallet matchen würde, storniert die Engine beide Orders, anstatt sie auszuführen. Dies verhindert Wash Trading und schützt Market Maker davor, versehentlich ihre eigenen Quotes zu kreuzen.

STP ist immer aktiv. Es gibt keine Konfiguration, kein Opt-out und keine alternativen Modi.

Verhalten

Strategie: Cancel Both

Wenn ein Selbsthandel erkannt wird:

  1. Die Maker-Order wird mit dem Grund "Self-trade prevention" storniert
  2. Die Taker-Order wird abgelehnt (falls keine vorherigen Ausführungen) oder storniert (falls teilweise ausgeführt)

Zwischen den beiden Orders wird keine Ausführung generiert.

Abgleich auf Wallet-Ebene

STP vergleicht Wallet-Adressen, nicht Agent-Keys. Wenn Sie Agent-Autorisierung verwenden, um Orders mit mehreren Keys zu signieren, unterliegen alle Orders unter derselben Trading-Wallet gegenseitig dem STP.

Teilausführungen bleiben erhalten

Wenn eine Taker-Order gegen andere Kontrahenten ausgeführt wird, bevor ein Selbsthandel auftritt, bleiben diese Ausführungen erhalten.

Beispiel: Im Orderbuch werden 5 Kontrakte von Wallet B angeboten, danach 5 Kontrakte von Wallet A. Wallet A gibt eine Kauforder über 10 Kontrakte auf:

SchrittMatch gegenErgebnis
1Wallet B (5 Kontrakte)Ausführung: 5 Kontrakte ausgeführt
2Wallet A (5 Kontrakte)Selbsthandel erkannt

Ergebnis:

  • Wallet A erhält eine Ausführung über 5 Kontrakte gegen Wallet B
  • Die Maker-Order von Wallet A (5 Kontrakte) wird storniert
  • Die Taker-Order von Wallet A wird mit filled_size: 5 storniert

Order-Status

SzenarioTaker-StatusGrund
Keine vorherigen AusführungenRejected"Self-trade prevention"
Teilausführungen vor dem SelbsthandelCanceled"Self-trade prevention (partial fill kept)"

Die Maker-Order erhält immer den Status Canceled mit dem Grund "Self-trade prevention".

GTC-Orders ruhen nach einem Selbsthandel nicht

Wenn eine GTC-Taker-Order STP auslöst, wird die verbleibende Menge nicht in das Orderbuch aufgenommen, selbst wenn die Order normalerweise ruhen würde. Die Order wird vollständig beendet.

WebSocket-Benachrichtigungen

Sowohl die Stornierung/Ablehnung der Taker- als auch der Maker-Order werden über den Kanal order_updates zugestellt. Das Feld reason gibt an, dass STP die Ursache war.

Monitoring

STP-Ereignisse erhöhen den Prometheus-Zähler ht_engine_self_trade_prevented_total.

FAQ

Kann ich einen anderen STP-Modus wählen (z. B. Cancel-Newest oder Decrement)? Nein. Hypercall verwendet ausschließlich Cancel-Both.

Gilt STP für Perp-Orders? Ja. STP gilt für alle Ordertypen auf der Matching-Engine, sowohl für Optionen als auch für Perpetuals.

Gilt STP für RFQ-Trades? Ja. Wenn der Taker und ein Quote-Anbieter dieselbe Wallet nutzen, wird die Quote abgelehnt.

Ich bin ein Market Maker und quotiere beide Seiten. Werden sich meine Quotes gegenseitig stornieren? Nur wenn eine eingehende Order dazu führen würde, dass sie sich kreuzen. Ruhende Orders auf gegenüberliegenden Seiten des Orderbuchs zu unterschiedlichen Preisen koexistieren normal. STP wird nur zum Zeitpunkt des Matchings ausgelöst.