CryptoHopper

CryptoHopper

 

CryptoHopper è un bot di trading automatizzato di criptovalute che consente di automatizzare il trading e la gestione del portafoglio per Bitcoin, Ethereum, Litecoin e altro.

 

 

Configurazione

Richiede un Account sviluppatore e una volta approvato è possibile iniziare a creare una nuova App. L'API utilizza OAuth2 per l'autenticazione, quindi è possibile recuperare client_id e client_secret dalla propria App.

 


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";

Metodi

CryptoHopper utilizza HTTPs come protocollo per inviare richieste all'API. Alcuni metodi richiedono autenticazione (effettuare ordini, recuperare dati utente...) mentre altri sono pubblici (ad esempio ottenere dati di exchange).

 

Le funzioni restituiscono la risposta di CryptoHopper e, in caso di errore, verrà sollevata un'eccezione.

 

Hoppers

 

Gestire le operazioni di base dell'Hopper.

 

Method Argomenti Description
GetHoppers   Ottieni i Hopper degli utenti.
CreateHopper aBody: testo JSON di configurazione. Crea un nuovo Hopper.
GetHopper aId: id dell'hopper Recupera Hopper
DeleteHopper aId: id dell'hopper Elimina Hopper
UpdateHopper aId: id dell'hopper aBody: testo json della configurazione. Aggiorna Hopper

 

 

Ordini

 

Gestisce gli ordini del proprio Hopper.

 

Method Argomenti Description
GetOpenOrders aId: id dell'hopper Recupera tutti gli ordini aperti dell'hopper.
CreateNewOrder aId: id dell'hopper aOrder: istanza di TsgcHTTPCTHOrder Crea un nuovo ordine di acquisto o vendita. Per la vendita, preferire l'endpoint sell.
PlaceMarketOrder aId: id dell'hopper aOrderSide: cthosBuy o cthosSell. aCoin: nome della moneta, esempio: EOS aAmount: dimensione dell'ordine. Inserisce un ordine di mercato.
PlaceLimitOrder aId: id dell'hopper aOrderSide: cthosBuy o cthosSell. aCoin: nome della moneta, esempio: EOS aAmount: dimensione dell'ordine.

aPrice: prezzo limite.

Inserisci un Ordine Limite
DeleteOrder aId: id dell'hopper aOrderId: id dell'ordine Elimina l'ordine per l'hopper selezionato.
DeleteAllOrders aId: id dell'hopper Elimina tutti gli ordini aperti per l'hopper selezionato.
GetOpenOrder aId: id dell'hopper aOrderId: id dell'ordine Ottieni ordine aperto nell'hopper tramite ID.
CancelOrder aId: id dell'hopper aOrderId: id dell'ordine Annulla un ordine aperto.

 

 

Position

 

Gestire le posizioni del proprio Hopper.

 

Method Argomenti Description
GetPosition aId: id dell'hopper Ottieni le posizioni aperte dell'hopper.

 

 

Trade

 

Cronologia dei trade dal proprio Hopper.

 

Method Argomenti Description
GetTradeHistory   Recupera la cronologia delle operazioni dell'hopper.
GetTradeHistoryById aId: id dell'hopper aTradeId: id dell'operazione Recupera un trade tramite l'id dell'hopper.

 

 

Exchange

 

Recupera informazioni dagli exchange disponibili su CryptoHopper

 

Method Argomenti Description
GetExchange   Ottiene tutti gli exchange disponibili su Cryptohopper.
GetAllTickers aExchange: nome dell'exchange Ottiene il ticker per tutte le coppie
GetMarketTicker aExchange: nome dell'exchange aPair: nome della coppia Ottieni il ticker dalla coppia di mercato.
GetOrderBook aExchange: nome dell'exchange aPair: nome della coppia

aDepth: profondità del book degli ordini

Ottiene l'orderbook per l'exchange, il mercato e la profondità dell'orderbook selezionati.

 

 

Webhook

 

Cronologia dei trade dal proprio Hopper.

 

Method Argomenti Description
CreateWebhook aURL: url del webhook aMessageTypes: tipi di messaggio separati da virgola. Aggiorna o crea un Webhook
DeleteWebhook aURL: url del webhook Elimina un Webhook esistente.

 

 

Segnali

 

Inviare segnali all'API CryptoHopper.

 

Method Argomenti Description
SendSignal aSignal: è la classe con tutti i campi necessari per inviare un segnale. Invia un Segnale
SendTestSignal aSignal: è la classe con tutti i campi necessari per inviare un segnale. Invia un Segnale di Test
GetSignalStats aSignalId: id del segnale. aExchange: opzionale, nome dell'exchange. Recupera alcune statistiche del segnale.

 

Come aggiornare la configurazione di Cryptohopper

Utilizzare il metodo UpdateHopper per aggiornare la configurazione dell'Hopper. Il metodo è sovraccaricato, quindi è possibile passare la stringa JSON o utilizzare l'oggetto TsgcHTTPCTHopper e usare le proprietà per abilitare o disabilitare le proprietà dell'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;

Come Configurare il Webhook

Il webhook consente di ricevere notifiche quando accade qualcosa in un hopper. I webhook richiedono un server HTTPs pubblico che ascolti su un indirizzo URL tutti i messaggi inviati da cryptohopper. Il server pubblico deve essere protetto con un certificato SSL (i certificati autofirmati non sono consentiti).

 

È necessario innanzitutto creare un webhook: configurare la proprietà Webhook del client Cryptohopper impostando l'Host e la Porta su cui il server sarà in ascolto. Quindi configurare il certificato nella proprietà SSLOptions.

 

Esempio: L'indirizzo IP pubblico sarà 1.1.1.1 e la porta di ascolto sarà 443. Il certificato è memorizzato come file PEM con il nome file sgc.pem e senza password.

 


/* 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;