O CryptoHopper é um bot de negociação de cripto automatizado que permite que você automatize a negociação e o gerenciamento de portfólio de Bitcoin, Ethereum, Litecoin e mais.
Requer uma Developer Account e, depois de aprovado, você pode começar a criar um novo App. A API utiliza OAuth2 para autenticar, então você pode obter o client_id e o client_secret do seu 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";
CryptoHopper utiliza HTTPs como protocolo para enviar Requests à API. Alguns métodos exigem autenticação (colocar ordens, recuperar dados do usuário...) e outros são públicos (obter dados da exchange, por exemplo).
As funções retornam a resposta do CryptoHopper e, se houver algum erro, uma exceção será gerada.
Hoppers
Gerencia Operações Básicas de Hopper.
| Method | Arguments | Descrição |
| GetHoppers | Obtém os Hoppers dos usuários. | |
| CreateHopper | aBody: texto json de configuração. | Cria um novo Hopper. |
| GetHopper | aId: id do hopper | Retrieve Hopper |
| DeleteHopper | aId: id do hopper | Delete Hopper |
| UpdateHopper | aId: id do hopper aBody: texto json de configuração. | Atualizar Hopper |
Orders
Gerencie as Orders do seu Hopper.
| Method | Arguments | Descrição |
| GetOpenOrders | aId: id do hopper | Recuperar todas as ordens abertas do hopper. |
| CreateNewOrder | aId: id do hopper aOrder: instância de TsgcHTTPCTHOrder | Cria uma nova ordem de compra ou venda. Para venda, utilize preferencialmente o endpoint sell. |
| PlaceMarketOrder | aId: id do hopper aOrderSide: cthosBuy ou cthosSell. aCoin: nome da moeda, exemplo: EOS aAmount: tamanho da ordem. | Coloca uma ordem a mercado. |
| PlaceLimitOrder | aId: id do hopper aOrderSide: cthosBuy ou cthosSell. aCoin: nome da moeda, exemplo: EOS aAmount: tamanho da ordem. aPrice: preço limite. |
Coloca uma Limit Order |
| DeleteOrder | aId: hopper id aOrderId: order id | Exclui a ordem do hopper selecionado. |
| DeleteAllOrders | aId: id do hopper | Exclui todas as ordens abertas do hopper selecionado. |
| GetOpenOrder | aId: hopper id aOrderId: order id | Obtém a ordem aberta no hopper por id. |
| CancelOrder | aId: hopper id aOrderId: order id | Cancela uma ordem aberta. |
Position
Gerencie as Posições do seu Hopper.
| Method | Arguments | Descrição |
| GetPosition | aId: id do hopper | Obtém as posições abertas do hopper. |
Trade
Histórico de Negociações do seu Hopper.
| Method | Arguments | Descrição |
| GetTradeHistory | Obtém o histórico de negociações do hopper. | |
| GetTradeHistoryById | aId: id do hopper aTradeId: id da negociação | Obter uma negociação pelo id do hopper. |
Exchange
Obter informações dos exchanges disponíveis no CryptoHopper
| Method | Arguments | Descrição |
| GetExchange | Obter todos os exchanges disponíveis no Cryptohopper. | |
| GetAllTickers | aExchange: nome do exchange | Obter o ticker de todos os pares |
| GetMarketTicker | aExchange: nome do exchange aPair: nome do par | Obtém o ticker de um par de mercado. |
| GetOrderBook | aExchange: nome do exchange aPair: nome do par aDepth: profundidade do livro de ordens |
Obtém o orderbook para a exchange, o mercado e a profundidade de orderbook selecionados. |
Webhooks
Histórico de Negociações do seu Hopper.
| Method | Arguments | Descrição |
| CreateWebhook | aURL: url do webhook aMessageTypes: tipos de mensagem separados por vírgula. | Atualiza ou cria um Webhook |
| DeleteWebhook | aURL: webhook url | Exclui um Webhook existente. |
Signals
Send Signals to CryptoHopper API.
| Method | Arguments | Descrição |
| SendSignal | aSignal: é a classe com todos os campos necessários para enviar um sinal. | Envia um Signal |
| SendTestSignal | aSignal: é a classe com todos os campos necessários para enviar um sinal. | Envia um Sinal de Teste |
| GetSignalStats | aSignalId: id do sinal. aExchange: opcional, nome do exchange. | Recupera algumas das estatísticas de sinal. |
Utilize o método UpdateHopper para atualizar a Configuração do Hopper. O método é sobrecarregado para que você possa passar a string JSON ou utilizar o objeto TsgcHTTPCTHopper e usar as propriedades para habilitar ou desabilitar as Propriedades do 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;
O Webhook permite que você receba notificações quando algo acontece em um hopper. Os Webhooks exigem um Servidor HTTPs público que escutará em um endereço de URL todas as mensagens enviadas pelo cryptohopper. O servidor público precisa estar protegido com um certificado SSL (certificados autoassinados não são permitidos).
Primeiro você deve criar um webhook, portanto configure a propriedade Webhook do cliente Cryptohopper definindo o Host e a Port em que o servidor estará escutando. Em seguida, configure o certificado na propriedade SSLOptions.
Exemplo: O endereço IP público será 1.1.1.1 e a porta de escuta será 443. O certificado é armazenado como arquivo PEM com o nome sgc.pem e sem senha.
/* 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;