Zur Navigation springen

Unbefristete Positionen

Unbefristete Positionen: Agent Java SDK v0.3.0-Integration, Beispiele, Parameter und Antwortsemantik.

Als Markdown anzeigen

Dieser Leitfaden richtet sich an Agent Java SDK v0.3.0, Java 8+ und den getaggten öffentlichen Auftrag. Beispiele werden nach der Initialisierung von client in einem Partner-Backend ausgeführt Schnellstart.

Beispielvoraussetzungen

Die Java-Snippets teilen diese Importe. Initialisieren Sie client mit Quick Start und rufen Sie platformUserId aus der gespeicherten Bindung ab. Beispiel-Benutzer-/Bestell-IDs müssen durch Ihre eigenen persistenten Werte ersetzt werden.

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

listCurrentPerpetualPositions

Anforderungsmodell: 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);

Anforderungsfelder

FeldJava TypErforderlichBedeutung
platformUserIdsjava.util.List<String>Bedingt1–100 eindeutige öffentliche IDs; erforderlich für Ausführungen und bedingte Bestellungen. Bei unterstützten Abfragen für den Direktspielerbereich weglassen; [] ist ungültig.
symbolStringNEINOptionaler Handelspaarfilter.
limitIntegerNEINStandard 500; 1–1000.
cursorStringNEINVerwenden Sie den zurückgegebenen nextCursor mit unveränderten Filtern. stoppen, wenn hasMore falsch ist.

Das Beispiel liest eine Seite. Informationen zu erforderlichen Feldern, Player-Bereich, Filtersemantik, Limit, Cursor und begrenzten Wiederholungsversuchen finden Sie hier Abfrageübersicht. Lassen Sie beim Blättern alle Filter unverändert; Interpretieren Sie einen Fehler nicht als leeres Ergebnis.

listPerpetualPositionHistory

Anforderungsmodell: 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);

Anforderungsfelder

FeldJava TypErforderlichBedeutung
platformUserIdsjava.util.List<String>Bedingt1–100 eindeutige öffentliche IDs; erforderlich für Ausführungen und bedingte Bestellungen. Bei unterstützten Abfragen für den Direktspielerbereich weglassen; [] ist ungültig.
symbolStringNEINOptionaler Handelspaarfilter.
positionSideStringNEINFiltern Sie mithilfe der quellpositionsseitigen Enumeration.
startTimeLongNEINInklusive Unix-Millisekunden; Verwenden Sie ein festes UTC-Verlaufsfenster.
endTimeLongNEINExklusive Unix-Millisekunden.
limitIntegerNEINStandard 500; 1–1000.
cursorStringNEINVerwenden Sie den zurückgegebenen nextCursor mit unveränderten Filtern. stoppen, wenn hasMore falsch ist.

Das Beispiel liest eine Seite. Informationen zu erforderlichen Feldern, Player-Bereich, Filtersemantik, Limit, Cursor und begrenzten Wiederholungsversuchen finden Sie hier Abfrageübersicht. Lassen Sie beim Blättern alle Filter unverändert; Interpretieren Sie einen Fehler nicht als leeres Ergebnis.

Positionen: aktuell und historisch

data FeldTypAktuelle PositionHistorische PositionenBedeutung
positionIdstringliefernliefernPositions-ID, entsprechend entityId
symbolstringliefernliefernHandelspaar
positionSidestringliefernliefernLONG / SHORT / BOTH und andere Positionsrichtungen
statusstringliefernliefernString mit dem numerischen Status der Position, siehe Abfrageübersicht
leverageintegerliefernliefernNutzen Sie mehrere
marginModestringliefernliefernNumerische Aufzählungszeichenfolge „1“ für vollständige Position, „2“ für isolierte Position
quantitystringliefernNicht verfügbarAktuelle Positionsmenge
entryPricestringliefernliefernDurchschnittlicher Eröffnungspreis der gespeicherten Positionen
marginstringliefernNicht verfügbarDer Margin-Betrag der aktuellen Position, nicht der gesamte Vertrags-Wallet-Saldo des Benutzers
maxQuantitystringNicht verfügbarliefernDie maximale Anzahl der in dieser historischen Position aufgezeichneten Positionen
closeQuantitystringNicht verfügbarliefernDie kumulierte Anzahl der während des historischen Positionslebenszyklus geschlossenen Positionen
closePricestringNicht verfügbarliefernGespeicherter durchschnittlicher Schlusskurs
pnlstringNicht verfügbarliefernHistorischer Positionsgewinn und -verlust; Kombinieren Sie es nicht mit der Transaktion realizedPnl, um es einfach zu wiederholen und zu akkumulieren
roestringNicht verfügbarliefernDer proportionale Wert der historischen Positionsrendite, nicht multipliziert mit 100; Beispielsweise steht "0.043" für 4.3%, "-0.05" für -5%
fundingFeeAccumstringliefernliefernKumulierte Finanzierungsgebühr unter Beibehaltung des Quellensymbols und der Genauigkeit
openedAtintegerliefernliefernPositionsöffnungszeit, Millisekunden
updatedAtintegerliefernNicht verfügbarAktualisierungszeit der aktuellen Position, Millisekunden
closedAtintegerNicht verfügbarliefernSchließzeit, Millisekunden; Verwenden Sie dieses Feld, um die historische Positionszeit zu filtern

Das Berechnungskaliber des Verlaufs roe ist pnl / (entryPrice × maxQuantity / leverage), und die Schnittstelle gibt den gespeicherten Anteilswert direkt zurück. Verwenden Sie bei der Anzeige des Prozentsatzes die Dezimaloperation, multiplizieren Sie mit 100 und addieren Sie dann %; Der Nenner verwendet die nominale Marge des historischen Positionsdatensatzes, nicht den Kontostand des Kontos. Wenn der Eröffnungspreis oder die maximale Positionsmenge 0 beträgt, der Hebel ungültig ist usw. und nicht berechnet werden kann, wird die Quelle als 0 gespeichert. Daher kann nicht allein auf der Grundlage von roe=0 gefolgert werden, dass der Gewinn oder Verlust 0 ist.

Für die aktuelle Position gibt es keinen Echtzeit-Markierungspreis, keinen Echtzeit-Floating-Gewinn und -Verlust, keinen Echtzeit-ROE oder keinen Echtzeit-Liquidationspreis. Es spiegelt den gespeicherten Positionsstatus wider und kann die Aktualisierungszeit- und Margin-Felder nicht verwenden, um die aktuellen Echtzeit-Risikokontrollergebnisse zu beanspruchen.

Beispiel eines Antwortumschlags

Dies ist eine leere Seite zur Veranschaulichung, kein Beispiel eines abgeschlossenen Handels. Die obigen ressourcenspezifischen Feldtabellen beschreiben ausgefüllte items[].data.

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

Quelle und zugehörige Leitfäden