Bitmex | Come inserire ordini
La REST API di Bitmex offre endpoint pubblici e privati. Gli endpoint privati richiedono che i messaggi siano firmati per aumentare la sicurezza delle transazioni.
Per prima cosa deve accedere al Suo account Bitmex e creare una nuova API; otterrà i seguenti valori:
Questi campi devono essere configurati nella proprietà Bitmex del componente client API Bitmex. Una volta configurati, è possibile iniziare a effettuare richieste private all'API REST di Bitmex.
Tipi di Ordine
Tutti gli ordini richiedono un simbolo. Tutti gli altri campi sono facoltativi, salvo diversa indicazione.
Di seguito sono riportati i tipi di ordine validi:
- Limit: Il tipo di ordine predefinito. Specificare un orderQty e un prezzo.
- Market: Un ordine di mercato tradizionale. Un ordine di mercato verrà eseguito fino al riempimento o finché non viene raggiunto il prezzo di liquidazione, a quel punto verrà annullato.
- Stop: Un ordine Stop Market. Specificare orderQty e stopPx. Quando viene raggiunto stopPx, l'ordine verrà inserito nel book.
- Per gli ordini di vendita, l'ordine verrà attivato se il prezzo di attivazione è inferiore a stopPx. Per gli acquisti, se è superiore.
- Nota: gli ordini Stop non consumano margine fino all'attivazione. Assicurarsi che il margine richiesto sia disponibile nel proprio account affinché possa essere attivato completamente.
- Gli ordini Stop di chiusura non richiedono un orderQty. Vedere le Istruzioni di esecuzione di seguito.
- StopLimit: Come uno Stop Market, ma immette un ordine Limit invece di un ordine Market. Specificare orderQty, stopPx e price.
- MarketIfTouched: Simile a uno Stop, ma gli attivatori avvengono nella direzione opposta. Utile per gli ordini Take Profit.
- LimitIfTouched: Come sopra; da utilizzare per gli ordini Take Profit Limit.
- Pegged: Gli ordini Pegged consentono agli utenti di impostare un prezzo limite relativo al prezzo di mercato corrente. Specificare un pegPriceType e un pegOffsetValue.
- Gli ordini Pegged devono avere un execInst impostato su Fixed. Ciò significa che il prezzo limite viene fissato al momento dell'accettazione dell'ordine e non cambia al variare del prezzo di riferimento.
- PrimaryPeg: Il prezzo è impostato in relazione al prezzo near touch.
- MarketPeg: Il prezzo è impostato in relazione al prezzo far touch.
- Un pegPriceType inviato senza ordType viene trattato come un ordine Pegged.
Istruzioni di esecuzione
Sono supportati i seguenti execInst. Se ne utilizza più di uno, li separi con una virgola (ad esempio LastPrice,Close).
- ParticipateDoNotInitiate: Noto anche come ordine Post-Only. Se questo ordine fosse stato eseguito al momento del posizionamento, verrà annullato. Questo serve a proteggerLa dalla mossa del prezzo far touch mentre l'ordine è in transito. Non è pensato per speculare sulla mossa del prezzo far touch dopo l'invio — tale comportamento è considerato abusivo e viene monitorato.
- MarkPrice, LastPrice, IndexPrice: Utilizzati dagli ordini stop e if-touched per determinare il prezzo di attivazione. Utilizzarne solo uno. Per impostazione predefinita viene utilizzato MarkPrice. Utilizzati anche per gli ordini Pegged per definire il valore di LastPeg.
- ReduceOnly: Un ordine ReduceOnly può solo ridurre la propria posizione, non aumentarla. Se si dispone di un ordine limite ReduceOnly nel book degli ordini mentre la posizione viene ridotta da altri ordini, la quantità dell'ordine verrà ridotta o annullata. Se sono presenti più ordini ReduceOnly, verrà modificato per primo quello meno aggressivo.
- Close: Close implica ReduceOnly. Un ordine Close annullerà altri ordini limite attivi con lo stesso verso e simbolo se la quantità aperta supera la posizione corrente. Ciò è utile per gli stop: annullando questi ordini, uno Stop Close è garantito di disporre del margine necessario per essere eseguito e può essere eseguito solo fino all'intera dimensione della posizione. Se orderQty non è specificato, un ordine Close ha un orderQty pari alla dimensione della posizione corrente.
- Si noti che un ordine Close senza orderQty richiede un verso, affinché BitMEX sappia se deve essere attivato sopra o sotto lo stopPx.
- LastWithinMark: Utilizzato dagli stop order con LastPrice per consentire l'attivazione degli stop solo quando:
- Per Sell Stop Market / Stop Limit Order
- Last Price <= Stop Price
- Last Price >= Mark Price × (1 - 5%)
- Per Buy Stop Market / Stop Limit Order:
- Last Price >= Stop Price
- Last Price <= Mark Price × (1 + 5%)
- Fixed: Gli ordini ancorati devono avere un execInst di Fixed. Ciò significa che il prezzo limite è impostato al momento dell'accettazione dell'ordine e non cambia al variare del prezzo di riferimento.
Pegged Orders
Gli ordini pegged consentono agli utenti di inviare un prezzo limite relativo al prezzo corrente di mercato. Il prezzo limite viene impostato una volta al momento dell'invio dell'ordine e non cambia con il prezzo di riferimento. Questo tipo di ordine non è destinato alla speculazione sul movimento del far touch dopo l'invio — tale comportamento è considerato abusivo e viene monitorato.
Gli ordini pegged hanno un ordType di Pegged e un execInst di Fixed.
È necessario fornire anche pegPriceType e pegOffsetValue:
- PrimaryPeg - il prezzo è impostato in relazione al prezzo di contatto più vicino
- MarketPeg - il prezzo è impostato in relazione al prezzo far touch
Ordini Trailing Stop Pegged
Utilizzare pegPriceType di TrailingStopPeg per creare Trailing Stop.
Il prezzo viene impostato al momento dell'invio e si aggiorna una volta al secondo se il prezzo sottostante (last/mark/index) si è mosso di oltre lo 0,1%. stopPx si sposta quindi man mano che il mercato si allontana dal peg, e si blocca man mano che il mercato si avvicina ad esso.
Utilizzi pegOffsetValue per impostare lo stopPx del Suo ordine. Il peg viene impostato sul prezzo di attivazione specificato in execInst (predefinito MarkPrice). Utilizzi un offset negativo per gli ordini stop-sell e buy-if-touched.
Richiede ordType: Stop, StopLimit, MarketIfTouched, LimitIfTouched.
Trailing Stops
È possibile utilizzare pegPriceType 'TrailingStopPeg' per creare Trailing Stop. Lo stopPx agganciato si sposta man mano che il mercato si allontana dall'ancoraggio, e si blocca quando il mercato si avvicina ad esso.
Per utilizzarlo, lo combini con pegOffsetValue per impostare lo stopPx del Suo ordine. Il peg viene impostato sul prezzo di trigger specificato nell'execInst (predefinito 'MarkPrice'). Utilizzi un offset negativo per gli ordini stop-sell e buy-if-touched.
Richiede ordType: 'Stop', 'StopLimit', 'MarketIfTouched', 'LimitIfTouched'.
Monitoraggio degli ordini
Se si desidera tenere traccia degli ID degli ordini in modo autonomo, impostare un clOrdID univoco per ogni ordine. Questo clOrdID verrà restituito come proprietà dell'ordine e di qualsiasi esecuzione correlata (incluse quelle sul WebSocket), e può essere utilizzato per recuperare o annullare l'ordine. La lunghezza massima è di 36 caratteri.
Esempi:
// 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);