Passer à la navigation

Postes perpétuels

Postes perpétuels: 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.*;

listCurrentPerpetualPositions

Modèle de demande : CurrentPerpetualPositionsRequest.

import com.sixmm.agent.model.CurrentPerpetualPositionsRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;
CurrentPerpetualPositionsRequest request = new CurrentPerpetualPositionsRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.symbol = "BTCUSDT";
PerpetualResponse response = client.listCurrentPerpetualPositions(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
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.

listPerpetualPositionHistory

Modèle de demande : PerpetualPositionHistoryRequest.

import com.sixmm.agent.model.PerpetualPositionHistoryRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;
PerpetualPositionHistoryRequest request = new PerpetualPositionHistoryRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.symbol = "BTCUSDT";
request.endTime = System.currentTimeMillis();
request.startTime = request.endTime - 3_600_000L;
PerpetualResponse response = client.listPerpetualPositionHistory(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
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.
positionSideStringNonFiltrez à l’aide de l’énumération côté position source.
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.

Postes : actuels et historiques

Champ datataperPoste actuelPositions historiquessignification
positionIdstringfournirfournirID de position, correspondant à entityId
symbolstringfournirfournirpaire de trading
positionSidestringfournirfournirLONG / SHORT / BOTH et autres directions de position
statusstringfournirfournirChaîne avec le statut numérique du poste, voir l’aperçu de la requête
leverageintegerfournirfournirTirer parti de plusieurs
marginModestringfournirfournirChaîne d’énumération numérique “1” pour une position complète, “2” pour une position isolée
quantitystringfournirPas disponibleQuantité de position actuelle
entryPricestringfournirfournirPrix ​​d’ouverture moyen des positions stockées
marginstringfournirPas disponibleLe montant de la marge de la position actuelle, et non le solde total du portefeuille de contrat de l’utilisateur.
maxQuantitystringPas disponiblefournirLe nombre maximum de positions enregistrées dans cette position historique
closeQuantitystringPas disponiblefournirLe nombre cumulé de positions fermées au cours du cycle de vie historique de la position
closePricestringPas disponiblefournirCours de clôture moyen stocké
pnlstringPas disponiblefournirProfits et pertes de position historiques ; ne le combinez pas avec la transaction realizedPnl pour simplement répéter et accumuler
roestringPas disponiblefournirLa valeur proportionnelle du rendement historique de la position, non multipliée par 100 ; par exemple, "0.043" représente 4.3%, "-0.05" représente -5%
fundingFeeAccumstringfournirfournirFrais de financement accumulés, conservation du symbole de la source et de l’exactitude
openedAtintegerfournirfournirTemps d’ouverture de la position, millisecondes
updatedAtintegerfournirPas disponibleTemps de mise à jour de la position actuelle, millisecondes
closedAtintegerPas disponiblefournirTemps de fermeture, millisecondes ; utilisez ce champ pour filtrer l’heure de position historique

Le calibre de calcul de l’historique roe est pnl / (entryPrice × maxQuantity / leverage), et l’interface renvoie directement la valeur de proportion enregistrée. Lors de l’affichage du pourcentage, utilisez l’opération décimale et multipliez par 100, puis ajoutez % ; le dénominateur utilise la marge nominale de l’enregistrement de position historique, et non le solde du portefeuille du compte. Lorsque le prix d’ouverture ou la quantité maximale de position est de 0, l’effet de levier n’est pas valide, etc. et ne peut pas être calculé, la source est enregistrée sous 0. Par conséquent, on ne peut pas en déduire que le profit ou la perte est de 0 uniquement sur la base de roe=0.

La position actuelle n’a pas de prix de marque en temps réel, de profits et pertes flottants en temps réel, de ROE en temps réel ou de prix de liquidation en temps réel. Il reflète l’état de la position stockée et ne peut pas utiliser les champs d’heure de mise à jour et de marge pour réclamer les résultats actuels du contrôle des risques en temps réel.

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