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
- Per iniziare
- Metodi WebSocket pubblici
- Metodi dei dati di mercato
- Metodi di account e trading
- Esempio di codice
- Configurazione e note
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à.
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.
