Aggiornamento API CEX Plus per sgcWebSockets

· Funzionalità
Integrazione dell'API WebSocket CEX.IO Plus in Delphi

CEX.IO Plus è la piattaforma di trading avanzata di CEX.IO, progettata per trader professionisti e istituzionali. Il componente TsgcWSAPI_CexPlus fornisce un accesso completo in Delphi alla sua API WebSocket, coprendo sottoscrizioni ai dati di mercato, gestione degli ordini, operazioni sull'account e trasferimenti di fondi, tutto attraverso una singola connessione persistente.

Indice

Panoramica

L'API CEX.IO Plus estende significativamente l'offerta standard di CEX.IO. Fornisce tre livelli di funzionalità: sottoscrizioni pubbliche per feed in tempo reale del libro degli ordini e dei trade, query sui dati di mercato per snapshot on-demand di ticker, candele e informazioni sull'exchange, e metodi dell'account per operazioni di trading complete, inclusi gestione ordini, query sulle commissioni, cronologia delle transazioni e trasferimenti di fondi. Il componente TsgcWSAPI_CexPlus incapsula tutte queste capacità.

Per iniziare

Crea un componente TsgcWebSocketClient e un TsgcWSAPI_CexPlus, collegali e configura le tue credenziali API. Il componente si connette automaticamente all'endpoint WebSocket di CEX.IO Plus.

oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your_api_key';
oCexPlus.CexPlus.ApiSecret := 'your_api_secret';
oClient.Active := True;
Nota: CEX.IO Plus usa un endpoint API e uno schema di autenticazione diversi rispetto all'API CEX.IO standard. Assicurati che le tue credenziali API siano generate dalla dashboard di CEX.IO Plus, non dalla piattaforma standard di CEX.IO.

Metodi WebSocket pubblici

I metodi di sottoscrizione pubblici forniscono streaming di dati in tempo reale senza richiedere autenticazione. Sono ideali per il monitoraggio dei mercati e per costruire feed di dati live.

Metodo Descrizione
SubscribeOrderBook Sottoscrive agli aggiornamenti in tempo reale del libro degli ordini per una coppia di trading.
UnSubscribeOrderBook Annulla la sottoscrizione dagli aggiornamenti del libro degli ordini per una coppia di trading.
SubscribeTrade Sottoscrive al feed live di esecuzione dei trade per una coppia di trading.
UnSubscribeTrade Annulla la sottoscrizione dal feed di esecuzione dei trade.
// Sottoscrive al libro degli ordini e ai trade di BTC-USD
oCexPlus.SubscribeOrderBook('BTC-USD');
oCexPlus.SubscribeTrade('BTC-USD');
// Annulla la sottoscrizione quando non serve più
oCexPlus.UnSubscribeOrderBook('BTC-USD');
oCexPlus.UnSubscribeTrade('BTC-USD');

Metodi dei dati di mercato

I metodi dei dati di mercato restituiscono snapshot on-demand dei dati dell'exchange. A differenza delle sottoscrizioni, sono chiamate request-response che restituiscono un singolo risultato.

Metodo Descrizione
GetTicker Recupera il ticker corrente (bid, ask, ultimo prezzo) per una coppia.
GetOrderBook Recupera lo snapshot corrente del libro degli ordini per una coppia.
GetCandles Recupera dati di candele OHLCV per il charting.
GetTradeHistory Recupera la cronologia recente dei trade pubblici per una coppia.
GetServerTime Recupera il timestamp corrente del server per la sincronizzazione.
GetPairsInfo Recupera informazioni su tutte le coppie di trading disponibili.
GetCurrenciesInfo Recupera informazioni su tutte le valute supportate.
GetProcessingInfo Recupera i dettagli di elaborazione di depositi e prelievi.

Interrogare i dati di mercato

// Ottiene il ticker corrente per BTC-USD
oCexPlus.GetTicker('BTC-USD');
// Ottiene lo snapshot del libro degli ordini
oCexPlus.GetOrderBook('BTC-USD');
// Ottiene i dati delle candele per il charting
oCexPlus.GetCandles('BTC-USD');
// Ottiene le coppie di trading disponibili
oCexPlus.GetPairsInfo;

Metodi di account e trading

I metodi dell'account richiedono autenticazione e forniscono capacità di trading complete, inclusi piazzamento di ordini, controllo dello stato dell'account, gestione delle commissioni e trasferimenti di fondi.

Gestione dell'account

Metodo Descrizione
Ping Invia un ping keepalive per mantenere la connessione.
CreateAccount Crea un nuovo sub-account sulla piattaforma.
GetAccountStatus Recupera lo stato corrente dell'account e i dettagli.
GetCurrentFee Recupera la tariffa di commissione di trading corrente per l'account.
GetFeeStrategy Recupera la strategia di commissioni e le informazioni di tier.
GetVolume Recupera il volume di trading per il calcolo del tier di commissioni.

Gestione degli ordini

Metodo Descrizione
GetOrders Recupera tutti gli ordini aperti sull'account.
NewOrder Piazza un nuovo ordine con pieno controllo dei parametri.
NewMarketOrder Piazza un ordine market che viene eseguito al miglior prezzo corrente.
NewLimitOrder Piazza un ordine limit a un prezzo specificato.
CancelOrder Annulla un ordine aperto specifico tramite il suo identificatore.
CancelAllOrders Annulla tutti gli ordini aperti in una volta.

Cronologia e fondi

Metodo Descrizione
GetTransactionHistory Recupera la cronologia delle transazioni dell'account.
GetFundingHistory Recupera la cronologia di depositi e prelievi.
InternalTransfer Trasferisce fondi tra sub-account internamente.
GetDepositAddress Genera o recupera un indirizzo di deposito per una valuta.
FundsDepositFromWallet Deposita fondi da un wallet esterno nell'account di trading.
FundsWithdrawalToWallet Preleva fondi dall'account di trading verso un wallet esterno.

Esempio di codice

L'esempio seguente dimostra la connessione a CEX.IO Plus, il controllo dello stato dell'account, la sottoscrizione al libro degli ordini e il piazzamento di un ordine market.

oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your_api_key';
oCexPlus.CexPlus.ApiSecret := 'your_api_secret';
oClient.Active := True;
// Ottiene lo stato dell'account
oCexPlus.GetAccountStatus;
// Sottoscrive al libro degli ordini
oCexPlus.SubscribeOrderBook('BTC-USD');
// Piazza un ordine market
oCexPlus.NewMarketOrder('BTC', 'USD', cxpsBuy);

Piazzare tipi di ordine diversi

CEX.IO Plus supporta diversi tipi di ordine. Usa NewMarketOrder per un'esecuzione immediata al miglior prezzo disponibile, NewLimitOrder per ordini a prezzo specifico o NewOrder per pieno controllo dei parametri.

// Ordine market: compra BTC con USD al prezzo di mercato
oCexPlus.NewMarketOrder('BTC', 'USD', cxpsBuy);
// Ordine limit: compra BTC a un prezzo specifico
oCexPlus.NewLimitOrder('BTC', 'USD', cxpsBuy, 0.01, 30000);
// Annulla un ordine specifico
oCexPlus.CancelOrder('order-id-here');
// Annulla tutti gli ordini aperti
oCexPlus.CancelAllOrders;

Trasferimenti di fondi

Il componente supporta trasferimenti interni di fondi tra sub-account oltre alle operazioni di deposito e prelievo.

// Ottiene l'indirizzo di deposito per BTC
oCexPlus.GetDepositAddress('BTC');
// Recupera la cronologia di funding
oCexPlus.GetFundingHistory;
// Trasferisce fondi tra sub-account
oCexPlus.InternalTransfer('from-account', 'to-account', 'BTC', 0.5);

Configurazione e note

Credenziali API

Genera la tua api key e il secret dalla piattaforma CEX.IO Plus. Queste sono distinte dalle credenziali standard di CEX.IO. Assicurati che l'api key abbia abilitati i permessi appropriati per le operazioni che intendi eseguire (es. trading, prelievo).

Convenzione di denominazione delle coppie

CEX.IO Plus usa un formato di coppia con trattino come BTC-USD, a differenza dell'API CEX.IO standard che usa parametri separati per valuta base e quote. Usa sempre il formato con trattino quando chiami metodi di sottoscrizione e query sui dati di mercato.

Enumerazione del lato ordine

I metodi degli ordini usano i valori di enumerazione cxpsBuy e cxpsSell per specificare la direzione dell'ordine. Sono specifici del componente CEX.IO Plus e differiscono dall'enumerazione standard di CEX.IO.

Keepalive della connessione

Usa il metodo Ping a intervalli regolari per mantenere viva la sessione autenticata. Questo evita che il server chiuda la connessione per inattività.

Suggerimento: usa GetPairsInfo e GetCurrenciesInfo all'avvio per scoprire dinamicamente le coppie di trading disponibili e le valute supportate, invece di scriverle a codice nella tua applicazione.

Gestione degli errori

Tutte le risposte da CEX.IO Plus includono un campo status. Gestisci le risposte di errore nell'evento del messaggio del componente controllando lo status della risposta e i dettagli dell'errore. Errori comuni includono saldo insufficiente, nomi di coppia non validi e fallimenti di autenticazione.