Ablehnungscodes für Perp-Orders
Wenn das Orderformular anzeigt, dass eine Order „abgelehnt würde“, zitiert es einen Ablehnungscode (Reason Code). Derselbe Code kommt sowohl von der Live-Prüfung vor dem Signieren (der Vorschau) als auch von der tatsächlichen Übermittlung zurück. Was das Formular anzeigt, entspricht also dem, was der Server tun würde.
So verwendet das Formular die Codes:
- Blockierende Codes ersetzen die Beschriftung des Absende-Buttons durch den Grund (zum Beispiel
Not enough margin), bis Sie die Order ändern. - Aktualisierungscodes (
stale_position_snapshot,venue_risk_unavailable) werden automatisch erneut geprüft und blockieren den Button nie. - Wiederholen-und-blockieren-Codes (
price_unavailable,account_health_unavailable) werden ebenfalls automatisch erneut geprüft, blockieren den Button jedoch, bis die Prüfung erfolgreich ist. - Eine fehlgeschlagene Vorschau blockiert Sie nie. Ist die Vorschau nicht erreichbar, zeigt das Formular keine Zahlen an, und Sie können trotzdem absenden. Die eigentliche Prüfung läuft bei der Übermittlung weiterhin.
invalid_order,engine_rejectedund jeder unbekannte Code blockieren und zeigen die Meldung des Servers unverändert an, da sie das fehlgeschlagene Feld oder die verletzte Regel benennt.
API-Nutzer erhalten denselben Wert in reasonCode bei POST /v1/tee-perp/preview sowie in den Antworten auf Order-, Batch- und Hebel-Übermittlungen. Der menschenlesbare Text (reason in der Vorschau, message in Submit-Antworten) ist Diagnosetext. Verzweigen Sie anhand des Codes.
Margin und Position
| Code | Bedeutung | Maßnahme |
|---|---|---|
insufficient_margin | Nachdem diese Order (und jede offene Perp-Order) ausgeführt ist, würde Ihr Konto seine Anforderung nicht decken. Die Anforderung ist der ungünstigere Wert aus Hypercall-Portfolio-Margin und Hyperliquid-Margin. | Nutzen Sie die Karte, die das Formular anzeigt: Maximum verwenden (größte Ordergröße, die die Prüfung besteht), Auf N× erhöhen (kleinster Hebel, der die Prüfung besteht) oder Einzahlen des Fehlbetrags. Auch das Stornieren ruhender Orders gibt Margin frei. |
reduce_only_exceeds_position | Eine Reduce-only-Order würde Ihre Position vergrößern oder umkehren, statt sie zu verkleinern. | Setzen Sie die Größe auf höchstens Ihre offene Position (das Formular bietet Position verwenden an), oder deaktivieren Sie Reduce only. |
mode_change_with_position | Sie haben versucht, in einem Markt, in dem Sie eine Position halten, zwischen Cross und Isolated zu wechseln. Hyperliquid erlaubt das ebenfalls nicht. | Behalten Sie den aktuellen Modus bei, oder schließen Sie die Position und wechseln Sie dann. |
leverage_requires_flat_account | Eine Hebeländerung wurde abgelehnt, weil das Konto offene Perp-Positionen oder ausstehende Perp-Orders hat. Das tritt nur auf, wo Hypercall das Hyperliquid-Liquidationsrisiko nicht in der Margin berücksichtigt. In Produktion wird es berücksichtigt, daher gibt Produktion diesen Code nicht zurück. | Schließen Sie die Positionen und stornieren Sie die Perp-Orders, und ändern Sie dann den Hebel. |
liquidation_pending | Das Konto befindet sich in der Vor-Liquidation, und eine vollständige Liquidation steht unmittelbar bevor. Hypercall lehnt neue Perp-Orders für das Konto ab. | Warten Sie, bis die Liquidation abgeschlossen ist. Siehe Liquidation. |
Kontoeinrichtung
| Code | Bedeutung | Maßnahme |
|---|---|---|
account_not_pm | Perp-Orders erfordern ein Portfolio-Margin-Konto. | Aktivieren Sie Portfolio-Margin auf Ihrer Kontoseite und versuchen Sie es erneut. |
unified_mode_required | Orders, die Risiko hinzufügen, erfordern auf dem Handelskonto den Hyperliquid-Modus Unified Account. | Klicken Sie im Formular auf Unified-Modus aktivieren. |
builder_not_approved | Hyperliquid hat die Order abgelehnt, weil das Konto die Builder-Adresse von Hypercall nicht genehmigt hat. Dieser Code kommt bei der Übermittlung von Hyperliquid zurück, nicht aus der Vorschau, und API-Nutzer sehen ihn im Feld errorCode der Übermittlungsantwort, nicht in reasonCode. | Klicken Sie einmalig auf Handel aktivieren. Siehe Perps auf Hypercall. |
account_health_unavailable | Hypercall kann den Margin-Zustand des Kontos derzeit nicht lesen und lehnt daher alles ab, was Risiko hinzufügt. | Das Formular prüft automatisch erneut. Um in der Zwischenzeit Risiko abzubauen, senden Sie die Order mit aktiviertem Reduce only. |
Markt und Daten
| Code | Bedeutung | Maßnahme |
|---|---|---|
market_not_supported | Für diesen Markt kann Hypercall kein Risiko berechnen. Benötigt werden ein Preisfeed, ein Margin-Szenarioraster und ein USDC-margined Hyperliquid-Schedule für Ihr Konto. | Wählen Sie einen unterstützten Markt. |
trading_halted | Der Handel ist pausiert, entweder insgesamt oder für diesen Markt. | Warten Sie. Das Formular hält den Button deaktiviert, bis der Handel wieder aufgenommen wird. |
price_unavailable | Der Preis, mit dem Hypercall den Markt bewertet, fehlt oder ist veraltet. | Das Formular prüft automatisch erneut. Hypercall schätzt keinen Preis, sondern lehnt ab, bis ein aktueller Preis vorliegt. |
stale_position_snapshot | Ihr letzter Hyperliquid-Positions- oder Equity-Stand fehlt oder ist zu alt. | Nichts. Das Formular prüft selbstständig einmal erneut. Besteht das Problem weiter, laden Sie die Seite neu. |
venue_risk_unavailable | Die Hyperliquid-Risikodaten (Hebel, Liquidationspreise, Collateral pro Position) fehlen oder stimmen nicht mit Ihrem letzten Positionsstand überein. | Nichts. Das Formular prüft selbstständig einmal erneut. |
Orderbedingungen
| Code | Bedeutung | Maßnahme |
|---|---|---|
invalid_order | Die Orderbedingungen sind ungültig: Preis- oder Größenpräzision, eine fehlerhafte TP/SL-Klammer oder eine ungültige Client-Order-ID. | Korrigieren Sie den Preis-Tick oder die Größenschrittweite und übermitteln Sie erneut. |
action_not_supported | Die Richtlinie der Signier-Enclave erlaubt diese Art von Aktion nicht. Tritt der Code bei einem Ordertyp auf, den das Formular anbietet, markiert das Formular diesen Typ als nicht aktiviert. | Verwenden Sie einen unterstützten Ordertyp. |
engine_rejected | Jede andere Ablehnung. Der Text in reason enthält die genaue Ursache. | Lesen Sie die Meldung. Ist sie unklar, wenden Sie sich mit dem Text an den Support. |