> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.6mm.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.6mm.com/_mcp/server.

# Remplissages commerciaux perpétuels

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](/fr/sdk/agent-sdk/java/quick-start).

## 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.

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

## `listPerpetualTrades`

Modèle de demande : `PerpetualTradesRequest`.

```java
import com.sixmm.agent.model.PerpetualTradesRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;

PerpetualTradesRequest request = new PerpetualTradesRequest();
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.listPerpetualTrades(request);
System.out.println(response.data.items.size());
System.out.println(response.data.hasMore);
System.out.println(response.data.nextCursor);
```

### Champs de requête

| Champ             | Java tapez               | Requis | Signification                                                                                                                                                                     |
| ----------------- | ------------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `platformUserIds` | `java.util.List<String>` | Oui    | Fournissez explicitement 1 à 100 identifiants d'utilisateur de plate-forme publique uniques appartenant au partenaire actuel ; l'omission et un tableau vide ne sont pas valides. |
| `symbol`          | `String`                 | Non    | Filtre de paire de trading en option.                                                                                                                                             |
| `orderId`         | `String`                 | Non    | ID de commande ordinaire ; pas un numéro d'ordre de transfert de partenaire.                                                                                                      |
| `startTime`       | `Long`                   | Non    | Millisecondes Unix incluses ; utilisez une fenêtre d'historique UTC fixe.                                                                                                         |
| `endTime`         | `Long`                   | Non    | Millisecondes Unix exclusives.                                                                                                                                                    |
| `limit`           | `Integer`                | Non    | Par défaut 500 ; 1 à 1000.                                                                                                                                                        |
| `cursor`          | `String`                 | Non    | Utilisez 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](/fr/sdk/agent-sdk/java/perpetual-queries). Gardez tous les filtres inchangés pendant la pagination ; n’interprètez pas une erreur comme un résultat vide.

## Détails du remplissage des échanges

Interface : `trades`. Nécessite un platformUserIds.

| Champ `data`   | taper   | signification                                                                                                                                          |
| -------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `fillId`       | string  | ID des détails de remplissage du commerce, correspondant à cet enregistrement entityId                                                                 |
| `tradeId`      | string  | L'ID de transaction correspondant associé à la transaction ; ne remplace pas l'identifiant détaillé                                                    |
| `orderId`      | string  | L'ID de commande générale à laquelle appartient ce détail                                                                                              |
| `positionId`   | string  | ID de poste associé                                                                                                                                    |
| `symbol`       | string  | paire de trading                                                                                                                                       |
| `side`         | string  | Direction d'achat et de vente de ce joueur BUY / SELL                                                                                                  |
| `roleType`     | string  | Le personnage de transaction de ce joueur MAKER / TAKER                                                                                                |
| `positionSide` | string  | Sens de position, expliqué en fonction de la valeur réelle LONG / SHORT / BOTH etc.                                                                    |
| `price`        | string  | Ce prix de transaction                                                                                                                                 |
| `quantity`     | string  | La quantité de cette transaction n'est pas la quantité totale de la commande initiale.                                                                 |
| `tradeValue`   | string  | La valeur nominale de cette transaction provient du notionnel de la transaction                                                                        |
| `handlingFee`  | string  | Les frais de transaction pour cette transaction conservent le symbole de la source et l'exactitude, et ne prennent pas en eux-mêmes la valeur absolue. |
| `realizedPnl`  | string  | Le profit et la perte réalisés correspondant à cette opération ; pas le profit et la perte flottants en temps réel de la position actuelle             |
| `tradedAt`     | integer | Temps de transaction, millisecondes ; utiliser ce champ pour le filtrage temporel                                                                      |

Une commande peut avoir plusieurs exécutions, qui doivent être enregistrées en détail. Ne fusionnez pas les enregistrements de différents joueurs/remplissez des rôles par tradeId, puis supprimez leurs identités d'enregistrement.

## 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.

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

## Source et guides associés

* [Source officielle v0.3.0](https://github.com/6mm-com/agent-java-sdk/tree/54aa3c1)
* [Présentation et pagination des requêtes](/fr/sdk/agent-sdk/java/perpetual-queries)
* [Portefeuille de financement](/fr/sdk/agent-sdk/java/funding-wallet)
* [Guide de mise à niveau](/fr/sdk/agent-sdk/java/upgrade)