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 é 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.*;

listCurrentPerpetualOrders

Modelo de pedido: 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 utilizadores explícitos.
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.

listPerpetualOrderHistory

Modelo de pedido: 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 utilizadores explícitos.
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.
orderIdStringNãoID de encomenda normal; não é um número de ordem de transferência de parceiros.
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ãoEstado específico do recurso; ver a referência de estado.
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.

Encomendas normais: atuais e históricas

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

Campo datatipoSignificado e âmbito de aplicação
symbolstringPar de negociação, como BTCUSDT
orderIdstringID de encomenda comum da plataforma
orderCategorystringCorrigido NORMAL
clientOrderIdstringNúmero de encomenda do cliente fornecido pela fonte do pedido de transação; não é o mesmo campo que a 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
statusstringEstado normal do pedido, consulte a visão geral da consulta
timeInForcestringPeríodo de validade/estratégia de execução do negócio, como por exemplo GTC, IOC, FOK; interpretado de acordo com valores reais
pricestringPreço confiado; pode ser omitido quando não é fornecido qualquer preço, 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 registo 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 é utilizado 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 devolve atualmente 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; utilize este campo para filtrar o tempo histórico do pedido
updatedAtintegerTempo de atualização do registo delegado, milissegundos

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

Pedidos condicionais: atuais e históricos

Current: 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, apresentado quando existe
sidestringBUY / SELL
orderTypestringTipo de pedido pós-acionamento, interpretado de acordo com o valor real
triggerTypestringTipo de regra de disparo, explicado pela enumeração de origem real
workingTypestringTipo de trabalho/fonte de preço que desencadeia 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 um valor
quantitystringQuantidade condicional do pedido
triggerPricestringpreço de gatilho
reduceOnlybooleanSe deve apenas reduzir posições
closePositionbooleanSe deve usar a semântica completa de fecho 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 disparo único condicional, consulte a visão geral da consulta
triggerStatusstringA implementação atual utiliza o mesmo valor de estado condicional que o estado
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 existe um valor, milissegundos
deletedAtintegerApagar tempo de marcação, saída quando existe um valor, milissegundos; não é um campo unificado de hora de transação/cancelamento

Os pedidos condicionais não disponibilizam filledQuantity, remainingQuantity, avgFilledPrice para pedidos normais. Se necessitar do estado da transação de encomendas comuns após o disparo, consulte encomendas/transações comuns através de generatedOrderId e não infira o volume da transação a partir do estado da encomenda 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