Bitfinex jest jedną z największych i najbardziej zaawansowanych platform do handlu kryptowalutami na świecie. Użytkownicy mogą wymieniać Bitcoin, Ethereum, Ripple, EOS, Bitcoin Cash, Iota, NEO, Litecoin, Ethereum Classic...
Wersja Bitfinex WebSocket API to 2.0
Każda wiadomość wysyłana i odbierana przez kanał WebSocket Bitfinex jest kodowana w formacie JSON
Symbol może być parą handlową lub walutą depozytu zabezpieczającego:
Symbole par handlowych tworzone są przez dodanie przedrostka "t" przed parą (np. tBTCUSD, tETHUSD).
Symbole walut na depozycie zabezpieczającym tworzone są przez dodanie przedrostka "f" przed walutą (np. fUSD, fBTC, ...)
Po pomyślnym nawiązaniu połączenia wywoływane jest zdarzenie OnBitfinexConnect i jako parametr przekazywany jest numer wersji Bitfinex API.
Można wywołać metodę Ping, aby przetestować połączenie z serwerem.
Jeśli serwer wyśle jakiekolwiek informacje, można je obsłużyć za pomocą zdarzenia OnBitfinexInfoMessage, w którym Code i Message są parametrami zawierającymi informacje o wiadomości wysłanej przez serwer. Przykładowe kody:
20051 : Zatrzymaj/Uruchom ponownie serwer WebSocket (proszę ponownie nawiązać połączenie)
20060: Przechodzenie w tryb konserwacji. Należy wstrzymać wszelką aktywność i wznowić ją po otrzymaniu komunikatu informacyjnego 20061 (oczekiwany czas to maksymalnie 120 sekund).
20061 : Konserwacja zakończona. Można wznowić normalną aktywność. Zaleca się ponowne subskrybowanie wszystkich kanałów.
W przypadku błędu zostanie wywołane zdarzenie OnBitfinexError z informacjami o błędzie. Przykładowe kody błędów:
10000 : Nieznane zdarzenie
10001 : Nieznana para
Aby zmienić konfigurację, należy wywołać metodę Configuration i przekazać jako parametr jedną z następujących flag:
CS_DEC_S = 8; // Włącz wszystkie liczby dziesiętne jako ciągi znaków.
CS_TIME_S = 32; // Włącz wszystkie czasy jako ciągi dat.
CS_SEQ_ALL = 65536; // Włącz sekwencjonowanie FUNKCJA BETA
CHECKSUM = 131072; // Włącza sumę kontrolną dla każdej iteracji księgi. Sprawdza 25 najwyższych wpisów dla każdej strony księgi. Suma kontrolna jest liczbą całkowitą ze znakiem.
Istnieją kanały publiczne, dla których uwierzytelnianie wobec serwera nie jest wymagane. Wszystkie wiadomości są przekazywane przez zdarzenie OnBitfinexUpdate.
Ticker jest ogólnym przeglądem stanu rynku. Pokazuje bieżącą najlepszą ofertę kupna i sprzedaży, a także cenę ostatniej transakcji. Zawiera również informacje, takie jak dzienny wolumen obrotu i o ile zmieniła się cena w ciągu ostatniego dnia.
// Trading pairs
[
CHANNEL_ID,
[
BID,
BID_SIZE,
ASK,
ASK_SIZE,
DAILY_CHANGE,
DAILY_CHANGE_PERC,
LAST_PRICE,
VOLUME,
HIGH,
LOW
]
]
// Funding pairs
[
CHANNEL_ID,
[
FRR,
BID,
BID_PERIOD,
BID_SIZE,
ASK,
ASK_PERIOD,
ASK_SIZE,
DAILY_CHANGE,
DAILY_CHANGE_PERC,
LAST_PRICE,
VOLUME,
HIGH,
LOW
]
]
Ten kanał wysyła wiadomość o transakcji za każdym razem, gdy na Bitfinex dochodzi do zawarcia transakcji. Zawiera wszystkie istotne szczegóły transakcji, takie jak cena, rozmiar i czas.
// on trading pairs (ex. tBTCUSD)
[
CHANNEL_ID,
[
[
ID,
MTS,
AMOUNT,
PRICE
],
...
]
]
// on funding currencies (ex. fUSD)
[
CHANNEL_ID,
[
[
ID,
MTS,
AMOUNT,
RATE,
PERIOD
],
...
]
]
Kanał Order Books umożliwia śledzenie stanu arkusza zleceń Bitfinex. Dane są udostępniane w formie zagregowanej według ceny, z konfigurowalną precyzją. Po otrzymaniu odpowiedzi przesyłany jest obraz aktualnego stanu arkusza, a następnie aktualizacje przy każdej zmianie.
// on trading pairs (ex. tBTCUSD)
[
CHANNEL_ID,
[
[
PRICE,
COUNT,
AMOUNT
],
...
]
]
// on funding currencies (ex. fUSD)
[
CHANNEL_ID,
[
[
RATE,
PERIOD,
COUNT,
AMOUNT
],
...
]
]
Są to najbardziej szczegółowe arkusze zamówień.
// on trading pairs (ex. tBTCUSD)
[
CHANNEL_ID,
[
[
ORDER_ID,
PRICE,
AMOUNT
],
...
]
]
// on funding currencies (ex. fUSD)
[
CHANNEL_ID,
[
[
OFFER_ID,
PERIOD,
RATE,
AMOUNT
],
...
]
]
Zapewnia dostęp do informacji o świecach wykresu. Przedziały czasowe:
1m: jedna minuta
5m : pięć minut
15m : 15 minut
30m: 30 minut
1h: jedna godzina
3h : 3 godziny
6h : 6 godzin
12h : 12 godzin
1D: jeden dzień
7D : jeden tydzień
14D : dwa tygodnie
1M : jeden miesiąc
[
CHANNEL_ID,
[
[
MTS,
OPEN,
CLOSE,
HIGH,
LOW,
VOLUME
],
...
]
]
Ten kanał umożliwia śledzenie stanu konta. Można otrzymywać aktualizacje dotyczące pozycji, sald, zleceń i transakcji.
Należy użyć metody Authenticate, aby uwierzytelnić się względem serwera i ustawić wymagane parametry.
Po uwierzytelnieniu będą przesyłane aktualizacje dotyczące: zleceń, pozycji, transakcji, ofert finansowania, kredytów finansowania, pożyczek finansowania, portfeli, informacji o saldzie, informacji o depozycie, informacji o finansowaniu, transakcji finansowania...
Można wywołać metodę UnAuthenticate, aby wylogować się z serwera.