Bitmex | How to Place Orders
Die Bitmex-REST-API bietet öffentliche und private Endpunkte. Die privaten Endpunkte erfordern, dass Nachrichten signiert werden, um die Sicherheit von Transaktionen zu erhöhen.
Zuerst müssen Sie sich bei Ihrem Bitmex-Konto anmelden und eine neue API erstellen, Sie erhalten die folgenden Werte:
Diese Felder müssen in der Bitmex-Eigenschaft der Bitmex-API-Client-Komponente konfiguriert werden. Einmal konfiguriert, können Sie damit beginnen, private Anforderungen an die Bitmex REST API zu stellen.
Order-Typen
Alle Orders erfordern ein Symbol. Alle anderen Felder sind optional, sofern nicht anders angegeben.
Dies sind die gültigen ordTypes:
- Limit: Der Standard-Ordertyp. Geben Sie eine orderQty und einen Preis an.
- Market: Eine traditionelle Market-Order. Eine Market-Order wird ausgeführt, bis sie gefüllt ist oder Ihr Bankruptcy-Preis erreicht ist, woraufhin sie storniert wird.
- Stop: Eine Stop-Market-Order. Geben Sie eine orderQty und stopPx an. Wenn der stopPx erreicht wird, wird die Order ins Buch eingetragen.
- Bei Sell-Orders wird die Order ausgelöst, wenn der Auslösepreis niedriger als der stopPx ist. Bei Buys höher.
- Hinweis: Stop-Orders verbrauchen keine Margin, bis sie ausgelöst werden. Stellen Sie sicher, dass die erforderliche Margin auf Ihrem Konto verfügbar ist, damit sie vollständig auslösen kann.
- Close-Stops erfordern keine orderQty. Siehe Execution Instructions weiter unten.
- StopLimit: Wie eine Stop-Market-Order, gibt aber eine Limit-Order statt einer Market-Order ein. Geben Sie eine orderQty, stopPx und einen price an.
- MarketIfTouched: Ähnlich wie ein Stop, aber die Auslöser erfolgen in die entgegengesetzte Richtung. Nützlich für Take-Profit-Orders.
- LimitIfTouched: Wie oben; verwenden Sie es für Take-Profit-Limit-Aufträge.
- Pegged: Pegged-Orders ermöglichen Benutzern, einen Limitpreis relativ zum aktuellen Marktpreis einzureichen. Geben Sie einen pegPriceType und pegOffsetValue an.
- Pegged-Orders müssen ein execInst von Fixed haben. Das bedeutet, der Limitpreis wird zum Zeitpunkt der Annahme der Order festgelegt und ändert sich nicht, wenn sich der Referenzpreis ändert.
- PrimaryPeg: Der Preis wird relativ zum Near-Touch-Preis festgelegt.
- MarketPeg: Der Preis wird relativ zum Far-Touch-Preis festgelegt.
- Ein ohne ordType eingereichter pegPriceType wird als Pegged-Order behandelt.
Ausführungsanweisungen
Die folgenden execInsts werden unterstützt. Bei Verwendung mehrerer trennen Sie sie mit einem Komma (z. B. LastPrice,Close).
- ParticipateDoNotInitiate: Auch als Post-Only-Order bekannt. Wenn diese Order bei der Platzierung ausgeführt worden wäre, wird sie stattdessen storniert. Dies soll Sie davor schützen, dass sich der Far Touch auf Sie zubewegt, während die Order unterwegs ist. Es ist nicht dafür gedacht, auf eine Bewegung des Far Touch weg nach der Übermittlung zu spekulieren - wir betrachten ein solches Verhalten als missbräuchlich und überwachen es.
- MarkPrice, LastPrice, IndexPrice: Werden von Stop- und If-Touched-Orders verwendet, um den Auslösepreis zu bestimmen. Verwenden Sie nur eine. Standardmäßig wird MarkPrice verwendet. Wird auch für Pegged-Orders verwendet, um den Wert von LastPeg zu definieren.
- ReduceOnly: Eine ReduceOnly-Order kann Ihre Position nur reduzieren, nicht erhöhen. Wenn Sie eine ReduceOnly-Limit-Order haben, die im Orderbuch liegt, während die Position durch andere Orders reduziert wird, wird ihre Ordermenge nach unten angepasst oder storniert. Wenn es mehrere ReduceOnly-Orders gibt, wird die am wenigsten aggressive zuerst angepasst.
- Close: Close impliziert ReduceOnly. Eine Close-Order storniert andere aktive Limit-Orders mit derselben Seite und demselben Symbol, wenn die offene Menge die aktuelle Position überschreitet. Dies ist nützlich für Stops: Durch das Stornieren dieser Orders wird sichergestellt, dass ein Close-Stop die zur Ausführung erforderliche Margin hat und nur bis zur vollen Größe Ihrer Position ausgeführt werden kann. Wenn orderQty nicht angegeben ist, hat eine Close-Order eine orderQty, die der Größe Ihrer aktuellen Position entspricht.
- Beachten Sie, dass eine Close-Order ohne orderQty eine Seite erfordert, damit BitMEX weiß, ob über oder unter dem stopPx ausgelöst werden soll.
- LastWithinMark: Wird von Stop-Orders mit LastPrice verwendet, um Stop-Auslösungen nur dann zuzulassen, wenn:
- Für Sell Stop Market / Stop Limit Order
- Last Price <= Stop Price
- Last Price >= Mark Price × (1 - 5%)
- Für Buy Stop Market / Stop Limit Order:
- Last Price >= Stop Price
- Last Price <= Mark Price × (1 + 5%)
- Fixed: Pegged Orders müssen einen execInst von Fixed haben. Dies bedeutet, dass der Limitpreis zum Zeitpunkt der Annahme der Order festgelegt wird und sich nicht ändert, wenn sich der Referenzpreis ändert.
Pegged Orders
Pegged Orders ermöglichen es Benutzern, einen Limitpreis relativ zum aktuellen Marktpreis abzugeben. Der Limitpreis wird einmal bei Abgabe der Order festgelegt und ändert sich nicht mit dem Referenzpreis. Dieser Ordertyp ist nicht dafür gedacht, darauf zu spekulieren, dass sich der Far Touch nach der Abgabe entfernt - wir betrachten ein solches Verhalten als missbräuchlich und überwachen darauf.
Pegged-Orders haben einen ordType von Pegged und eine execInst von Fixed.
Es müssen außerdem ein pegPriceType und ein pegOffsetValue übermittelt werden:
- PrimaryPeg - der Preis wird relativ zum Near-Touch-Preis festgelegt
- MarketPeg - der Preis wird relativ zum Far-Touch-Preis festgelegt
Trailing Stop Pegged Orders
Verwenden Sie pegPriceType von TrailingStopPeg, um Trailing Stops zu erstellen.
Der Preis wird bei der Übermittlung festgelegt und einmal pro Sekunde aktualisiert, wenn sich der zugrunde liegende Preis (last/mark/index) um mehr als 0,1 % bewegt hat. stopPx bewegt sich dann mit, während sich der Markt vom Peg wegbewegt, und friert ein, während sich der Markt darauf zubewegt.
Verwenden Sie pegOffsetValue, um den stopPx Ihres Auftrags festzulegen. Der Peg wird auf den im execInst angegebenen Auslösepreis gesetzt (Standard MarkPrice). Verwenden Sie einen negativen Offset für Stop-Sell- und Buy-if-touched-Aufträge.
Erfordert ordType: Stop, StopLimit, MarketIfTouched, LimitIfTouched.
Trailing Stops
Sie können pegPriceType 'TrailingStopPeg' verwenden, um Trailing Stops zu erstellen. Der gepeggte stopPx bewegt sich, wenn sich der Markt vom Peg wegbewegt, und friert ein, wenn sich der Markt darauf zubewegt.
Kombinieren Sie zur Verwendung pegOffsetValue, um den stopPx Ihrer Order festzulegen. Der Peg wird auf den im execInst angegebenen Auslösepreis gesetzt (Standard 'MarkPrice'). Verwenden Sie einen negativen Offset für Stop-Sell- und Buy-if-touched-Orders.
Erfordert ordType: 'Stop', 'StopLimit', 'MarketIfTouched', 'LimitIfTouched'.
Ihre Orders verfolgen
Wenn Sie Order-IDs selbst verfolgen möchten, legen Sie eine eindeutige clOrdID pro Order fest. Diese clOrdID wird als Eigenschaft der Order und aller zugehörigen Ausführungen (auch über den WebSocket) zurückgegeben und kann zum Abrufen oder Stornieren der Order verwendet werden. Die maximale Länge beträgt 36 Zeichen.
Beispiele:
// buy market order
BITMEX.REST_API.PlaceMarketOrder(bmosBuy, 'XBTUSD', 100);
// sell limit order at 45000
BITMEX.REST_API.PlaceLimitOrder(bmosSell, 'XBTUSD', 100, 45000.00);
// stop order at 48000
BITMEX.REST_API.PlaceStopOrder(bmosSell, 'XBTUSD', 100, 48000.00);