Saltar a la navegación

Posiciones perpetuas

Posiciones perpetuas: Agent Java SDK v0.3.0 integración, ejemplos, parámetros y semántica de respuesta.

Ver como Markdown

Esta guía está dirigida a Agent Java SDK v0.3.0, Java 8+ y el contrato público etiquetado. Los ejemplos se ejecutan en un backend asociado después de inicializar client en Inicio rápido.

Requisitos previos de ejemplo

Los fragmentos Java comparten estas importaciones. Inicialice client usando el Inicio rápido y obtenga platformUserId del enlace guardado. Los ID de usuario/pedido de ejemplo deben reemplazarse con sus propios valores persistentes.

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

listCurrentPerpetualPositions

Modelo de solicitud: 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);

Campos de solicitud

CampoJava tipoRequeridoSignificado
platformUserIdsjava.util.List<String>Condicional1 a 100 identificaciones públicas únicas; requerido para rellenos y pedidos condicionales. Omitir consultas admitidas para el alcance del jugador directo; [] no es válido.
symbolStringNoFiltro de pares comerciales opcional.
limitIntegerNoPredeterminado 500; 1–1000.
cursorStringNoUtilice el nextCursor devuelto con filtros sin cambios; detenerse cuando hasMore sea falso.

El ejemplo lee una página. Para campos obligatorios, alcance del reproductor, semántica de filtro, límite, cursor y reintentos limitados, siga Resumen de consultas. Mantenga todos los filtros sin cambios mientras busca; no interprete un error como un resultado vacío.

listPerpetualPositionHistory

Modelo de solicitud: 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);

Campos de solicitud

CampoJava tipoRequeridoSignificado
platformUserIdsjava.util.List<String>Condicional1 a 100 identificaciones públicas únicas; requerido para rellenos y pedidos condicionales. Omitir consultas admitidas para el alcance del jugador directo; [] no es válido.
symbolStringNoFiltro de pares comerciales opcional.
positionSideStringNoFiltre utilizando la enumeración del lado de la posición de origen.
startTimeLongNoMilisegundos Unix inclusivos; utilice una ventana de historial fija UTC.
endTimeLongNoMilisegundos exclusivos de Unix.
limitIntegerNoPredeterminado 500; 1–1000.
cursorStringNoUtilice el nextCursor devuelto con filtros sin cambios; detenerse cuando hasMore sea falso.

El ejemplo lee una página. Para campos obligatorios, alcance del reproductor, semántica de filtro, límite, cursor y reintentos limitados, siga Resumen de consultas. Mantenga todos los filtros sin cambios mientras busca; no interprete un error como un resultado vacío.

Posiciones: Actual e Histórica

data campotipoPosición actualPosiciones históricassignificado
positionIdstringsuministrarsuministrarID de posición, correspondiente a entityId
symbolstringsuministrarsuministrarpar comercial
positionSidestringsuministrarsuministrarLONG / SHORT / BOTH y otras direcciones de posición
statusstringsuministrarsuministrarCadena con el estado numérico del puesto, ver resumen de consultas
leverageintegersuministrarsuministrarAprovechar múltiples
marginModestringsuministrarsuministrarCadena de enumeración numérica “1” para la posición completa, “2” para la posición aislada
quantitystringsuministrarNo disponibleCantidad de posición actual
entryPricestringsuministrarsuministrarPrecio medio de apertura de las posiciones almacenadas
marginstringsuministrarNo disponibleEl monto del margen de la posición actual, no el saldo completo de la billetera del contrato del usuario.
maxQuantitystringNo disponiblesuministrarEl número máximo de posiciones registradas en esta posición histórica.
closeQuantitystringNo disponiblesuministrarEl número acumulado de posiciones cerradas durante el ciclo de vida histórico de la posición.
closePricestringNo disponiblesuministrarPrecio de cierre medio almacenado
pnlstringNo disponiblesuministrarPérdidas y ganancias de la posición histórica; no lo combine con la transacción realizedPnl para simplemente repetir y acumular
roestringNo disponiblesuministrarEl valor proporcional del retorno de la posición histórica, no multiplicado por 100; por ejemplo, "0.043" representa 4.3%, "-0.05" representa -5%
fundingFeeAccumstringsuministrarsuministrarTarifa de financiación acumulada, retención del símbolo de la fuente y precisión
openedAtintegersuministrarsuministrarTiempo de apertura de posición, milisegundos
updatedAtintegersuministrarNo disponibleTiempo de actualización de la posición actual, milisegundos
closedAtintegerNo disponiblesuministrarHora de cierre, milisegundos; utilice este campo para filtrar el tiempo de posición histórico

El calibre de cálculo del historial roe es pnl / (entryPrice × maxQuantity / leverage), y la interfaz devuelve directamente el valor de proporción guardado. Al mostrar el porcentaje, use la operación decimal y multiplique por 100, luego agregue %; el denominador utiliza el margen nominal del registro de posición histórico, no el saldo de la billetera de la cuenta. Cuando el precio de apertura o la cantidad máxima de la posición es 0, el apalancamiento no es válido, etc. y no se puede calcular, la fuente se guarda como 0. Por lo tanto, no se puede inferir que la ganancia o pérdida es 0 simplemente basándose en roe=0.

La posición actual no tiene precio de marca en tiempo real, pérdidas y ganancias flotantes en tiempo real, ROE en tiempo real o precio de liquidación en tiempo real. Refleja el estado de la posición almacenada y no puede utilizar los campos de tiempo y margen de actualización para reclamar los resultados actuales del control de riesgos en tiempo real.

Ejemplo de sobre de respuesta

Esta es una página vacía ilustrativa, no una muestra de una operación completada. Las tablas de campos específicos de recursos anteriores describen items[].data.

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

Guías fuente y relacionadas