Bitmex | Comment passer des ordres
L'API REST Bitmex propose des points de terminaison publics et privés. Les points de terminaison privés exigent que les messages soient signés pour augmenter la sécurité des transactions.
Vous devez d'abord vous connecter à votre compte Bitmex et créer une nouvelle API ; vous obtiendrez les valeurs suivantes :
Ces champs doivent être configurés dans la propriété Bitmex du composant client API Bitmex. Une fois configurés, vous pouvez commencer à effectuer des requêtes privées vers l'API REST Bitmex.
Types d'ordres
Tous les ordres nécessitent un symbole. Tous les autres champs sont optionnels sauf indication contraire.
Voici les ordTypes valides :
- Limit : Le type d'ordre par défaut. Spécifiez une orderQty et un prix.
- Market : Un ordre Market traditionnel. Un ordre Market s'exécutera jusqu'à ce qu'il soit rempli ou que votre prix de faillite soit atteint, auquel point il sera annulé.
- Stop : Un ordre Stop Market. Spécifiez un orderQty et un stopPx. Lorsque le stopPx est atteint, l'ordre sera placé dans le carnet.
- Pour les ordres de vente, l'ordre se déclenche si le prix déclencheur est inférieur au stopPx. Pour les achats, supérieur.
- Remarque : les ordres Stop ne consomment pas de marge avant d'être déclenchés. Assurez-vous que la marge requise est disponible dans votre compte afin qu'il puisse se déclencher entièrement.
- Les Close Stops ne nécessitent pas de orderQty. Voir les Instructions d'exécution ci-dessous.
- StopLimit : Comme un Stop Market, mais entre un ordre Limit au lieu d'un ordre Market. Spécifiez un orderQty, stopPx et price.
- MarketIfTouched : Similaire à un Stop, mais les déclenchements se font dans la direction opposée. Utile pour les ordres Take Profit.
- LimitIfTouched : Comme ci-dessus ; à utiliser pour les ordres Take Profit Limit.
- Ancré : Les ordres ancrés permettent aux utilisateurs de soumettre un prix limite relatif au prix actuel du marché. Spécifiez un pegPriceType et une pegOffsetValue.
- Les ordres ancrés doivent avoir un execInst de Fixed. Cela signifie que le prix limite est fixé au moment où l'ordre est accepté et ne change pas au fur et à mesure que le prix de référence change.
- PrimaryPeg : Le prix est fixé par rapport au prix du côté proche.
- MarketPeg : Le prix est fixé par rapport au prix du côté lointain.
- Un pegPriceType soumis sans ordType est traité comme un ordre ancré.
Instructions d'exécution
Les execInsts suivants sont pris en charge. Si vous en utilisez plusieurs, séparez-les par une virgule (ex. LastPrice,Close).
- ParticipateDoNotInitiate : Également connu sous le nom d'ordre Post-Only. Si cet ordre avait été exécuté au moment du placement, il serait annulé à la place. Cela est destiné à vous protéger contre le mouvement du far touch vers vous pendant que l'ordre est en transit. Il n'est pas destiné à la spéculation sur le far touch qui s'éloigne après la soumission — nous considérons un tel comportement abusif et le surveillons.
- MarkPrice, LastPrice, IndexPrice : Utilisés par les ordres stop et if-touched pour déterminer le prix déclencheur. N'utilisez qu'un seul. Par défaut, MarkPrice est utilisé. Également utilisé pour les ordres ancrés pour définir la valeur de LastPeg.
- ReduceOnly : Un ordre ReduceOnly ne peut que réduire votre position, pas l'augmenter. Si vous avez un ordre limite ReduceOnly qui reste dans le carnet d'ordres pendant que la position est réduite par d'autres ordres, alors la quantité de l'ordre sera réduite ou annulée. S'il y a plusieurs ordres ReduceOnly, le moins agressif sera modifié en premier.
- Close: Close implique ReduceOnly. Un ordre Close annulera les autres ordres à cours limité actifs du même côté et du même symbole si la quantité ouverte dépasse la position actuelle. Ceci est utile pour les stops : en annulant ces ordres, un Stop Close est assuré de disposer de la marge nécessaire à l'exécution et ne peut s'exécuter que jusqu'à la taille totale de votre position. Si orderQty n'est pas spécifié, un ordre Close a une orderQty égale à la taille de votre position actuelle.
- Notez qu'un ordre Close sans orderQty nécessite un côté, afin que BitMEX sache s'il doit se déclencher au-dessus ou en dessous du stopPx.
- LastWithinMark : Utilisé par les ordres stop avec LastPrice pour n'autoriser les déclenchements de stop que lorsque :
- Pour Sell Stop Market / Stop Limit Order
- Last Price <= Stop Price
- Last Price >= Mark Price × (1 - 5%)
- Pour Buy Stop Market / Stop Limit Order :
- Last Price >= Stop Price
- Last Price <= Mark Price × (1 + 5%)
- Fixed : les ordres rattachés doivent avoir un execInst Fixed. Cela signifie que le prix limite est défini au moment où l'ordre est accepté et ne change pas à mesure que le prix de référence évolue.
Ordres cheville
Les ordres pegged permettent aux utilisateurs de soumettre un prix limite relatif au prix du marché actuel. Le prix limite est fixé une fois lors de la soumission de l'ordre et ne change pas avec le prix de référence. Ce type d'ordre n'est pas destiné à spéculer sur l'éloignement du far touch après la soumission — nous considérons ce comportement abusif et le surveillons.
Les ordres indexés ont un ordType Pegged et un execInst Fixed.
Un pegPriceType et pegOffsetValue doivent également être soumis :
- PrimaryPeg - le prix est défini par rapport au prix du meilleur côté
- MarketPeg - le prix est fixé par rapport au prix far touch
Ordres Pegged à Stop suiveur
Utilisez pegPriceType de TrailingStopPeg pour créer des stops suiveurs.
Le prix est fixé à la soumission et se met à jour une fois par seconde si le prix sous-jacent (dernier/mark/index) a bougé de plus de 0,1 %. stopPx se déplace alors avec le marché lorsqu'il s'éloigne de l'ancrage, et se fige lorsque le marché se rapproche de lui.
Utilisez pegOffsetValue pour définir le stopPx de votre commande. Le peg est défini sur le prix déclencheur spécifié dans l'execInst (MarkPrice par défaut). Utilisez un offset négatif pour les ordres stop-sell et buy-if-touched.
Requiert ordType : Stop, StopLimit, MarketIfTouched, LimitIfTouched.
Stops suiveurs
Vous pouvez utiliser pegPriceType avec la valeur « TrailingStopPeg » pour créer des stops suiveurs. Le stopPx rattaché se déplacera lorsque le marché s'éloigne du point d'ancrage et se figera lorsque le marché s'en rapproche.
Pour l'utiliser, combinez avec pegOffsetValue pour définir le stopPx de votre ordre. La cheville est définie au prix déclencheur spécifié dans l'execInst (par défaut 'MarkPrice'). Utilisez un décalage négatif pour les ordres stop-vente et buy-if-touched.
Nécessite ordType : 'Stop', 'StopLimit', 'MarketIfTouched', 'LimitIfTouched'.
Suivi de vos ordres
Si vous souhaitez assurer le suivi des identifiants d'ordre vous-même, définissez un clOrdID unique par ordre. Ce clOrdID sera retourné comme propriété de l'ordre et de toutes les exécutions associées (y compris sur le WebSocket), et peut être utilisé pour obtenir ou annuler l'ordre. La longueur maximale est de 36 caractères.
Exemples :
// 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);