Passer à la navigation

Commandes perpétuelles

Commandes perpétuelles: Intégration Agent Java SDK v0.3.0, exemples, paramètres et sémantique de réponse.

Afficher en Markdown

Ce guide cible Agent Java SDK v0.3.0, Java 8+ et le contrat public étiqueté. Exemples exécutés dans un backend partenaire après l’initialisation de client dans Démarrage rapide.

Exemples de prérequis

Les extraits de code Java partagent ces importations. Initialisez client à l’aide de Quick Start et obtenez platformUserId à partir de la liaison enregistrée. Les exemples d’ID utilisateur/commande doivent être remplacés par vos propres valeurs persistantes.

import com.sixmm.agent.*;
import com.sixmm.agent.model.*;
import java.util.*;

listCurrentPerpetualOrders

Modèle de demande : CurrentPerpetualOrdersRequest.

import com.sixmm.agent.model.CurrentPerpetualOrdersRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;
CurrentPerpetualOrdersRequest request = new CurrentPerpetualOrdersRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.orderCategory = "NORMAL";
request.symbol = "BTCUSDT";
PerpetualResponse response = client.listCurrentPerpetualOrders(request);
System.out.println(response.data.items.size());
System.out.println(response.data.hasMore);
System.out.println(response.data.nextCursor);

Champs de requête

ChampJava tapezRequisSignification
orderCategoryStringOuiNORMAL ou CONDITIONAL ; les requêtes conditionnelles nécessitent des utilisateurs explicites.
platformUserIdsjava.util.List<String>Conditionnel1 à 100 identifiants publics uniques ; requis pour les exécutions et les commandes conditionnelles. Omettre les requêtes prises en charge pour la portée directe du lecteur ; [] n’est pas valide.
symbolStringNonFiltre de paire de trading en option.
limitIntegerNonPar défaut 500 ; 1 à 1000.
cursorStringNonUtilisez le nextCursor renvoyé avec des filtres inchangés ; arrêter lorsque hasMore est faux.

L’exemple lit une page. Pour les champs obligatoires, la portée du joueur, la sémantique du filtre, la limite, le curseur et les tentatives limitées, suivez Présentation de la requête. Gardez tous les filtres inchangés pendant la pagination ; n’interprètez pas une erreur comme un résultat vide.

listPerpetualOrderHistory

Modèle de demande : PerpetualOrderHistoryRequest.

import com.sixmm.agent.model.PerpetualOrderHistoryRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;
PerpetualOrderHistoryRequest request = new PerpetualOrderHistoryRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.orderCategory = "NORMAL";
request.symbol = "BTCUSDT";
request.endTime = System.currentTimeMillis();
request.startTime = request.endTime - 3_600_000L;
PerpetualResponse response = client.listPerpetualOrderHistory(request);
System.out.println(response.data.items.size());
System.out.println(response.data.hasMore);
System.out.println(response.data.nextCursor);

Champs de requête

ChampJava tapezRequisSignification
orderCategoryStringOuiNORMAL ou CONDITIONAL ; les requêtes conditionnelles nécessitent des utilisateurs explicites.
platformUserIdsjava.util.List<String>Conditionnel1 à 100 identifiants publics uniques ; requis pour les exécutions et les commandes conditionnelles. Omettre les requêtes prises en charge pour la portée directe du lecteur ; [] n’est pas valide.
symbolStringNonFiltre de paire de trading en option.
orderIdStringNonID de commande ordinaire ; pas un numéro d’ordre de transfert de partenaire.
conditionIdStringNonID de commande conditionnelle ; ne pas mélanger avec orderId.
clientOrderIdStringNonRéférence de l’ordre du client de trading, et non agentOrderNo.
sideStringNonFiltre BUY / SELL.
statusStringNonStatut spécifique à la ressource ; voir la référence d’état.
startTimeLongNonMillisecondes Unix incluses ; utilisez une fenêtre d’historique UTC fixe.
endTimeLongNonMillisecondes Unix exclusives.
limitIntegerNonPar défaut 500 ; 1 à 1000.
cursorStringNonUtilisez le nextCursor renvoyé avec des filtres inchangés ; arrêter lorsque hasMore est faux.

L’exemple lit une page. Pour les champs obligatoires, la portée du joueur, la sémantique du filtre, la limite, le curseur et les tentatives limitées, suivez Présentation de la requête. Gardez tous les filtres inchangés pendant la pagination ; n’interprètez pas une erreur comme un résultat vide.

Commandes ordinaires : actuelles et historiques

Actuel : orders/current + orderCategory=NORMAL ; Historique : orders/history + orderCategory=NORMAL.

Champ datataperSignification et champ d’application
symbolstringPaire de trading, telle que BTCUSDT
orderIdstringID de commande ordinaire de la plateforme
orderCategorystringCorrigé NORMAL
clientOrderIdstringNuméro de commande client fourni par la source de la commande de transaction ; ce n’est pas le même champ que le transfert de fonds du commerçant agentOrderNo
orderTypestringType de délégué, tel que LIMIT, MARKET ; la valeur réelle du dénombrement prévaudra
sidestringDirection d’achat et de vente BUY / SELL
statusstringStatut de commande ordinaire, voir l’aperçu des requêtes
timeInForcestringPériode de validité/stratégie d’exécution de la transaction, telle que GTC, IOC, FOK ; interprété en fonction des valeurs réelles
pricestringPrix ​​confié ; il peut être omis lorsqu’aucun prix n’est fourni et le prix de transaction sur le marché ne sera pas complété par soi-même.
quantitystringQuantité de commande initiale
filledQuantitystringQuantité de transaction
remainingQuantitystringQuantité non négociée ; la requête actuelle prend la quantité - filledQuantity, et la requête historique prend la valeur de l’enregistrement historique
avgFilledPricestringLe prix de transaction moyen de la pièce réalisée ; il peut n’y avoir aucune valeur s’il n’est pas terminé
reduceOnlybooleanFaut-il uniquement réduire les postes
closeOnlybooleanS’il est uniquement utilisé pour clôturer des positions
makerOnlybooleanS’il faut exécuter uniquement en tant que Maker
leverageintegerTirez parti de plusieurs ; L’ordre ordinaire historique a une source, et l’ordre ordinaire actuel ne crée pas cette valeur
marginModestringMode marge ; L’ordre ordinaire historique renvoie actuellement une chaîne d’énumération numérique, telle que « 1 », « 2 » ; l’ordre ordinaire actuel n’est pas fourni
createdAtintegerTemps de création de la commande, millisecondes ; utilisez ce champ pour filtrer l’historique des commandes
updatedAtintegerTemps de mise à jour de l’enregistrement délégué, millisecondes

L’historique des commandes comprend les commandes ordinaires terminées. Chaque enregistrement ne peut pas être considéré comme entièrement complété sur la base du seul nom de l’interface. La page de commande actuelle est une requête d’état actuel et non un flux d’événements de commande.

Commandes conditionnelles : actuelles et historiques

Actuel : orders/current + orderCategory=CONDITIONAL ; Historique : orders/history + orderCategory=CONDITIONAL. Les deux nécessitent des platformUserIds.

Champ datatapersignification
symbolstringpaire de trading
conditionIdstringID des commandes conditionnelles, indépendantes des orderId ordinaires
orderCategorystringCorrigé CONDITIONAL
generatedOrderIdstringID de commande ordinaire généré après le déclenchement ; peut être omis s’il n’est pas généré
clientOrderIdstringLe numéro de commande client des commandes conditionnelles, affiché lorsqu’il existe
sidestringBUY / SELL
orderTypestringType d’ordre post-déclenchement, interprété en fonction de la valeur réelle
triggerTypestringType de règle de déclenchement, expliqué par l’énumération source réelle
workingTypestringType de travail/source de prix qui déclenche le prix, interprété comme une énumération réelle
timeInForcestringDurée de validité/stratégie d’exécution de l’ordre après déclenchement
pricestringLe prix de la commande après déclenchement, sortie lorsque la source a de la valeur
quantitystringQuantité de commande conditionnelle
triggerPricestringprix de déclenchement
reduceOnlybooleanFaut-il uniquement réduire les postes
closePositionbooleanS’il faut utiliser la sémantique de clôture complète de la position, ne peut pas être confondu avec closeOnly comme le même champ
leverageintegerTirer parti de plusieurs, sortie lorsqu’elle est différente de zéro
marginModestringCette classe renvoie CROSS / ISOLATED, qui est une chaîne numérique différente des ordres/positions historiques ordinaires.
statusstringÉtat de déclenchement unique conditionnel, voir la présentation des requêtes
triggerStatusstringL’implémentation actuelle utilise la même valeur de statut conditionnel que le statut
createdAtintegerTemps de création de la commande conditionnelle, millisecondes ; les conditions historiques sont filtrées par cette heure
updatedAtintegerTemps de mise à jour, sortie lorsqu’il y a une valeur, millisecondes
deletedAtintegerSupprimer le temps de marquage, sortie lorsqu’il y a une valeur, millisecondes ; ce n’est pas un champ de temps de transaction/annulation unifié

Les commandes conditionnelles ne fournissent pas de filledQuantity, remainingQuantity, avgFilledPrice pour les commandes ordinaires. Si vous avez besoin du statut de transaction des ordres ordinaires après le déclenchement, interrogez les ordres/transactions ordinaires via generatedOrderId et ne déduisez pas le volume de transactions du statut de la commande conditionnelle.

Exemple d’enveloppe de réponse

Il s’agit d’une page vide illustrative, et non d’un échantillon d’une transaction terminée. Les tableaux de champs spécifiques aux ressources ci-dessus décrivent les items[].data renseignés.

{"code":0,"message":"success","data":{"items":[],"nextCursor":"","hasMore":false}}

Source et guides associés