Bitmex | Cómo Colocar Órdenes
La API REST de Bitmex ofrece endpoints públicos y privados. Los endpoints privados requieren que los mensajes estén firmados para aumentar la seguridad de las transacciones.
Primero debe iniciar sesión en su cuenta de Bitmex y crear una nueva API; obtendrá los siguientes valores:
Estos campos deben configurarse en la propiedad Bitmex del componente cliente de la API de Bitmex. Una vez configurados, puede comenzar a realizar solicitudes privadas a la API REST de Bitmex.
Tipos de orden
Todas las órdenes requieren un símbolo. El resto de los campos son opcionales, salvo cuando se especifique lo contrario.
Estos son los ordTypes válidos:
- Límite: El tipo de orden predeterminado. Especifique una cantidad de orden y un precio.
- Market: Una orden de mercado tradicional. Una orden de mercado se ejecutará hasta completarse o hasta alcanzar el precio de quiebra, momento en el que se cancelará.
- Stop: Una orden Stop de mercado. Especifique un orderQty y stopPx. Cuando se alcance el stopPx, la orden se introducirá en el libro.
- En órdenes de venta, la orden se activará si el precio desencadenante es inferior al stopPx. En compras, superior.
- Nota: Las órdenes Stop no consumen margen hasta que se activan. Asegúrese de que el margen requerido esté disponible en su cuenta para que pueda activarse completamente.
- Las órdenes Stop de cierre no requieren orderQty. Consulte las Instrucciones de ejecución a continuación.
- StopLimit: Similar a Stop Market, pero introduce una orden Limit en lugar de una orden Market. Especifique orderQty, stopPx y price.
- MarketIfTouched: Similar a una orden Stop, pero las activaciones se realizan en la dirección opuesta. Útil para órdenes de Take Profit.
- LimitIfTouched: Como lo anterior; se usa para órdenes de Take Profit Limit.
- Pegged: Las órdenes Pegged permiten a los usuarios enviar un precio límite relativo al precio actual del mercado. Especifique un pegPriceType y un pegOffsetValue.
- Las órdenes Pegged deben tener un execInst de Fixed. Esto significa que el precio límite se establece en el momento en que se acepta la orden y no cambia a medida que varía el precio de referencia.
- PrimaryPeg: El precio se establece relativo al precio near touch.
- MarketPeg: El precio se establece relativo al precio far touch.
- Un pegPriceType enviado sin ordType se trata como una orden Pegged.
Instrucciones de ejecución
Se admiten los siguientes execInsts. Si utiliza varios, sepárelos con una coma (p. ej. LastPrice,Close).
- ParticipateDoNotInitiate: También conocida como orden Post-Only. Si esta orden se hubiera ejecutado al ser colocada, se cancelará en su lugar. Su finalidad es protegerle de que el far touch se mueva hacia usted mientras la orden está en tránsito. No está destinada a especular con el movimiento del far touch tras el envío; consideramos dicho comportamiento abusivo y lo monitorizamos.
- MarkPrice, LastPrice, IndexPrice: Se utilizan en órdenes stop e if-touched para determinar el precio de activación. Use solo uno. De forma predeterminada, se usa MarkPrice. También se usan en órdenes Pegged para definir el valor de LastPeg.
- ReduceOnly: Una orden ReduceOnly solo puede reducir su posición, no aumentarla. Si tiene una orden límite ReduceOnly que permanece en el libro de órdenes mientras la posición se reduce por otras órdenes, su cantidad de orden se reducirá o cancelará. Si hay múltiples órdenes ReduceOnly, la menos agresiva se reducirá primero.
- Close: Close implica ReduceOnly. Una orden Close cancelará otras órdenes límite activas con el mismo lado y símbolo si la cantidad abierta supera la posición actual. Esto es útil para stops: al cancelar estas órdenes, se garantiza que un Close Stop tenga el margen necesario para ejecutarse, y solo puede ejecutarse hasta el tamaño total de su posición. Si no se especifica orderQty, una orden Close tiene un orderQty igual al tamaño de su posición actual.
- Tenga en cuenta que una orden Close sin orderQty requiere un lado, para que BitMEX sepa si debe activarse por encima o por debajo del stopPx.
- LastWithinMark: Utilizado por órdenes stop con LastPrice para permitir los disparadores de stop solo cuando:
- Para Sell Stop Market / Stop Limit Order
- Last Price <= Stop Price
- Last Price >= Mark Price × (1 - 5%)
- Para Buy Stop Market / Stop Limit Order:
- Last Price >= Stop Price
- Last Price <= Mark Price × (1 + 5%)
- Fixed: Las órdenes ancladas deben tener un execInst de Fixed. Esto significa que el precio límite se establece en el momento en que se acepta la orden y no cambia a medida que varía el precio de referencia.
Pegged Orders
Las órdenes vinculadas permiten a los usuarios enviar un precio límite relativo al precio de mercado actual. El precio límite se establece una vez cuando se envía la orden y no cambia con el precio de referencia. Este tipo de orden no está destinado a especular sobre el movimiento del mejor precio de venta después del envío — consideramos dicho comportamiento abusivo y lo monitorizamos.
Las órdenes Pegged tienen un ordType de Pegged y un execInst de Fixed.
También se deben enviar un pegPriceType y un pegOffsetValue:
- PrimaryPeg: el precio se establece en relación con el precio de toque cercano
- MarketPeg - el precio se establece en relación con el precio far touch
Órdenes con Stop Trailing Pegged
Utilice pegPriceType de TrailingStopPeg para crear Trailing Stops.
El precio se establece en el momento del envío y se actualiza una vez por segundo si el precio subyacente (último/marca/índice) se ha movido más de un 0,1%. stopPx se mueve entonces a medida que el mercado se aleja del precio de referencia, y se congela cuando el mercado se acerca a él.
Utilice pegOffsetValue para establecer el stopPx de su orden. El peg se establece en el precio de activación especificado en execInst (por defecto MarkPrice). Utilice un desplazamiento negativo para órdenes de stop-sell y buy-if-touched.
Requiere ordType: Stop, StopLimit, MarketIfTouched, LimitIfTouched.
Trailing Stops
Puede utilizar pegPriceType de 'TrailingStopPeg' para crear Trailing Stops. El stopPx anclado se moverá conforme el mercado se aleje del anclaje y se congelará cuando el mercado se acerque a él.
Para utilizarlo, combínelo con pegOffsetValue para establecer el stopPx de su orden. El peg se fija al precio de activación especificado en execInst (por defecto 'MarkPrice'). Utilice un desplazamiento negativo para órdenes stop-sell y buy-if-touched.
Requiere ordType: 'Stop', 'StopLimit', 'MarketIfTouched', 'LimitIfTouched'.
Seguimiento de sus órdenes
Si desea llevar un seguimiento propio de los IDs de orden, asigne un clOrdID único a cada orden. Este clOrdID se devolverá como propiedad de la orden y de cualquier ejecución relacionada (incluidas las del WebSocket), y puede utilizarse para obtener o cancelar la orden. La longitud máxima es de 36 caracteres.
Ejemplos:
// 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);