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
- Pierwsze kroki
- Publiczne metody WebSocket
- Metody danych rynkowych
- Metody konta i handlu
- Przykład kodu
- Konfiguracja i uwagi
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.
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.
