CryptoHopper는 Bitcoin, Ethereum, Litecoin 등에 대한 거래 및 포트폴리오 관리를 자동화할 수 있는 자동화된 암호화폐 거래 봇입니다.
개발자 계정이 필요하며, 승인을 받으면 새 App을 만들기 시작할 수 있습니다. API는 OAuth2를 사용하여 인증하므로 App에서 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는 API에 요청을 보내는 프로토콜로 HTTPs를 사용합니다. 일부 메서드는 인증이 필요하며(주문 발주, 사용자 데이터 조회 등) 일부는 공개입니다(예: 거래소 데이터 가져오기).
함수는 CryptoHopper 응답을 반환하며 오류가 있으면 예외가 발생합니다.
Hoppers
기본 Hopper 작업을 관리합니다.
| 메서드 | Arguments | 설명 |
| GetHoppers | 사용자의 Hopper를 가져옵니다. | |
| CreateHopper | aBody: 구성 json 텍스트입니다. | 새 Hopper를 생성합니다. |
| GetHopper | aId: hopper id | Retrieve Hopper |
| DeleteHopper | aId: hopper id | Delete Hopper |
| UpdateHopper | aId: hopper id aBody: 구성 json 텍스트. | Update Hopper |
Orders
Hopper의 주문을 관리합니다.
| 메서드 | Arguments | 설명 |
| 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: limit 가격. |
지정가 주문을 넣습니다 |
| DeleteOrder | aId: hopper id aOrderId: order id | 선택한 hopper의 주문을 삭제합니다. |
| DeleteAllOrders | aId: hopper id | 선택한 hopper의 모든 미체결 주문을 삭제합니다. |
| GetOpenOrder | aId: hopper id aOrderId: order id | id로 hopper의 미결제 주문을 가져옵니다. |
| CancelOrder | aId: hopper id aOrderId: order id | 미결제 주문을 취소합니다. |
Position
Hopper의 Positions를 관리합니다.
| 메서드 | Arguments | 설명 |
| GetPosition | aId: hopper id | hopper의 미체결 포지션을 가져옵니다. |
Trade
Hopper의 거래 내역.
| 메서드 | Arguments | 설명 |
| GetTradeHistory | hopper의 거래 내역을 가져옵니다. | |
| GetTradeHistoryById | aId: hopper id aTradeId: trade id | hopper의 id로 거래를 가져옵니다. |
Exchange
CryptoHopper에서 사용 가능한 익스체인지 정보 가져오기
| 메서드 | Arguments | 설명 |
| GetExchange | Cryptohopper에서 사용 가능한 모든 익스체인지를 가져옵니다. | |
| GetAllTickers | aExchange: 익스체인지 이름 | 모든 페어의 ticker를 가져옵니다 |
| GetMarketTicker | aExchange: exchange 이름 aPair: pair 이름 | market 쌍에서 ticker를 가져옵니다. |
| GetOrderBook | aExchange: exchange 이름 aPair: pair 이름 aDepth: 주문서 깊이 |
선택된 거래소, 마켓 및 오더북 depth에 대한 오더북을 가져옵니다. |
Webhooks
Hopper의 거래 내역.
| 메서드 | Arguments | 설명 |
| CreateWebhook | aURL: webhook url aMessageTypes: 쉼표로 구분된 메시지 유형. | Webhook을 업데이트하거나 생성합니다 |
| DeleteWebhook | aURL: webhook url | 기존 Webhook을 삭제합니다. |
Signals
CryptoHopper API에 Signal을 보냅니다.
| 메서드 | Arguments | 설명 |
| SendSignal | aSignal: 신호를 전송하는 데 필요한 모든 필드가 있는 클래스입니다. | Signal을 보냅니다 |
| SendTestSignal | aSignal: 신호를 전송하는 데 필요한 모든 필드가 있는 클래스입니다. | 테스트 신호를 보냅니다 |
| GetSignalStats | aSignalId: signal의 id입니다. aExchange: 선택 사항, exchange의 이름입니다. | 일부 신호 통계를 검색합니다. |
Hopper 구성을 업데이트하려면 UpdateHopper 메서드를 사용하십시오. 이 메서드는 오버로드되어 있으므로 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에는 cryptohopper가 보내는 모든 메시지를 URL 주소에서 수신할 공개 HTTPs 서버가 필요합니다. 공개 서버는 SSL 인증서로 보호되어야 합니다(자체 서명된 인증서는 허용되지 않습니다).
먼저 webhook을 생성해야 하므로, 서버가 수신 대기할 Host와 Port를 설정하여 Cryptohopper 클라이언트의 Webhook 속성을 구성하십시오. 그런 다음 SSLOptions 속성에서 인증서를 구성하십시오.
예제: 공인 IP 주소는 1.1.1.1이고 수신 포트는 443입니다. 인증서는 비밀번호 없이 sgc.pem 파일 이름의 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;