Aktualizacja API CEX Plus w sgcWebSockets

· Funkcje
Integracja WebSocket API CEX.IO Plus w Delphi

CEX.IO Plus to zaawansowana platforma transakcyjna CEX.IO, zaprojektowana z myślą o profesjonalnych i instytucjonalnych traderach. Komponent TsgcWSAPI_CexPlus zapewnia pełny dostęp Delphi do jego WebSocket API, obejmując subskrypcje danych rynkowych, zarządzanie zleceniami, operacje na koncie i transfery środków — wszystko przez jedno trwałe połączenie.

Spis treści

Przegląd

API CEX.IO Plus znacząco rozszerza standardową ofertę CEX.IO. Zapewnia trzy poziomy funkcjonalności: publiczne subskrypcje dla strumieni danych o księdze zleceń i transakcjach w czasie rzeczywistym, zapytania o dane rynkowe dla migawek tickerów, świec i informacji giełdowych na żądanie, oraz metody konta dla pełnych operacji handlowych, w tym zarządzania zleceniami, zapytań o opłaty, historii transakcji i transferów środków. Komponent TsgcWSAPI_CexPlus enkapsuluje wszystkie te możliwości.

Pierwsze kroki

Utwórz komponent TsgcWebSocketClient i TsgcWSAPI_CexPlus, połącz je i skonfiguruj dane uwierzytelniające API. Komponent łączy się automatycznie z endpointem WebSocket 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;
Uwaga: CEX.IO Plus używa innego endpointu API i schematu uwierzytelniania niż standardowe API CEX.IO. Upewnij się, że dane uwierzytelniające API zostały wygenerowane z panelu CEX.IO Plus, nie ze standardowej platformy CEX.IO.

Publiczne metody WebSocket

Publiczne metody subskrypcji udostępniają dane w czasie rzeczywistym bez konieczności uwierzytelniania. Są idealne do monitorowania rynku i budowania aktywnych kanałów danych.

Metoda Opis
SubscribeOrderBook Subskrybuje aktualizacje księgi zleceń w czasie rzeczywistym dla pary handlowej.
UnSubscribeOrderBook Anuluje subskrypcję aktualizacji księgi zleceń dla pary handlowej.
SubscribeTrade Subskrybuje strumień transakcji na żywo dla pary handlowej.
UnSubscribeTrade Anuluje subskrypcję strumienia transakcji.
// Subscribe to BTC-USD order book and trades
oCexPlus.SubscribeOrderBook('BTC-USD');
oCexPlus.SubscribeTrade('BTC-USD');
// Unsubscribe when no longer needed
oCexPlus.UnSubscribeOrderBook('BTC-USD');
oCexPlus.UnSubscribeTrade('BTC-USD');

Metody danych rynkowych

Metody danych rynkowych zwracają migawki danych giełdowych na żądanie. W odróżnieniu od subskrypcji są to wywołania żądanie-odpowiedź zwracające pojedynczy wynik.

Metoda Opis
GetTicker Pobiera bieżący ticker (bid, ask, ostatnia cena) dla pary.
GetOrderBook Pobiera bieżącą migawkę księgi zleceń dla pary.
GetCandles Pobiera dane OHLCV (świece) do wykresów.
GetTradeHistory Pobiera ostatnią publiczną historię transakcji dla pary.
GetServerTime Pobiera bieżący znacznik czasu serwera do synchronizacji.
GetPairsInfo Pobiera informacje o wszystkich dostępnych parach handlowych.
GetCurrenciesInfo Pobiera informacje o wszystkich obsługiwanych walutach.
GetProcessingInfo Pobiera szczegóły przetwarzania wpłat i wypłat.

Zapytania o dane rynkowe

// Get current ticker for BTC-USD
oCexPlus.GetTicker('BTC-USD');
// Get order book snapshot
oCexPlus.GetOrderBook('BTC-USD');
// Get candle data for charting
oCexPlus.GetCandles('BTC-USD');
// Get available trading pairs
oCexPlus.GetPairsInfo;

Metody konta i handlu

Metody konta wymagają uwierzytelniania i zapewniają pełne możliwości handlowe, w tym składanie zleceń, sprawdzanie statusu konta, zarządzanie opłatami i transfery środków.

Zarządzanie kontem

Metoda Opis
Ping Wysyła ping podtrzymujący połączenie.
CreateAccount Tworzy nowe podkonto na platformie.
GetAccountStatus Pobiera bieżący status i szczegóły konta.
GetCurrentFee Pobiera bieżącą stawkę opłaty handlowej dla konta.
GetFeeStrategy Pobiera strategię opłat i informacje o poziomach prowizji.
GetVolume Pobiera wolumen handlu do obliczania poziomu opłat.

Zarządzanie zleceniami

Metoda Opis
GetOrders Pobiera wszystkie otwarte zlecenia na koncie.
NewOrder Składa nowe zlecenie z pełną kontrolą parametrów.
NewMarketOrder Składa zlecenie rynkowe realizowane po najlepszej bieżącej cenie.
NewLimitOrder Składa zlecenie z limitem po podanej cenie.
CancelOrder Anuluje wskazane otwarte zlecenie po jego identyfikatorze.
CancelAllOrders Anuluje jednocześnie wszystkie otwarte zlecenia.

Historia i środki

Metoda Opis
GetTransactionHistory Pobiera historię transakcji konta.
GetFundingHistory Pobiera historię wpłat i wypłat.
InternalTransfer Przenosi środki między podkontami wewnętrznie.
GetDepositAddress Generuje lub pobiera adres depozytu dla waluty.
FundsDepositFromWallet Wpłaca środki z zewnętrznego portfela na konto handlowe.
FundsWithdrawalToWallet Wypłaca środki z konta handlowego do zewnętrznego portfela.

Przykład kodu

Poniższy przykład demonstruje połączenie z CEX.IO Plus, sprawdzenie statusu konta, subskrypcję księgi zleceń oraz złożenie zlecenia rynkowego.

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;
// Get account status
oCexPlus.GetAccountStatus;
// Subscribe to order book
oCexPlus.SubscribeOrderBook('BTC-USD');
// Place a market order
oCexPlus.NewMarketOrder('BTC', 'USD', cxpsBuy);

Składanie różnych typów zleceń

CEX.IO Plus obsługuje wiele typów zleceń. Użyj NewMarketOrder do natychmiastowej realizacji po najlepszej dostępnej cenie, NewLimitOrder dla zleceń z określoną ceną lub NewOrder dla pełnej kontroli parametrów.

// Market order: buy BTC with USD at market price
oCexPlus.NewMarketOrder('BTC', 'USD', cxpsBuy);
// Limit order: buy BTC at a specific price
oCexPlus.NewLimitOrder('BTC', 'USD', cxpsBuy, 0.01, 30000);
// Cancel a specific order
oCexPlus.CancelOrder('order-id-here');
// Cancel all open orders
oCexPlus.CancelAllOrders;

Transfery środków

Komponent obsługuje wewnętrzne transfery środków między podkontami, a także operacje wpłat i wypłat.

// Get deposit address for BTC
oCexPlus.GetDepositAddress('BTC');
// Retrieve funding history
oCexPlus.GetFundingHistory;
// Transfer funds between sub-accounts
oCexPlus.InternalTransfer('from-account', 'to-account', 'BTC', 0.5);

Konfiguracja i uwagi

Dane uwierzytelniające API

Wygeneruj klucz API i sekret z platformy CEX.IO Plus. Różnią się one od standardowych danych uwierzytelniających CEX.IO. Upewnij się, że klucz API ma włączone odpowiednie uprawnienia dla operacji, które zamierzasz wykonywać (np. handel, wypłata).

Konwencja nazewnictwa par

CEX.IO Plus używa formatu par z łącznikiem, np. BTC-USD, w odróżnieniu od standardowego API CEX.IO, które stosuje oddzielne parametry waluty bazowej i kwotowanej. Zawsze używaj formatu z łącznikiem przy wywołaniach metod subskrypcji i zapytań o dane rynkowe.

Enumeracja kierunku zlecenia

Metody zleceń używają wartości enumeracji cxpsBuy i cxpsSell do określenia kierunku zlecenia. Są one specyficzne dla komponentu CEX.IO Plus i różnią się od standardowej enumeracji CEX.IO.

Podtrzymanie połączenia

Używaj metody Ping w regularnych odstępach czasu, aby utrzymać aktywną sesję uwierzytelnioną. Zapobiega to zamknięciu połączenia przez serwer z powodu braku aktywności.

Wskazówka: Używaj GetPairsInfo i GetCurrenciesInfo przy uruchamianiu, aby dynamicznie wykrywać dostępne pary handlowe i obsługiwane waluty, zamiast na stałe kodować je w aplikacji.

Obsługa błędów

Wszystkie odpowiedzi z CEX.IO Plus zawierają pole status. Obsługuj odpowiedzi błędów w zdarzeniu message komponentu, sprawdzając status odpowiedzi i szczegóły błędu. Typowe błędy to niewystarczające saldo, nieprawidłowe nazwy par i niepowodzenia uwierzytelniania.