CryptoHopper to zautomatyzowany bot do handlu kryptowalutami, który umożliwia automatyzację handlu i zarządzania portfelem dla Bitcoin, Ethereum, Litecoin i innych.
Wymagane jest Konto dewelopera; po jego zatwierdzeniu można przystąpić do tworzenia nowej aplikacji. API używa OAuth2 do uwierzytelniania, więc można pobrać client_id i client_secret z aplikacji.
oCryptoHopper := TsgcHTTP_Cryptohopper.Create(nil);
oCryptoHopper.CryptoHopperOptions.OAuth2.ClientId := 'client_id';
oCryptoHopper.CryptoHopperOptions.OAuth2.ClientSecret := 'client_secret';
oCryptoHopper.CryptoHopperOptions.OAuth2.LocalIP := '127.0.0.1';
oCryptoHopper.CryptoHopperOptions.OAuth2.LocalPort := 8080;
oCryptoHopper.CryptoHopperOptions.OAuth2.Scope.Text := "read,notifications,manage,trade";
CryptoHopper używa HTTPS jako protokołu do wysyłania żądań do API. Niektóre metody wymagają uwierzytelnienia (składanie zleceń, pobieranie danych użytkownika...), a inne są publiczne (np. pobieranie danych giełdy).
Funkcje zwracają odpowiedź CryptoHopper, a w przypadku wystąpienia błędu zostaje zgłoszony wyjątek.
Hoppers
Zarządzanie podstawowymi operacjami bunkra.
| Metoda | Argumenty | Opis |
| GetHoppers | Pobierz Hoppery użytkowników. | |
| CreateHopper | aBody: tekst JSON konfiguracji. | Tworzy nowy Hopper. |
| GetHopper | aId: identyfikator hoppera | Retrieve Hopper |
| DeleteHopper | aId: identyfikator hoppera | Usuń Hopper |
| UpdateHopper | aId: identyfikator hoppera aBody: tekst JSON konfiguracji. | Aktualizuj Hopper |
Zamówienia
Zarządzaj zleceniami swojego Hoppera.
| Metoda | Argumenty | Opis |
| GetOpenOrders | aId: identyfikator hoppera | Pobierz wszystkie otwarte zlecenia hopera. |
| CreateNewOrder | aId: identyfikator zasobnika aOrder: instancja TsgcHTTPCTHOrder | Utwórz nowe zlecenie kupna lub sprzedaży. W przypadku sprzedaży zaleca się użycie dedykowanego punktu końcowego sprzedaży. |
| PlaceMarketOrder | aId: identyfikator hoppera aOrderSide: cthosBuy lub cthosSell. aCoin: nazwa monety, przykład: EOS aAmount: wielkość zlecenia. | Złóż zlecenie rynkowe. |
| PlaceLimitOrder | aId: identyfikator hoppera aOrderSide: cthosBuy lub cthosSell. aCoin: nazwa monety, przykład: EOS aAmount: wielkość zlecenia. aPrice: cena limit. |
Złóż zlecenie z limitem ceny |
| DeleteOrder | aId: identyfikator hoppera aOrderId: identyfikator zlecenia | Usuwa zlecenie dla wybranego hoppera. |
| DeleteAllOrders | aId: identyfikator hoppera | Usuwa wszystkie otwarte zlecenia dla wybranego hoppera. |
| GetOpenOrder | aId: identyfikator hoppera aOrderId: identyfikator zlecenia | Pobiera otwarte zlecenie w hopper według identyfikatora. |
| CancelOrder | aId: identyfikator hoppera aOrderId: identyfikator zlecenia | Anuluj otwarte zlecenie. |
Pozycja
Zarządzaj pozycjami Hopper.
| Metoda | Argumenty | Opis |
| GetPosition | aId: identyfikator hoppera | Pobierz otwarte pozycje hoppera. |
Transakcja
Historia transakcji z Twojego hopera.
| Metoda | Argumenty | Opis |
| GetTradeHistory | Pobierz historię transakcji bota. | |
| GetTradeHistoryById | aId: identyfikator hoppera aTradeId: identyfikator transakcji | Pobierz transakcję według identyfikatora hoppera. |
Giełda
Pobieranie informacji o dostępnych giełdach w CryptoHopper
| Metoda | Argumenty | Opis |
| GetExchange | Pobierz wszystkie dostępne giełdy na platformie Cryptohopper. | |
| GetAllTickers | aExchange: nazwa wymiany | Pobierz kurs dla wszystkich par |
| GetMarketTicker | aExchange: nazwa giełdy aPair: nazwa pary | Pobiera ticker dla pary handlowej. |
| GetOrderBook | aExchange: nazwa giełdy aPair: nazwa pary aDepth: głębokość arkusza zleceń |
Pobiera księgę zleceń dla wybranej giełdy, rynku i głębokości księgi zleceń. |
Webhooki
Historia transakcji z Twojego hopera.
| Metoda | Argumenty | Opis |
| CreateWebhook | aURL: adres URL webhooka aMessageTypes: typy wiadomości oddzielone przecinkami. | Aktualizowanie lub tworzenie webhooka |
| DeleteWebhook | aURL: adres URL webhooka | Usuwa istniejący Webhook. |
Sygnały
Wysyłanie sygnałów do API CryptoHopper.
| Metoda | Argumenty | Opis |
| SendSignal | aSignal: klasa zawierająca wszystkie pola wymagane do wysłania sygnału. | Wysyła sygnał |
| SendTestSignal | aSignal: klasa zawierająca wszystkie pola wymagane do wysłania sygnału. | Wysyła sygnał testowy |
| GetSignalStats | aSignalId: identyfikator sygnału. aExchange: opcjonalnie, nazwa giełdy. | Pobiera część statystyk sygnałowych. |
Użyj metody UpdateHopper, aby zaktualizować konfigurację Hopper. Metoda jest przeciążona, więc można przekazać ciąg JSON lub użyć obiektu TsgcHTTPCTHopper i skorzystać z właściwości, aby włączyć lub wyłączyć właściwości Hopper.
function EnableHopper: string;
var
oHopper: TsgcHTTPCTHopper;
begin
oHopper := TsgcHTTPCTHopper.Create;
Try
if Cryptohopper.GetHopper('1234', oHopper) then
begin
oHopper.Enabled := 1;
result := Cryptohopper.UpdateHopper('1234', oHopper);
end;
Finally
FreeAndNil(oHopper);
End;
end;
Webhook umożliwia otrzymywanie powiadomień o zdarzeniach w hopperze. Webhooki wymagają publicznego serwera HTTPS nasłuchującego pod określonym adresem URL na wiadomości wysyłane przez Cryptohopper. Serwer publiczny musi być chroniony certyfikatem SSL (certyfikaty z własnym podpisem nie są dozwolone).
Najpierw należy utworzyć webhook: skonfigurować właściwość Webhook klienta Cryptohopper, ustawiając Host i Port, na którym serwer będzie nasłuchiwał, a następnie skonfigurować certyfikat we właściwości SSLOptions.
Przykład: Publiczny adres IP będzie wynosił 1.1.1.1, a port nasłuchiwania 443. Certyfikat jest przechowywany jako plik PEM o nazwie sgc.pem bez hasła.
/* OAuth2 */
cryptohopper.CryptohopperOptions.OAuth2.ClientId = 'client_id';
cryptohopper.CryptohopperOptions.OAuth2.ClientSecret := 'client_secret';
cryptohopper.CryptohopperOptions.OAuth2.LocalIP := '127.0.0.1';
cryptohopper.CryptohopperOptions.OAuth2.LocalPort := 8080;
/* Webhook */
cryptohopper.CryptohopperOptions.Webhook.Enabled := True;
cryptohopper.CryptohopperOptions.Webhook.Host := '1.1.1.1';
cryptohopper.CryptohopperOptions.Webhook.Port := 443;
cryptohopper.CryptohopperOptions.Webhook.ValidationCode := '1234';
cryptohopper.CryptohopperOptions.Webhook.SSLOptions.CertFile := 'sgc.pem';
cryptohopper.CryptohopperOptions.Webhook.SSLOptions.KeyFile := 'sgc.pem';
cryptohopper.CryptohopperOptions.Webhook.SSLOptions.RootCertFile := 'sgc.pem';
cryptohopper.CryptohopperOptions.Webhook.SSLOptions.Password := '';
cryptohopper.StartWebhook;