CryptoHopper 是一款自动化加密货币交易机器人,可自动化交易和管理比特币、以太坊、莱特币等数字资产的投资组合。
需要开发者账号,获批后即可开始创建新应用。该 API 使用 OAuth2 进行身份验证,您可以从应用中获取 client_id 和 client_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:可选,交易所名称。 | 获取部分信号统计数据。 |
使用 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 允许您在 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;