Positionen über die Tradovate-API glattstellen und liquidieren
Jeder automatisierte Trader kennt diesen Moment: Ihre Strategie hält eine Position, und Sie müssen sofort raus aus allem. So setzt der liquidatePosition-Aufruf der Tradovate-API einen offenen Kontrakt auf null – von der Abfrage Ihrer Konto-ID bis zum Glattstellen des gesamten Kontos.
On This Page
Jeder automatisierte Trader kennt diesen Moment: Ihre Strategie hält eine Position, der Markt dreht gegen Sie, und Sie müssen jetzt aus allem raus. Die Flatten-Schaltfläche auf einer Webseite zu suchen, ist zu langsam. Genau dafür gibt es den liquidatePosition-Aufruf der Tradovate-API. Eine einzige Anfrage setzt einen offenen Kontrakt auf null – ohne manuelle Klicks im DOM. Diese Anleitung führt Sie durch den gesamten Weg, von der Abfrage Ihrer Konto-ID bis zur Schleife über alle offenen Positionen, sodass das Konto am Ende komplett glatt ist.
Kurz zur Einordnung, was dieser Endpunkt tatsächlich tut: Er storniert keine ruhende Order und „verkauft“ auch nicht einfach ein paar Kontrakte. Er ermittelt die Nettoposition, die Sie in einem Kontrakt halten, und sendet eine Market-Order in Gegenrichtung, um diese Nettoposition auf null zu bringen. Da es sich um eine Live-Order handelt, wird sie nur ausgeführt, solange die Handelssitzung des Kontrakts geöffnet ist.
Bevor Sie beginnen
- API-Zugang und ein gültiges Token. Für das Konto muss API Access aktiviert sein, und Sie benötigen ein gültiges Access-Token. Falls Sie das noch nicht eingerichtet haben, beginnen Sie mit Tradovate-API-Zugang und Schlüssel erhalten.
- Die richtige Umgebung. Demo und Live sind getrennte Hosts:
demo.tradovateapi.com/v1für die Simulation,live.tradovateapi.com/v1für echtes Geld. Wenn Sie ein Demo-Token gegen den Live-Host verwenden (oder umgekehrt), erhalten Sie „Access is denied“. - Orderberechtigung für dieses Konto. Das Token muss zu einem Benutzer gehören, der auf dem glattzustellenden Konto Orders platzieren darf.
- Regeln für Prop-Konten. Einige Prop-Firmen deaktivieren die direkte API-Automatisierung auf ihren Evaluierungskonten. Prüfen Sie die aktuellen Regeln Ihrer Firma, bevor Sie auf ein finanziertes Konto hin entwickeln.
Positionen über die Tradovate-API glattstellen und liquidieren: Schritt für Schritt
Authentifizieren und Token aufbewahren
Jeder Aufruf benötigt ein Bearer-Token. Senden Sie Ihre Zugangsdaten an /auth/accessTokenRequest und entnehmen Sie der Antwort den accessToken. Token sind nicht ewig gültig. Läuft Ihr Prozess länger, rufen Sie /auth/renewAccessToken auf, bevor das aktuelle Token abläuft, statt auf einen 401 zu warten. Fügen Sie bei jeder weiteren Anfrage den Header Authorization: Bearer YOUR_ACCESS_TOKEN hinzu.
Numerische Konto-ID abrufen
Die Liquidation bezieht sich auf eine numerische Konto-ID, nicht auf den Kontonamen, den Sie in der App sehen. Senden Sie ein GET an /account/list, und Sie erhalten ein Array der Konten, die Ihr Benutzer sehen kann. Übernehmen Sie das Feld id (eine Zahl wie 2100) des Kontos, das Sie glattstellen möchten. Bei mehreren Konten gleichen Sie über das Feld name ab und verwenden dann die id dieser Zeile.
Offene Positionen und ihre Kontrakt-IDs finden
Einen Kontrakt, den Sie nicht benennen können, können Sie nicht liquidieren. Rufen Sie /position/list auf und sehen Sie sich zwei Felder jeder Zeile an: contractId und netPos. netPos ist die vorzeichenbehaftete Anzahl der gehaltenen Kontrakte. Positiv bedeutet Long, negativ Short, null bedeutet, dass Sie in diesem Kontrakt bereits glatt sind. Jede Zeile, in der netPos nicht null ist, ist eine offene Position, die Sie ggf. schließen möchten. Notieren Sie die contractId. Möchten Sie ein lesbares Symbol für Ihr Log, übergeben Sie diese ID an /contract/item?id={contractId}.
Die Liquidation auslösen
Jetzt der eigentliche Aufruf. Senden Sie ein POST an /order/liquidatePosition mit der soeben ermittelten Konto-ID und Kontrakt-ID und übergeben Sie im Body accountId, contractId und einen booleschen Wert admin. Hier stolpern viele über ein paar Details.
Alles glattstellen, dann bestätigen
Die REST-API kennt keine einzelne Schaltfläche „alles schließen“. Um das gesamte Konto glattzustellen, durchlaufen Sie eine Schleife. Rufen Sie /position/list ab, behalten Sie die Zeilen mit netPos ungleich null und rufen Sie /order/liquidatePosition einmal pro contractId auf. Zwei offene Kontrakte? Zwei Aufrufe. Prüfen Sie anschließend: Rufen Sie /position/list erneut ab, und jedes netPos sollte 0 anzeigen. Außerdem lohnt sich ein Blick in /order/list, um sicherzustellen, dass alle mit diesen Positionen verknüpften Bracket- oder OCO-Orders tatsächlich verschwunden sind, damit ein übrig gebliebener Stop Sie später nicht wieder in eine Position bringt.
| Feld | Bedeutung |
|---|---|
| accountId | Erforderlich. Die numerische id aus Schritt 2. |
| contractId | Erforderlich und muss größer als 0 sein. Die Übergabe von 0 löst „contractId must be > 0“ aus. Verwenden Sie die echte ID aus /position/list. |
| admin | Ein boolescher Wert, den der Body erwartet. Reguläre Konten übergeben false. Wird er weggelassen, ist das die klassische Ursache für einen 400-Fehler. |
| customTag50 | Optional. Eine kurze Zeichenfolge als Tag für Ihr eigenes Tracking. |
Der Server ermittelt Ihre Nettoposition selbst und sendet die Market-Order zum Schließen. Falls die Position zwischen Ihrer Positionsprüfung und diesem Aufruf bereits glatt wurde, erhalten Sie statt eines versehentlichen Gegengeschäfts ein harmloses No-Op, sodass Sie das Timing nicht perfekt treffen müssen.
Wenn es nicht funktioniert
Die meisten Fehler lassen sich auf drei Ursachen zurückführen. Ein 401 „Access is denied“ bedeutet fast immer den falschen Umgebungs-Host, die falsche Konto-ID oder einen Benutzer ohne Orderberechtigung für dieses Konto. contractId must be > 0 bedeutet, dass Sie einen Platzhalter statt einer echten ID gesendet haben. Und ein einfacher 401 bei abgelaufenem Token erfordert lediglich eine Erneuerung. Wird die Liquidations-Order selbst abgelehnt, ist der Grund meist derselbe, der jede Order blockiert. Prüfen Sie daher die allgemeinen Hinweise zu Access denied bei Place Order und vergewissern Sie sich, dass der Markt geöffnet ist.
Automatisieren Sie dies mit PickMyTrade
Sie möchten sich nicht selbst um Token, Positionsschleifen und Liquidationslogik kümmern? PickMyTrade verbindet Ihre TradingView-Alerts direkt mit Tradovate, sodass Einstiege, Ausstiege und Glattstellungsbefehle automatisch ausgeführt werden, ohne dass Sie eine Zeile API-Code schreiben.
Verzichten Sie auf Liquidations-Schleifen
Lassen Sie PickMyTrade Ihre TradingView-Alerts direkt mit Tradovate verbinden – Einstiege, Ausstiege und Glattstellungsbefehle werden automatisch ausgeführt.
Starten Sie Ihre kostenlose 7-Tage-TestphaseHäufig gestellte Fragen
Meist liegt es am falschen Umgebungs-Host, an der falschen Konto-ID oder an einem Benutzer ohne Orderberechtigung für dieses Konto. Demo-Token funktionieren nur mit demo.tradovateapi.com/v1, Live-Token nur mit live.tradovateapi.com/v1.
Sie haben einen Platzhalter statt einer echten Kontrakt-ID gesendet. Holen Sie die tatsächliche contractId aus /position/list, bevor Sie liquidatePosition aufrufen.
Nein. Der Aufruf ermittelt nur Ihre Nettoposition in einem Kontrakt und sendet eine Market-Order in Gegenrichtung, um sie auf null zu bringen. Prüfen Sie nach der Liquidation separat über /order/list, ob alle mit dieser Position verknüpften Bracket- oder OCO-Orders tatsächlich verschwunden sind.
Dieser Leitfaden dient ausschließlich Bildungs- und Informationszwecken und stellt keine Finanz-, Anlage- oder Handelsberatung dar. Der Handel mit Futures und anderen gehebelten Produkten ist mit einem erheblichen Verlustrisiko verbunden und nicht für jeden Anleger geeignet. PickMyTrade ist eine unabhängige Automatisierungsplattform eines Drittanbieters und steht in keiner Verbindung zu Tradovate, Inc., wird weder von Tradovate, Inc. unterstützt noch gesponsert. „Tradovate“ und alle zugehörigen Namen, Logos und Marken sind Eigentum ihrer jeweiligen Inhaber. Funktionen und Schritte der Plattform ändern sich im Laufe der Zeit; bestätigen Sie daher stets den aktuellen Ablauf in der offiziellen Tradovate-Plattform und -Dokumentation, bevor Sie handeln.