Bitmex to giełda kryptowalut i platforma handlu instrumentami pochodnymi.
Obsługiwane są następujące API:
API Bitmex ma 2 typy metod: publiczne i prywatne. Do metod publicznych można uzyskać dostęp bez uwierzytelniania, na przykład: pobieranie cen tickerów. Niektóre są prywatne i dotyczą danych użytkownika; te metody wymagają użycia kluczy API Bitmex.
REST API
Subskrybuj / Anuluj subskrypcję
BitMEX umożliwia subskrybowanie danych w czasie rzeczywistym. Dostęp ten nie jest ograniczony szybkością po nawiązaniu połączenia i jest najlepszym sposobem na dostarczanie aktualnych danych do programów. W niektórych tematach można przekazać symbol, aby filtrować zdarzenia według symbolu, na przykład: trades, quotes...
Następujące tematy subskrypcji są dostępne bez uwierzytelniania:
btmAnnouncement: Ogłoszenia serwisu
btmChat: czat Trollbox
btmConnected: Statystyki połączonych użytkowników/botów
btmFunding: Aktualizacje stóp finansowania swapów. Wysyłane co każdy interwał finansowania (zazwyczaj co 8 godzin)
btmInstrument: Aktualizacje instrumentu, w tym obrót oraz ceny bid/ask
btmInsurance: Dzienne aktualizacje funduszu ubezpieczeniowego
btmLiquidation: Zlecenia likwidacyjne w momencie wprowadzenia do księgi zleceń
btmOrderBookL2_25: 25 najwyższych poziomów księgi zleceń poziomu 2
btmOrderBookL2: pełna księga zleceń poziomu 2
btmOrderBook10: 10 najlepszych poziomów przy użyciu tradycyjnego pełnego przesyłania książki zleceń
btmPublicNotifications: Powiadomienia systemowe (używane dla krótkotrwałych wiadomości)
btmQuote: Najwyższy poziom arkusza zleceń
btmQuoteBin1m: 1-minutowe koszyki kwotowań
btmQuoteBin5m: 5-minutowe pojemniki na wyceny
btmQuoteBin1h: godzinowe pojemniki kwotowania
btmQuoteBin1d: Przedziały kwotowań 1-dniowych
btmSettlement: Rozliczenia
btmTrade: transakcje na żywo
btmTradeBin1m: minutowe koszyki transakcji
btmTradeBin5m: 5-minutowe koszyki transakcji
btmTradeBin1h: koszyki transakcji godzinnych
btmTradeBin1d: jednodniowe przedziały transakcji
Następujące tematy wymagają uwierzytelnienia:
btmAffiliate: Status partnera, np. łączna liczba poleconych użytkowników i procent prowizji.
btmExecution: poszczególne realizacje; może być ich wiele na jedno zlecenie
btmOrder: Aktualizacje na żywo dotyczące zleceń
btmMargin: Aktualizacje dotyczące bieżącego salda konta i wymagań dotyczących depozytu zabezpieczającego
btmPosition: Aktualizacje dotyczące pozycji
btmPrivateNotifications: Powiadomienia indywidualne — aktualnie nieużywane
btmTransact: aktualizacje wpłat/wypłat
btmWallet: Dane salda adresu Bitcoin, w tym łączne wpłaty i wypłaty
Przykład odebranych wiadomości:
{
"table":"orderBookL2_25",
"keys":["symbol","id","side"],
"types":{"id":"long","price":"float","side":"symbol","size":"long","symbol":"symbol"}
"foreignKeys":{"side":"side","symbol":"instrument"},
"attributes":{"id":"sorted","symbol":"grouped"},
"action":"partial",
"data":[
{"symbol":"XBTUSD","id":17999992000,"side":"Sell","size":100,"price":80},
{"symbol":"XBTUSD","id":17999993000,"side":"Sell","size":20,"price":70},
{"symbol":"XBTUSD","id":17999994000,"side":"Sell","size":10,"price":60},
{"symbol":"XBTUSD","id":17999995000,"side":"Buy","size":10,"price":50},
{"symbol":"XBTUSD","id":17999996000,"side":"Buy","size":20,"price":40},
{"symbol":"XBTUSD","id":17999997000,"side":"Buy","size":100,"price":30}
]
}
{
"table":"orderBookL2_25",
"action":"update",
"data":[
{"symbol":"XBTUSD","id":17999995000,"side":"Buy","size":5}
]
}
{
"table":"orderBookL2_25",
"action":"delete",
"data":[
{"symbol":"XBTUSD","id":17999995000,"side":"Buy"}
]
}
{
"table":"orderBookL2_25",
"action":"insert",
"data":[
{"symbol":"XBTUSD","id":17999995500,"side":"Buy","size":10,"price":45},
]
}
Uwierzytelnianie
Aby subskrybować strumienie zablokowane dla użytkownika, należy najpierw przeprowadzić uwierzytelnianie. Nieprawidłowe uwierzytelnianie spowoduje zamknięcie połączenia.
Korzystanie z BitMEX API wymaga klucza API.
Trwałe klucze API mogą być blokowane do zakresów adresów IP i odwoływane w dowolnym momencie bez narażania głównych danych uwierzytelniających. Nie wymagają też odnawiania.
Aby korzystać z uwierzytelniania kluczem API, należy wygenerować klucz API na koncie.
Przed subskrybowaniem jakiegokolwiek tematu wymagającego uwierzytelnienia należy wywołać metodę Authenticate.
CancelAllAfter (Dead Man's Switch)
Metoda CancelAllAfter implementuje funkcję Dead Man's Switch. Po wywołaniu z wartością limitu czasu (w milisekundach) instruuje serwer, aby anulował wszystkie otwarte zlecenia, jeśli w ciągu tego czasu nie zostanie odebrane kolejne wywołanie CancelAllAfter. Jest to przydatne do zapewnienia anulowania zleceń w przypadku rozłączenia sieciowego.
| Metoda | Opis |
| GetExecutions | Zwraca wszystkie surowe transakcje, w tym otwieranie i anulowanie zleceń oraz zmiany statusu zleceń. |
| GetExecutionsTradeHistory | Zwraca bardziej szczegółowe transakcje. |
| GetInstruments | Zwraca wszystkie instrumenty i indeksy, w tym te, które zostały rozliczone lub są nienabyte. Należy używać tego punktu końcowego do zapytań o poszczególne instrumenty lub złożonych filtrów. |
| GetOrders | Aby pobierać tylko otwarte zlecenia |
| PlaceOrder | Składa zlecenie nieprzetworzone przy użyciu obiektu TsgcHTTPBitmexOrder. |
| PlaceMarketOrder | Złóż nowe zlecenie MARKET. |
| PlaceLimitOrder | Złóż nowe zlecenie LIMIT. |
| PlaceStopOrder | Złóż nowe zlecenie STOP. |
| PlaceStopLimitOrder | Złóż nowe zlecenie STOPLIMIT. |
| AmendOrder | Modyfikacja istniejącego zlecenia. |
| CancelOrder | Anuluje aktywne zlecenie. |
| CancelAllOrders | Anuluj wszystkie aktywne zlecenia. |
| CancelAllOrdersAfter | Anuluj wszystkie zlecenia po pewnym czasie. |
| ClosePosition | Zamknij otwartą pozycję. |
| GetOrderBook | Pobierz bieżącą księgę zleceń w formacie pionowym |
| GetPosition | Pobierz swoje pozycje. |
| SetPositionIsolate | Włącz izolowany margin lub cross-margin dla każdej pozycji. |
| SetPositionLeverage | Wybierz dźwignię finansową per pozycja. |
| SetPositionRiskLimit | Zaktualizuj swój limit ryzyka. |
| SetPositionTransferMargin | Przenieś kapitał własny do lub z pozycji. |
| GetQuotes | Pobieranie kursów |
| GetTrades | Pobierz transakcje |
| GetFunding | Pobierz dane dotyczące finansowania. |
| GetInsurance | Pobierz dane funduszu ubezpieczeniowego. |
| GetTradeBucketed | Pobierz dane transakcji z przedziałami czasowymi (OHLCV) z konfigurowalnymi rozmiarami przedziałów. |
| GetQuoteBucketed | Pobierz podzielone na kubełki dane notowań z konfigurowalnymi rozmiarami przedziałów. |
| GetSettlement | Pobieranie danych rozliczeniowych. |
| GetLiquidation | Pobierz zlecenia likwidacyjne. |
| GetInstrumentIndices | Pobierz indeksy instrumentów. |
| GetInstrumentCompositeIndex | Pobierz dane złożonego indeksu dla instrumentów. |
| GetStats | Pobieranie statystyk dla całej giełdy. |
| GetStatsHistory | Pobierz historyczne statystyki giełdy. |
| GetStatsHistoryUSD | Pobierz historyczne statystyki kursów wymiany USD. |
| GetUserMargin | Pobierz dane dotyczące depozytu zabezpieczającego konta. |
| GetUserWallet | Pobierz informacje o swoim portfelu. |
| GetUserWalletHistory | Pobierz historię transakcji portfela. |
| GetUserWalletSummary | Pobierz podsumowanie swojego portfela. |