Ir para a navegação

Ordens Perpétuas

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

Ver como Markdown

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

Pré-requisitos de exemplo

Os trechos Java compartilham essas importações. Inicialize client usando o Quick Start e obtenha platformUserId da ligação salva. Os exemplos de IDs de usuário/pedido devem ser substituídos por seus próprios valores persistentes.

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

listCurrentPerpetualOrders

Modelo de solicitação: CurrentPerpetualOrdersRequest.

import com.sixmm.agent.model.CurrentPerpetualOrdersRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;
CurrentPerpetualOrdersRequest request = new CurrentPerpetualOrdersRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.orderCategory = "NORMAL";
request.symbol = "BTCUSDT";
PerpetualResponse response = client.listCurrentPerpetualOrders(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
orderCategoryStringSimNORMAL ou CONDITIONAL; consultas condicionais requerem usuários explícitos.
platformUserIdsjava.util.List<String>Condicional1–100 IDs públicos exclusivos; necessário para preenchimentos e pedidos condicionais. Omitir consultas suportadas para escopo de player direto; [] é inválido.
symbolStringNãoFiltro opcional de pares de negociação.
limitIntegerNãoPadrão 500; 1–1000.
cursorStringNãoUse o nextCursor retornado com filtros inalterados; pare quando hasMore for falso.

O exemplo lê uma página. Para campos obrigatórios, escopo do player, 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.

listPerpetualOrderHistory

Modelo de solicitação: PerpetualOrderHistoryRequest.

import com.sixmm.agent.model.PerpetualOrderHistoryRequest;
import com.sixmm.agent.model.PerpetualResponse;
import java.util.Collections;
PerpetualOrderHistoryRequest request = new PerpetualOrderHistoryRequest();
request.platformUserIds = Collections.singletonList("1188041528");
request.limit = 100;
request.orderCategory = "NORMAL";
request.symbol = "BTCUSDT";
request.endTime = System.currentTimeMillis();
request.startTime = request.endTime - 3_600_000L;
PerpetualResponse response = client.listPerpetualOrderHistory(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
orderCategoryStringSimNORMAL ou CONDITIONAL; consultas condicionais requerem usuários explícitos.
platformUserIdsjava.util.List<String>Condicional1–100 IDs públicos exclusivos; necessário para preenchimentos e pedidos condicionais. Omitir consultas suportadas para escopo de player direto; [] é inválido.
symbolStringNãoFiltro opcional de pares de negociação.
orderIdStringNãoID de pedido normal; não é um número de ordem de transferência de parceiro.
conditionIdStringNãoID do pedido condicional; não misture com orderId.
clientOrderIdStringNãoReferência de ordem do cliente de negociação, não agentOrderNo.
sideStringNãoFiltro BUY / SELL.
statusStringNãoStatus específico do recurso; veja a referência de status.
startTimeLongNãoMilissegundos Unix inclusivos; use uma janela de histórico fixa UTC.
endTimeLongNãoMilissegundos Unix exclusivos.
limitIntegerNãoPadrão 500; 1–1000.
cursorStringNãoUse o nextCursor retornado com filtros inalterados; pare quando hasMore for falso.

O exemplo lê uma página. Para campos obrigatórios, escopo do player, 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.

Pedidos normais: atuais e históricos

Atual: orders/current + orderCategory=NORMAL; Histórico: orders/history + orderCategory=NORMAL.

Campo datatipoSignificado e escopo de aplicativo
symbolstringPar de negociação, como BTCUSDT
orderIdstringID de pedido comum da plataforma
orderCategorystringCorrigido NORMAL
clientOrderIdstringNúmero do pedido do cliente fornecido pela fonte do pedido de transação; não é o mesmo campo que transferência de fundos comerciais agentOrderNo
orderTypestringTipo de delegado, como LIMIT, MARKET; prevalecerá o valor real da enumeração
sidestringDireção de compra e venda BUY / SELL
statusstringStatus normal do pedido, consulte a visão geral da consulta
timeInForcestringPeríodo de validade/estratégia de execução de negócios, como GTC, IOC, FOK; interpretado de acordo com valores reais
pricestringPreço confiado; pode ser omitido quando nenhum preço for fornecido, e o preço de transação de mercado não será complementado por si mesmo.
quantitystringQuantidade original do pedido
filledQuantitystringQuantidade de transação
remainingQuantitystringQuantidade não transacionada; a consulta atual leva quantidade - filledQuantity, e a consulta histórica leva o valor do registro histórico
avgFilledPricestringO preço médio de transação da peça concluída; pode não haver valor quando não estiver concluído
reduceOnlybooleanSe deve apenas reduzir posições
closeOnlybooleanSe é usado apenas para fechar posições
makerOnlybooleanSe deve ser executado apenas como Maker
leverageintegerAproveite vários; A ordem ordinária histórica tem uma origem e a ordem ordinária atual não cria esse valor
marginModestringModo margem; Ordem ordinária histórica atualmente retorna uma string de enumeração numérica, como “1”, “2”; a ordem ordinária atual não é fornecida
createdAtintegerTempo de criação do pedido, milissegundos; use este campo para filtrar o tempo histórico do pedido
updatedAtintegerTempo de atualização do registro delegado, milissegundos

O histórico de pedidos inclui pedidos normais encerrados. Cada registro não pode ser considerado totalmente concluído apenas com base no nome da interface. A página do pedido atual é uma consulta de status atual, não um fluxo de eventos do pedido.

Pedidos condicionais: atuais e históricos

Atual: orders/current + orderCategory=CONDITIONAL; Histórico: orders/history + orderCategory=CONDITIONAL. Ambos requerem platformUserIds explícito.

Campo datatiposignificado
symbolstringpar de negociação
conditionIdstringID de pedidos condicionais, independente do normal orderId
orderCategorystringCorrigido CONDITIONAL
generatedOrderIdstringID do pedido comum gerado após o acionamento; pode ser omitido se não for gerado
clientOrderIdstringO número do pedido do cliente de pedidos condicionais, exibido quando existir
sidestringBUY / SELL
orderTypestringTipo de pedido pós-acionamento, interpretado de acordo com o valor real
triggerTypestringTipo de regra de gatilho, explicado pela enumeração de origem real
workingTypestringTipo de trabalho/fonte de preço que aciona o preço, interpretado como enumeração real
timeInForcestringPrazo de validade/estratégia de execução da ordem após acionamento
pricestringO preço do pedido após o acionamento, gerado quando a fonte tem valor
quantitystringQuantidade condicional do pedido
triggerPricestringpreço de gatilho
reduceOnlybooleanSe deve apenas reduzir posições
closePositionbooleanSe deve usar a semântica completa de fechamento de posição, não pode ser confundido com closeOnly como o mesmo campo
leverageintegerAproveite múltiplos, saída quando diferente de zero
marginModestringEsta classe retorna CROSS / ISOLATED, que é uma string numérica diferente das ordens/posições históricas comuns
statusstringEstado de gatilho único condicional, consulte a visão geral da consulta
triggerStatusstringA implementação atual usa o mesmo valor de status condicional que status
createdAtintegerTempo de criação de pedido condicional, milissegundos; as condições históricas são filtradas por este tempo
updatedAtintegerTempo de atualização, saída quando há um valor, milissegundos
deletedAtintegerExcluir tempo de marcação, saída quando houver um valor, milissegundos; não é um campo unificado de hora de transação/cancelamento

Pedidos condicionais não fornecem filledQuantity, remainingQuantity, avgFilledPrice para pedidos normais. Se você precisar do status da transação de pedidos comuns após o acionamento, consulte pedidos/transações comuns por meio de generatedOrderId e não infira o volume da transação a partir do status do pedido condicional.

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