CryptoHopper

CryptoHopper

 

CryptoHopper 是一款自动化加密货币交易机器人,可自动化交易和管理比特币、以太坊、莱特币等数字资产的投资组合。

 

 

配置

需要开发者账号,获批后即可开始创建新应用。该 API 使用 OAuth2 进行身份验证,您可以从应用中获取 client_idclient_secret

 


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 使用 HTTPS 作为协议向 API 发送请求。某些方法需要身份验证(下订单、获取用户数据等),而其他方法则是公开的(例如获取交易所数据)。

 

函数返回 CryptoHopper 的响应,如果发生任何错误,将引发异常。

 

Hoppers

 

管理基本 Hopper 操作。

 

方法 参数 描述
GetHoppers   获取用户的 Hopper 列表。
CreateHopper aBody:配置 JSON 文本。 创建新的 Hopper。
GetHopper aId: hopper id 检索料斗
DeleteHopper aId: hopper id 删除 Hopper
UpdateHopper aId: hopper ID aBody:配置 JSON 文本。 更新 Hopper

 

 

订单

 

管理您 Hopper 的订单。

 

方法 参数 描述
GetOpenOrders aId: hopper id 检索 hopper 的所有未结订单。
CreateNewOrder aId:hopper id aOrder:TsgcHTTPCTHOrder 的实例 创建新的买入或卖出订单。对于卖出,建议使用 sell 端点。
PlaceMarketOrder aId: hopper id aOrderSide: cthosBuy 或 cthosSell。 aCoin: 币种名称,例如:EOS aAmount: 订单大小。 下达市价订单。
PlaceLimitOrder aId: hopper id aOrderSide: cthosBuy 或 cthosSell。 aCoin: 币种名称,例如:EOS aAmount: 订单大小。

aPrice:限价价格。

下限价单
DeleteOrder aId: hopper id aOrderId: 订单 ID 删除所选料斗的订单。
DeleteAllOrders aId: hopper id 删除所选 hopper 的所有未完成订单。
GetOpenOrder aId: hopper id aOrderId: 订单 ID 按 ID 获取 hopper 中的未结订单。
CancelOrder aId: hopper id aOrderId: 订单 ID 取消一个未成交的订单。

 

 

仓位

 

管理您的 Hopper 持仓。

 

方法 参数 描述
GetPosition aId: hopper id 获取 hopper 的持仓。

 

 

交易

 

来自您的 Hopper 的交易历史记录。

 

方法 参数 描述
GetTradeHistory   获取 Hopper 的交易历史。
GetTradeHistoryById aId: hopper ID aTradeId: 交易 ID 根据 hopper ID 获取一笔交易。

 

 

交换机

 

从 CryptoHopper 获取可用交易所信息

 

方法 参数 描述
GetExchange   获取 Cryptohopper 上所有可用的交易所。
GetAllTickers aExchange: 交易所名称 获取所有交易对的行情
GetMarketTicker aExchange:交易所名称 aPair:交易对名称 获取市场交易对的行情。
GetOrderBook aExchange:交易所名称 aPair:交易对名称

aDepth:订单簿深度

获取指定交易所、市场及订单簿深度的订单簿信息。

 

 

Webhooks

 

来自您的 Hopper 的交易历史记录。

 

方法 参数 描述
CreateWebhook aURL:Webhook URL aMessageTypes:以逗号分隔的消息类型。 更新或创建 Webhook
DeleteWebhook aURL: webhook URL 删除现有的 Webhook。

 

 

信号

 

向 CryptoHopper API 发送信号。

 

方法 参数 描述
SendSignal aSignal:包含发送信号所需所有字段的类。 发送信号
SendTestSignal aSignal:包含发送信号所需所有字段的类。 发送测试信号
GetSignalStats aSignalId:信号 ID。 aExchange:可选,交易所名称。 获取部分信号统计数据。

 

如何更新 Cryptohopper 配置

使用 UpdateHopper 方法更新 Hopper 配置。该方法已重载,您可以传入 JSON 字符串,也可以使用 TsgcHTTPCTHopper 对象并通过属性启用或禁用 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

Webhook 允许您在 hopper 中发生某些事情时接收通知。Webhook 需要一个公共 HTTPs 服务器,用于监听 cryptohopper 发送的所有消息的 URL 地址。公共服务器需要受 SSL 证书保护(不允许使用自签名证书)。

 

首先,您必须创建一个 webhook,因此请配置 Cryptohopper 客户端的 Webhook 属性,设置服务器侦听的 Host 和 Port,然后在 SSLOptions 属性中配置证书。

 

示例:公共 IP 地址为 1.1.1.1,监听端口为 443。证书以 PEM 文件存储,文件名为 sgc.pem,无密码。

 


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