Bitmex | Hoe orders te plaatsen
De Bitmex REST API biedt openbare en privé-eindpunten. De privé-eindpunten vereisen dat berichten worden ondertekend om de beveiliging van transacties te verhogen.
Eerst moet u inloggen op uw Bitmex-account en een nieuwe API aanmaken; u ontvangt dan de volgende waarden:
Deze velden moeten worden geconfigureerd in de Bitmex-eigenschap van het Bitmex API-clientcomponent. Eenmaal geconfigureerd, kunt u beginnen met het doen van privéverzoeken aan de Bitmex REST API.
Ordertypen
Alle orders vereisen een symbool. Alle overige velden zijn optioneel, tenzij anders aangegeven.
Dit zijn de geldige ordTypes:
- Limit: Het standaard ordertype. Geef een orderQty en prijs op.
- Market: Een traditioneel marktorder. Een marktorder wordt uitgevoerd totdat het is gevuld of uw faillissementsprijs is bereikt, waarna het wordt geannuleerd.
- Stop: Een Stop-marktorder. Geef een orderQty en stopPx op. Wanneer de stopPx wordt bereikt, wordt het order in het orderboek ingevoerd.
- Bij verkooporders wordt het order geactiveerd als de triggerprijs lager is dan de stopPx. Bij kooporders hoger.
- Opmerking: Stoporders verbruiken geen marge totdat ze worden geactiveerd. Zorg ervoor dat de vereiste marge beschikbaar is op uw account zodat het order volledig kan worden uitgevoerd.
- Sluit-stoporders vereisen geen orderQty. Zie Uitvoeringsinstructies hieronder.
- StopLimit: Zoals een Stop Market, maar plaatst een Limietorder in plaats van een Marktorder. Geef een orderQty, stopPx en prijs op.
- MarketIfTouched: Vergelijkbaar met een Stop, maar triggers worden in de tegenovergestelde richting uitgevoerd. Nuttig voor Take Profit-orders.
- LimitIfTouched: Zie hierboven; gebruik voor Take Profit Limit-orders.
- Pegged: Pegged-orders stellen gebruikers in staat een limietprijs in te dienen relatief aan de huidige marktprijs. Geef een pegPriceType en pegOffsetValue op.
- Pegged-orders moeten een execInst van Fixed hebben. Dit betekent dat de limietprijs wordt vastgesteld op het moment dat het order wordt geaccepteerd en niet verandert als de referentieprijs verandert.
- PrimaryPeg: Prijs is ingesteld relatief aan de near touch-prijs.
- MarketPeg: Prijs is ingesteld relatief aan de far touch-prijs.
- Een ingediend pegPriceType zonder ordType wordt behandeld als een Pegged-order.
Uitvoeringsinstructies
De volgende execInsts worden ondersteund. Indien u meerdere gebruikt, scheidt u deze met een komma (bijv. LastPrice,Close).
- ParticipateDoNotInitiate: Ook bekend als een Post-Only-order. Als deze order bij plaatsing zou worden uitgevoerd, wordt deze in plaats daarvan geannuleerd. Dit is bedoeld om u te beschermen tegen het bewegen van de ver touch in uw richting terwijl de order onderweg is. Het is niet bedoeld voor speculeren op de ver touch die na indiening wegbeweegt - wij beschouwen dergelijk gedrag als misbruik en bewaken hierop.
- MarkPrice, LastPrice, IndexPrice: Gebruikt door stop- en if-touched-orders om de triggerprijs te bepalen. Gebruik er slechts één. Standaard wordt MarkPrice gebruikt. Ook gebruikt voor Pegged-orders om de waarde van LastPeg te definiëren.
- ReduceOnly: Een ReduceOnly-order kan uw positie alleen verkleinen, niet vergroten. Als u een ReduceOnly limietorder hebt die in het orderboek staat terwijl de positie wordt verkleind door andere orders, wordt de orderhoeveelheid verlaagd of geannuleerd. Als er meerdere ReduceOnly-orders zijn, wordt de minst agressieve als eerste gewijzigd.
- Close: Close impliceert ReduceOnly. Een Close-order zal andere actieve limit orders met dezelfde side en hetzelfde symbol annuleren als de open hoeveelheid de huidige positie overschrijdt. Dit is handig voor stops: door deze orders te annuleren, is gewaarborgd dat een Close Stop de margin heeft die vereist is om uit te voeren, en deze kan alleen worden uitgevoerd tot de volledige omvang van uw positie. Als orderQty niet is opgegeven, heeft een Close-order een orderQty die gelijk is aan de omvang van uw huidige positie.
- Merk op dat een Close-order zonder een orderQty een side vereist, zodat BitMEX weet of deze boven of onder de stopPx moet worden geactiveerd.
- LastWithinMark: Gebruikt door stoporders met LastPrice om stoptriggers alleen toe te staan wanneer:
- Voor Sell Stop Market / Stop Limit Order
- Last Price <= Stop Price
- Last Price >= Mark Price × (1 - 5%)
- Voor Buy Stop Market / Stop Limit Order:
- Last Price >= Stop Price
- Last Price <= Mark Price × (1 + 5%)
- Fixed: Vastgekoppelde orders moeten een execInst van Fixed hebben. Dit betekent dat de limietprijs is vastgesteld op het moment dat de order wordt geaccepteerd en niet verandert naarmate de referentieprijs verandert.
Gekoppelde orders
Pegged orders stellen gebruikers in staat een limietprijs in te dienen ten opzichte van de huidige marktprijs. De limietprijs wordt eenmalig ingesteld bij het indienen van de order en verandert niet met de referentieprijs. Dit ordertype is niet bedoeld voor speculatie op het wegbeweging van de ver touch na indiening — wij beschouwen dergelijk gedrag als misbruik en controleren hierop.
Gekoppelde orders hebben een ordType van Pegged en een execInst van Fixed.
Er moeten ook een pegPriceType en pegOffsetValue worden ingediend:
- PrimaryPeg - prijs wordt ingesteld ten opzichte van de dichtstbijzijnde aanraakprijs
- MarketPeg - prijs wordt ingesteld ten opzichte van de ver-aanraakprijs
Trailing Stop Pegged Orders
Gebruik pegPriceType van TrailingStopPeg om Trailing Stops te maken.
De prijs wordt ingesteld bij indiening en wordt eenmaal per seconde bijgewerkt als de onderliggende prijs (last/mark/index) met meer dan 0,1% is bewogen. stopPx beweegt dan mee met de markt als de markt zich verwijdert van de peg, en bevriest als de markt er naartoe beweegt.
Gebruik pegOffsetValue om de stopPx van uw order in te stellen. De peg wordt ingesteld op de triggerprijs gespecificeerd in execInst (standaard MarkPrice). Gebruik een negatieve offset voor stop-sell- en buy-if-touched-orders.
Vereist ordType: Stop, StopLimit, MarketIfTouched, LimitIfTouched.
Trailing Stops
U kunt pegPriceType 'TrailingStopPeg' gebruiken om Trailing Stops aan te maken. De vastgekoppelde stopPx beweegt mee wanneer de markt van de referentieprijs afwijkt en bevriest wanneer de markt er naartoe beweegt.
Om te gebruiken, combineer met pegOffsetValue om de stopPx van uw order in te stellen. De peg wordt ingesteld op de triggerende prijs die is opgegeven in de execInst (standaard 'MarkPrice'). Gebruik een negatieve offset voor stop-sell- en buy-if-touched-orders.
Vereist ordType: 'Stop', 'StopLimit', 'MarketIfTouched', 'LimitIfTouched'.
Uw orders bijhouden
Als u order-ID's zelf wilt bijhouden, stel dan een unieke clOrdID in per order. Deze clOrdID komt terug als een eigenschap van de order en alle gerelateerde uitvoeringen (inclusief op de WebSocket) en kan worden gebruikt om de order op te halen of te annuleren. De maximale lengte is 36 tekens.
Voorbeelden:
// 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);