Bitmex | Como Colocar Ordens
A REST API da Bitmex oferece endpoints públicos e privados. Os endpoints privados exigem que as mensagens sejam assinadas para aumentar a segurança das transações.
Primeiro você deve fazer login na sua conta Bitmex e criar uma nova API; você obterá os seguintes valores:
Esses campos devem ser configurados na propriedade Bitmex do componente cliente da Bitmex API. Uma vez configurados, você pode começar a fazer requisições privadas à Bitmex REST API.
Tipos de Ordem
Todas as ordens exigem um símbolo. Todos os outros campos são opcionais, exceto quando especificado de outra forma.
Estes são os ordTypes válidos:
- Limit: O tipo de ordem padrão. Especifique um orderQty e um price.
- Market: Uma Market order tradicional. Uma Market order será executada até ser preenchida ou até que seu preço de falência seja atingido, ponto no qual será cancelada.
- Stop: Uma ordem Stop Market. Especifique um orderQty e stopPx. Quando o stopPx é atingido, a ordem será inserida no book.
- Em ordens de venda, a ordem é acionada se o preço de acionamento for menor que o stopPx. Em compras, maior.
- Nota: as ordens Stop não consomem margem até serem acionadas. Certifique-se de que a margem necessária esteja disponível em sua conta para que possa ser acionada totalmente.
- As Close Stops não exigem um orderQty. Veja as Execution Instructions abaixo.
- StopLimit: Como uma Stop Market, mas insere uma Limit order em vez de uma Market order. Especifique orderQty, stopPx e price.
- MarketIfTouched: Semelhante a um Stop, mas os disparos são feitos na direção oposta. Útil para ordens Take Profit.
- LimitIfTouched: Como acima; use para ordens Take Profit Limit.
- Pegged: As pegged orders permitem que os usuários enviem um limit price relativo ao preço de mercado atual. Especifique um pegPriceType e pegOffsetValue.
- As pegged orders devem ter um execInst Fixed. Isso significa que o limit price é definido no momento em que a ordem é aceita e não muda conforme o preço de referência muda.
- PrimaryPeg: O preço é definido em relação ao near touch price.
- MarketPeg: O preço é definido em relação ao far touch price.
- Um pegPriceType enviado sem ordType é tratado como uma Pegged order.
Execution Instructions
Os seguintes execInsts são suportados. Se usar múltiplos, separe com uma vírgula (por exemplo, LastPrice,Close).
- ParticipateDoNotInitiate: Também conhecida como ordem Post-Only. Se esta ordem fosse executada na colocação, ela será cancelada em vez disso. Isso visa protegê-lo do far touch se movendo em sua direção enquanto a ordem está em trânsito. Não se destina a especular sobre o far touch se afastando após o envio; consideramos tal comportamento abusivo e monitoramos por isso.
- MarkPrice, LastPrice, IndexPrice: Utilizados por ordens stop e if-touched para determinar o preço de acionamento. Utilize apenas um. Por padrão, MarkPrice é utilizado. Também utilizado para ordens Pegged para definir o valor de LastPeg.
- ReduceOnly: Uma ordem ReduceOnly só pode reduzir sua posição, não aumentá-la. Se você tiver uma ordem limite ReduceOnly que permanece no order book enquanto a posição é reduzida por outras ordens, então sua quantidade de ordem será reduzida ou cancelada. Se houver várias ordens ReduceOnly, a menos agressiva será reduzida primeiro.
- Close: Close implica ReduceOnly. Uma ordem Close cancelará outras ordens limit ativas com o mesmo lado e símbolo se a quantidade aberta exceder a posição atual. Isto é útil para stops: ao cancelar essas ordens, um Close Stop tem garantia de ter a margem necessária para executar, e só pode executar até o tamanho total da sua posição. Se orderQty não for especificado, uma ordem Close tem uma orderQty igual ao tamanho da sua posição atual.
- Note que uma ordem Close sem uma orderQty requer um side, para que a BitMEX saiba se deve disparar acima ou abaixo do stopPx.
- LastWithinMark: Usado por ordens stop com LastPrice para permitir gatilhos de stop apenas quando:
- Para ordens Sell Stop Market / Stop Limit
- Last Price <= Stop Price
- Last Price >= Mark Price × (1 - 5%)
- Para ordens Buy Stop Market / Stop Limit:
- Last Price >= Stop Price
- Last Price <= Mark Price × (1 + 5%)
- Fixed: As ordens pegged devem ter um execInst de Fixed. Isso significa que o limit price é definido no momento em que a ordem é aceita e não muda conforme o reference price muda.
Pegged Orders
As ordens pegged permitem que os usuários submetam um preço limite relativo ao preço de mercado atual. O preço limite é definido uma vez quando a ordem é submetida e não muda com o preço de referência. Este tipo de ordem não se destina à especulação sobre o far touch se afastando após a submissão. Consideramos tal comportamento abusivo e o monitoramos.
Ordens pegged têm um ordType de Pegged e um execInst de Fixed.
Um pegPriceType e pegOffsetValue também devem ser submetidos:
- PrimaryPeg - o preço é definido em relação ao preço near touch
- MarketPeg - o preço é definido em relação ao far touch price
Trailing Stop Pegged Orders
Utilize pegPriceType de TrailingStopPeg para criar Trailing Stops.
O preço é definido no momento do envio e atualiza uma vez por segundo se o preço subjacente (last/mark/index) tiver se movido mais de 0,1%. O stopPx então se move conforme o mercado se afasta do peg e congela conforme o mercado se aproxima dele.
Use pegOffsetValue para definir o stopPx da sua ordem. O peg é definido para o preço de gatilho especificado no execInst (padrão MarkPrice). Use um offset negativo para ordens stop-sell e buy-if-touched.
Requer ordType: Stop, StopLimit, MarketIfTouched, LimitIfTouched.
Trailing Stops
Você pode usar pegPriceType de 'TrailingStopPeg' para criar Trailing Stops. O stopPx vinculado se moverá conforme o mercado se afasta do peg e congelará conforme o mercado se move em sua direção.
Para utilizar, combine com pegOffsetValue para definir o stopPx da sua ordem. O peg é definido com o preço de disparo especificado no execInst (padrão 'MarkPrice'). Utilize um offset negativo para ordens stop-sell e buy-if-touched.
Requer ordType: 'Stop', 'StopLimit', 'MarketIfTouched', 'LimitIfTouched'.
Acompanhando Suas Ordens
Se você quiser acompanhar os IDs de ordem por conta própria, defina um clOrdID exclusivo por ordem. Este clOrdID retornará como uma propriedade na ordem e em quaisquer execuções relacionadas (incluindo no WebSocket) e pode ser usado para obter ou cancelar a ordem. O comprimento máximo é de 36 caracteres.
Exemplos:
// 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);