Vai alla navigazione

Ordini perpetui

Ordini perpetui: Agent Java SDK Integrazione v0.3.0, esempi, parametri e semantica della risposta.

Visualizza come Markdown

Questa guida è rivolta a Agent Java SDK v0.3.0, Java 8+ e agli appalti pubblici contrassegnati. Gli esempi vengono eseguiti nel backend di un partner dopo aver inizializzato client in Avvio rapido.

Prerequisiti di esempio

Gli snippet Java condividono queste importazioni. Inizializza client utilizzando Quick Start e ottieni platformUserId dall’associazione salvata. Gli ID utente/ordine di esempio devono essere sostituiti con i tuoi valori persistenti.

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

listCurrentPerpetualOrders

Modello richiesto: 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);

Campi richiesta

CampoTipo JavaNecessarioSenso
orderCategoryStringSÌNORMAL o CONDITIONAL; le query condizionali richiedono utenti espliciti.
platformUserIdsjava.util.List<String>CondizionaleDa 1 a 100 ID pubblici univoci; richiesto per esecuzioni e ordini condizionati. Omettere le query supportate per l’ambito del player diretto; [] non è valido.
symbolStringNOFiltro opzionale per le coppie di scambio.
limitIntegerNOPredefinito 500; 1–1000.
cursorStringNOUtilizza il nextCursor restituito con i filtri invariati; interrompere quando hasMore è falso.

L’esempio legge una pagina. Per i campi obbligatori, ambito del giocatore, semantica del filtro, limite, cursore e tentativi limitati, seguire Panoramica delle query. Mantieni invariati tutti i filtri durante la paginazione; non interpretare un errore come un risultato vuoto.

listPerpetualOrderHistory

Modello richiesto: 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);

Campi richiesta

CampoTipo JavaNecessarioSenso
orderCategoryStringSÌNORMAL o CONDITIONAL; le query condizionali richiedono utenti espliciti.
platformUserIdsjava.util.List<String>CondizionaleDa 1 a 100 ID pubblici univoci; richiesto per esecuzioni e ordini condizionati. Omettere le query supportate per l’ambito del player diretto; [] non è valido.
symbolStringNOFiltro opzionale per le coppie di scambio.
orderIdStringNOID dell’ordine ordinario; non un numero di ordine di trasferimento del partner.
conditionIdStringNOID ordine condizionato; non mescolare con orderId.
clientOrderIdStringNORiferimento dell’ordine del cliente di trading, non agentOrderNo.
sideStringNOFiltro BUY / SELL.
statusStringNOStato specifico della risorsa; vedere il riferimento allo stato.
startTimeLongNOMillisecondi Unix inclusi; utilizzare una finestra della cronologia UTC fissa.
endTimeLongNOMillisecondi Unix esclusivi.
limitIntegerNOPredefinito 500; 1–1000.
cursorStringNOUtilizza il nextCursor restituito con i filtri invariati; interrompere quando hasMore è falso.

L’esempio legge una pagina. Per i campi obbligatori, ambito del giocatore, semantica del filtro, limite, cursore e tentativi limitati, seguire Panoramica delle query. Mantieni invariati tutti i filtri durante la paginazione; non interpretare un errore come un risultato vuoto.

Ordini ordinari: attualità e storia

Corrente: orders/current + orderCategory=NORMAL; Cronologia: orders/history + orderCategory=NORMAL.

campo data.tipoSignificato e ambito di applicazione
symbolstringCoppia di trading, come BTCUSDT
orderIdstringID ordine ordinario della piattaforma
orderCategorystringRisolto NORMAL
clientOrderIdstringNumero dell’ordine del cliente fornito dalla fonte dell’ordine della transazione; non è lo stesso campo del trasferimento fondi commerciante agentOrderNo
orderTypestringTipo di delegato, ad esempio LIMIT, MARKET; prevarrà il valore di enumerazione effettivo
sidestringDirezione di acquisto e vendita BUY / SELL
statusstringStato dell’ordine ordinario, vedere la panoramica delle query
timeInForcestringPeriodo di validità/strategia di esecuzione dell’affare, ad esempio GTC, IOC, FOK; interpretato in base ai valori reali
pricestringPrezzo affidato; può essere omesso quando non viene fornito alcun prezzo e il prezzo della transazione di mercato non verrà integrato da solo.
quantitystringQuantità dell’ordine originale
filledQuantitystringQuantità di transazione
remainingQuantitystringQuantità non negoziata; la query corrente prende la quantità - filledQuantity e la query storica prende il valore del record storico
avgFilledPricestringIl prezzo medio della transazione della parte completata; potrebbe non esserci alcun valore quando non è completato
reduceOnlybooleanSe ridurre solo le posizioni
closeOnlybooleanSe viene utilizzato solo per chiudere le posizioni
makerOnlybooleanSe eseguire solo come Maker
leverageintegerLeva multipla; L’ordine ordinario storico ha una fonte e l’ordine ordinario corrente non crea questo valore
marginModestringModalità margine; Ordine storico ordinario attualmente restituisce una stringa di enumerazione numerica, come “1”, “2”; non è previsto l’ordinamento ordinario attuale
createdAtintegerTempo di creazione dell’ordine, millisecondi; utilizzare questo campo per filtrare il tempo storico dell’ordine
updatedAtintegerTempo di aggiornamento del record delegato, millisecondi

La cronologia degli ordini include gli ordini ordinari terminati. Ogni record non può essere considerato completamente completato in base al solo nome dell’interfaccia. La pagina dell’ordine corrente è una query sullo stato corrente, non un flusso di eventi dell’ordine.

Ordini condizionati: attualità e storia

Corrente: orders/current + orderCategory=CONDITIONAL; Cronologia: orders/history + orderCategory=CONDITIONAL. Entrambi richiedono platformUserIds esplicito.

campo data.tipoSenso
symbolstringcoppia commerciale
conditionIdstringID ordini condizionati, indipendenti da quelli ordinari orderId
orderCategorystringRisolto CONDITIONAL
generatedOrderIdstringID ordine ordinario generato dopo l’attivazione; può essere omesso se non generato
clientOrderIdstringIl numero dell’ordine cliente degli ordini condizionati, restituito quando esiste
sidestringBUY / SELL
orderTypestringTipo di ordine post-trigger, interpretato in base al valore effettivo
triggerTypestringTipo di regola di attivazione, spiegato dall’effettiva enumerazione dell’origine
workingTypestringTipo di lavoro/origine del prezzo che attiva il prezzo, interpretato come enumerazione effettiva
timeInForcestringPeriodo di validità/strategia di esecuzione dell’ordine dopo l’attivazione
pricestringIl prezzo dell’ordine dopo l’attivazione, viene restituito quando la fonte ha valore
quantitystringQuantità dell’ordine condizionato
triggerPricestringprezzo di attivazione
reduceOnlybooleanSe ridurre solo le posizioni
closePositionbooleanSe utilizzare la semantica di chiusura della posizione completa, non può essere confuso con closeOnly come lo stesso campo
leverageintegerLeva multipla, output quando diverso da zero
marginModestringQuesta classe restituisce CROSS / ISOLATED, che è una stringa numerica diversa dagli ordini/posizioni storici ordinari
statusstringStato trigger singolo condizionale, vedere la panoramica delle query
triggerStatusstringL’implementazione corrente utilizza lo stesso valore di stato condizionale di status
createdAtintegerTempo di creazione dell’ordine condizionato, millisecondi; le condizioni storiche sono filtrate da questo momento
updatedAtintegerTempo di aggiornamento, output quando è presente un valore, millisecondi
deletedAtintegerElimina il tempo di contrassegno, emette quando è presente un valore, millisecondi; non è un campo unificato per l’ora della transazione/annullamento

Gli ordini condizionati non prevedono filledQuantity, remainingQuantity, avgFilledPrice per gli ordini ordinari. Se hai bisogno dello stato della transazione degli ordini ordinari dopo l’attivazione, interroga gli ordini/transazioni ordinari tramite generatedOrderId e non dedurre il volume delle transazioni dallo stato dell’ordine condizionato.

Busta di risposta di esempio

Questa è una pagina vuota illustrativa, non un esempio di un’operazione completata. Le tabelle dei campi specifici della risorsa sopra descrivono il items[].data popolato.

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

Fonte e guide correlate