Ir para a navegação

Posições Perpétuas

Posições Perpétuas: Integração Agent Java SDK v0.3.0, exemplos, parâmetros e semântica de resposta.

Ver como Markdown

Este guia é dirigido a Agent Java SDK v0.3.0, Java 8+ e ao contrato público assinalado. Os exemplos são executados num back-end de parceiro após a inicialização de client em Início rápido.

Pré-requisitos de exemplo

Os trechos Java partilham estas importações. Inicialize client utilizando o Quick Start e obtenha platformUserId a partir da ligação guardada. Os exemplos de IDs de utilizador/encomenda devem ser substituídos pelos seus próprios valores persistentes.

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

listCurrentPerpetualPositions

Modelo de pedido: 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 solicitação

CampoJava tipoObrigatórioSignificado
platformUserIdsjava.util.List<String>Condicional1–100 IDs públicos exclusivos; necessário para os preenchimentos e pedidos condicionais. Omitir consultas suportadas para o âmbito do player direto; [] é inválido.
symbolStringNãoFiltro opcional de pares de negociação.
limitIntegerNãoPadrão 500; 1–1000.
cursorStringNãoUtilize o nextCursor devolvido com filtros inalterados; parar quando hasMore for falso.

O exemplo lê uma página. Para campos obrigatórios, âmbito do leitor, semântica de filtro, limite, cursor e novas tentativas limitadas, siga Visão geral da consulta. Mantenha todos os filtros inalterados durante a paginação; não interprete um erro como um resultado vazio.

listPerpetualPositionHistory

Modelo de pedido: 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 solicitação

CampoJava tipoObrigatórioSignificado
platformUserIdsjava.util.List<String>Condicional1–100 IDs públicos exclusivos; necessário para os preenchimentos e pedidos condicionais. Omitir consultas suportadas para o âmbito do player direto; [] é inválido.
symbolStringNãoFiltro opcional de pares de negociação.
positionSideStringNãoFiltre utilizando a enumeração do lado da posição de origem.
startTimeLongNãoMilissegundos Unix inclusivos; utilize uma janela de histórico fixa UTC.
endTimeLongNãoMilissegundos Unix exclusivos.
limitIntegerNãoPadrão 500; 1–1000.
cursorStringNãoUtilize o nextCursor devolvido com filtros inalterados; parar quando hasMore for falso.

O exemplo lê uma página. Para campos obrigatórios, âmbito do leitor, semântica de filtro, limite, cursor e novas tentativas limitadas, siga Visão geral da consulta. Mantenha todos os filtros inalterados durante a paginação; não interprete um erro como um resultado vazio.

Posições: Atuais e Históricas

Campo datatipoPosição atualPosições históricassignificado
positionIdstringsuprimentosuprimentoID da posição, correspondente a entityId
symbolstringsuprimentosuprimentopar de negociação
positionSidestringsuprimentosuprimentoLONG / SHORT / BOTH e outras direções de posição
statusstringsuprimentosuprimentoString com o estado numérico da posição, ver a visão geral da consulta
leverageintegersuprimentosuprimentoAproveite vários
marginModestringsuprimentosuprimentoString de enumeração numérica “1” para posição completa, “2” para posição isolada
quantitystringsuprimentoNão disponívelQuantidade da posição atual
entryPricestringsuprimentosuprimentoPreço médio de abertura das posições armazenadas
marginstringsuprimentoNão disponívelO valor da margem de posição atual, e não o saldo total da carteira do contrato do utilizador
maxQuantitystringNão disponívelsuprimentoO número máximo de posições registadas nesta posição histórica
closeQuantitystringNão disponívelsuprimentoO número cumulativo de posições fechadas durante o ciclo de vida histórico da posição
closePricestringNão disponívelsuprimentoPreço médio de fecho armazenado
pnlstringNão disponívelsuprimentoLucros e perdas de posição histórica; não combinar com a transação realizedPnl para simplesmente repetir e acumular
roestringNão disponívelsuprimentoO valor proporcional do retorno histórico da posição, não multiplicado por 100; por exemplo, "0.043" representa 4.3%, "-0.05" representa -5%
fundingFeeAccumstringsuprimentosuprimentoTaxa de financiamento acumulada, mantendo o símbolo da fonte e a precisão
openedAtintegersuprimentosuprimentoTempo de abertura da posição, milissegundos
updatedAtintegersuprimentoNão disponívelTempo de atualização da posição atual, milissegundos
closedAtintegerNão disponívelsuprimentoTempo de fecho, milissegundos; utilize este campo para filtrar o tempo histórico da posição

O calibre de cálculo do histórico roe é pnl / (entryPrice × maxQuantity / leverage), e a interface devolve diretamente o valor da proporção guardada. Ao apresentar a percentagem, utilize a operação decimal e multiplique por 100, depois adicione %; o denominador utiliza a margem nominal do registo histórico da posição, e não o saldo da carteira da conta. Quando o preço de abertura ou a quantidade máxima de posição é 0, a alavancagem é inválida, etc. e não pode ser calculado, a fonte é guardada como 0. Assim, não se pode inferir que o lucro ou prejuízo seja 0 apenas com base em roe=0.

A posição atual não tem preço de marca em tempo real, lucros e perdas flutuantes em tempo real, ROE em tempo real ou preço de liquidação em tempo real. Reflete o estado da posição armazenada e não pode utilizar os campos de tempo e margem de atualização para reivindicar os resultados atuais do controlo de risco em tempo real.

Exemplo de envelope de resposta

Esta é uma página em branco ilustrativa, não uma amostra de uma negociação concluída. As tabelas de campos específicos de recursos acima descrevem items[].data preenchido.

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

Fonte e guias relacionados