CryptoHopper es un bot de trading de criptomonedas automatizado que permite automatizar el trading y la gestión de carteras de Bitcoin, Ethereum, Litecoin y más.
Requiere una Cuenta de Desarrollador y, una vez aprobada, puede comenzar a crear una nueva aplicación. La API utiliza OAuth2 para autenticarse, por lo que puede obtener el client_id y el client_secret desde su aplicación.
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 utiliza HTTPs como protocolo para enviar solicitudes a la API. Algunos métodos requieren autenticación (colocar órdenes, recuperar datos de usuario...) y otros son públicos (obtener datos de intercambio, por ejemplo).
Las funciones devuelven la respuesta de CryptoHopper y, si se produce algún error, se generará una excepción.
Hoppers
Gestionar las operaciones básicas del Hopper.
| Método | Argumentos | Descripción |
| GetHoppers | Obtener los Hoppers de los usuarios. | |
| CreateHopper | aBody: texto JSON de configuración. | Crea un nuevo Hopper. |
| GetHopper | aId: id del hopper | Recuperar Hopper |
| DeleteHopper | aId: id del hopper | Eliminar Hopper |
| UpdateHopper | aId: id del hopper aBody: texto JSON de configuración. | Actualizar Hopper |
Órdenes
Gestione los Pedidos de su Hopper.
| Método | Argumentos | Descripción |
| GetOpenOrders | aId: id del hopper | Recupera todas las órdenes abiertas del hopper. |
| CreateNewOrder | aId: id del hopper aOrder: instancia de TsgcHTTPCTHOrder | Crea una nueva orden de compra o venta. Para ventas, utilice preferiblemente el endpoint de venta. |
| PlaceMarketOrder | aId: id del hopper aOrderSide: cthosBuy o cthosSell. aCoin: nombre de la moneda, ejemplo: EOS aAmount: tamaño de la orden. | Colocar una Orden de Mercado. |
| PlaceLimitOrder | aId: id del hopper aOrderSide: cthosBuy o cthosSell. aCoin: nombre de la moneda, ejemplo: EOS aAmount: tamaño de la orden. aPrice: precio límite. |
Colocar una orden limitada |
| DeleteOrder | aId: id del hopper aOrderId: id del pedido | Elimina la orden del hopper seleccionado. |
| DeleteAllOrders | aId: id del hopper | Elimina todas las órdenes abiertas del hopper seleccionado. |
| GetOpenOrder | aId: id del hopper aOrderId: id del pedido | Obtener orden abierta en la cola por id. |
| CancelOrder | aId: id del hopper aOrderId: id del pedido | Cancelar una orden abierta. |
Posición
Gestione las posiciones de su Hopper.
| Método | Argumentos | Descripción |
| GetPosition | aId: id del hopper | Obtiene las posiciones abiertas del hopper. |
Trade
Historial de operaciones de su Hopper.
| Método | Argumentos | Descripción |
| GetTradeHistory | Obtiene el historial de operaciones del hopper. | |
| GetTradeHistoryById | aId: id del hopper aTradeId: id de la operación | Obtiene una operación por id del hopper. |
Exchange
Obtener información de los exchanges disponibles en CryptoHopper
| Método | Argumentos | Descripción |
| GetExchange | Obtener todos los exchanges disponibles en Cryptohopper. | |
| GetAllTickers | aExchange: nombre del exchange | Obtiene el ticker para todos los pares |
| GetMarketTicker | aExchange: nombre del exchange aPair: nombre del par | Obtener el ticker del par de trading. |
| GetOrderBook | aExchange: nombre del exchange aPair: nombre del par aDepth: profundidad del libro de órdenes |
Obtiene el libro de órdenes para el exchange, mercado y profundidad de libro de órdenes seleccionados. |
Webhooks
Historial de operaciones de su Hopper.
| Método | Argumentos | Descripción |
| CreateWebhook | aURL: url del webhook aMessageTypes: tipos de mensaje separados por coma. | Actualizar o crear un Webhook |
| DeleteWebhook | aURL: url del webhook | Elimina un Webhook existente. |
Señales
Enviar señales a la API de CryptoHopper.
| Método | Argumentos | Descripción |
| SendSignal | aSignal: es la clase con todos los campos necesarios para enviar una señal. | Envía una señal |
| SendTestSignal | aSignal: es la clase con todos los campos necesarios para enviar una señal. | Envía una señal de prueba |
| GetSignalStats | aSignalId: identificador de la señal. aExchange: opcional, nombre del exchange. | Recupera algunas de las estadísticas de señal. |
Utilice el método UpdateHopper para actualizar la configuración de Hopper. El método está sobrecargado para que pueda pasar la cadena JSON o utilizar el objeto TsgcHTTPCTHopper y sus propiedades para habilitar o deshabilitar las propiedades de 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 le permite recibir notificaciones cuando ocurre algo en un hopper. Los webhooks requieren un servidor HTTPs público que escuche en una URL todas las notificaciones enviadas por cryptohopper. El servidor público debe estar protegido con un certificado SSL (no se permiten certificados autofirmados).
Primero debe crear un webhook, así que configure la propiedad Webhook del cliente Cryptohopper estableciendo el Host y el Puerto donde estará escuchando el servidor. Luego configure el certificado en la propiedad SSLOptions.
Ejemplo: La dirección IP pública será 1.1.1.1 y el puerto de escucha será 443. El certificado está almacenado como archivo PEM con el nombre sgc.pem y sin contraseñ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;