Binance는 국제적인 다국어 cryptocurrency 거래소입니다. Binance 데이터에 액세스하기 위한 일부 API를 제공합니다. 이 구성 요소를 사용하면 Binance Futures WebSocket Market Streams를 가져올 수 있습니다.
https://binance-docs.github.io/apidocs/futures/en
https://binance-docs.github.io/apidocs/delivery/en
Binance API에는 public과 private 두 가지 유형의 메서드가 있습니다. Public 메서드는 인증 없이 액세스할 수 있습니다(예: ticker 가격 가져오기). 일부는 private이며 사용자 데이터와 관련이 있습니다. 이러한 메서드는 Binance API 키 사용을 요구합니다.
클라이언트는 USDT 또는 COIN Binance Futures에 연결할 수 있습니다. FuturesContracts 속성을 사용하여 거래하려는 계약을 설정하십시오:
클라이언트는 Production 또는 Demo Binance 계정에 연결할 수 있습니다. TestNet 속성이 활성화되면 Demo 계정에 연결되고, 그렇지 않으면 production Binance 서버에 연결됩니다.
클라이언트는 성공적인 연결 후 이벤트를 구독/구독 취소할 수 있습니다.
다음 Subscription / Unsubscription 메서드가 지원됩니다.
| Method | 매개변수 | 설명 |
| AggregateTrades | Symbol | Aggregate Trade Stream은 100밀리초마다 단일 taker 주문에 대해 집계된 거래 정보를 푸시합니다. |
| MarkPrice | Symbol, UpdateSpeed | 단일 심볼에 대한 마크 가격과 펀딩 비율이 3초마다 또는 1초마다 푸시됩니다. |
| AllMarkPrice | UpdateSpeed | 모든 심볼에 대한 mark price와 펀딩 비율을 3초마다 또는 매초마다 푸시합니다. |
| KLine | Symbol, Interval | Kline/Candlestick Stream은 현재 kline/candlestick에 대한 업데이트를 250밀리초마다 푸시합니다(존재하는 경우). |
| MiniTicker | Symbol | 단일 심볼에 대한 24시간 롤링 윈도우 미니 티커 통계입니다. 이는 UTC 일의 통계가 아니라 requestTime부터 24시간 전까지의 24시간 롤링 윈도우입니다. |
| AllMiniTicker | 모든 심볼에 대한 24시간 롤링 윈도우 미니 ticker 통계입니다. 이는 UTC 날짜의 통계가 아니라 requestTime부터 24시간 전까지의 24시간 롤링 윈도우입니다. 변경된 ticker만 배열에 존재한다는 점에 유의하십시오. | |
| Ticker | Symbol | 단일 심볼에 대한 24시간 롤링 윈도우 티커 통계입니다. 이는 UTC 일자의 통계가 아니라 requestTime부터 그 24시간 전까지의 24시간 롤링 윈도우입니다. |
| AllMarketTickers | 모든 심볼에 대한 24시간 롤링 윈도우 티커 통계입니다. 이것은 UTC 일자의 통계가 아니라, requestTime에서 24시간 전까지의 24시간 롤링 윈도우입니다. 변경된 티커만 배열에 표시됩니다. | |
| BookTicker | Symbol | 지정된 symbol에 대한 최우선 매수 또는 매도 호가의 가격 또는 수량에 대한 모든 업데이트를 실시간으로 푸시합니다. |
| AllBookTickers | 모든 심볼에 대해 최고 매수 또는 매도의 가격이나 수량에 대한 모든 업데이트를 실시간으로 푸시합니다. | |
| LiquidationOrders | Symbol | Liquidation Order Stream은 특정 심볼에 대한 강제 청산 주문 정보를 푸시합니다 |
| AllLiquidationOrders | All Liquidation Order Streams는 시장의 모든 심볼에 대한 강제 청산 주문 정보를 푸시합니다. | |
| PartialBookDepth | Symbol, Depth | 최상위 bids 및 asks, 유효 값은 5, 10, 20입니다. |
| DiffDepth | Symbol | 매수 및 매도 호가로, 250밀리초, 500밀리초, 100밀리초마다 또는 실시간으로(존재하는 경우) 푸시됩니다 |
구독 / 구독 해지가 성공한 후, 클라이언트는 이에 대한 메시지를 받으며, 여기서 id는 Subscribed / Unsubscribed 메서드의 결과입니다.
{
"result": null,
"id": 1
}
binance 계정에서 얻은 유효한 ApiKey가 필요하며, ApiKey는 구성 요소의 Binance.ApiKey 속성에 설정해야 합니다.
다음 데이터는 변경이 있을 때마다 클라이언트에 푸시됩니다. 어떤 메서드도 구독할 필요가 없으며, 유효한 ApiKey를 설정하면 자동으로 수행됩니다.
| Method | 설명 |
| Margin Call | 사용자의 포지션 위험 비율이 너무 높으면 이 스트림이 푸시됩니다. 이 메시지는 위험 안내 정보로만 사용되며 투자 전략에는 권장되지 않습니다. 변동성이 큰 시장의 경우, 이 스트림이 푸시될 때 사용자의 포지션이 동시에 청산될 가능성이 있을 수 있습니다. |
| Balance and Position Update |
Balance Update는 다음 중에 발생합니다:
|
| Order Update | 새 주문이 생성되거나 주문 상태가 변경되면 이러한 이벤트가 푸시됩니다. |
모든 엔드포인트는 JSON 객체 또는 배열을 반환합니다. 데이터는 오름차순으로 반환됩니다. 가장 오래된 것이 먼저, 가장 새로운 것이 나중입니다.
Public API EndPoints
이러한 엔드포인트는 권한 부여 없이 접근할 수 있습니다.
General EndPoints
| Method | 매개변수 | 설명 |
| Ping | Rest API에 대한 연결을 테스트합니다. | |
| GetServerTime | Rest API에 대한 연결성을 테스트하고 현재 서버 시간을 가져옵니다. | |
| GetExchangeInformation | 현재 거래소 거래 규칙 및 심볼 정보 |
Market Data EndPoints
| Method | 매개변수 | 설명 |
| GetOrderBook | Symbol | 호가창을 가져옵니다. |
| GetTrades | Symbol | 최근 거래를 가져옵니다 |
| GetHistoricalTrades | Symbol | 이전 거래를 가져옵니다. |
| GetAggregateTrades | Symbol | 압축된 집계 거래를 가져옵니다. 동일한 주문에서 동일한 가격으로 동시에 체결되는 거래는 수량이 집계됩니다. |
| GetKLines | Symbol, Interval | 심볼에 대한 Kline/캔들스틱 바입니다. Klines는 open time으로 고유하게 식별됩니다. |
| Get24hrTicker | Symbol | 24시간 롤링 창 가격 변동 통계. 심볼 없이 이에 접근할 때는 주의하십시오. |
| GetPriceTicker | Symbol | 심볼 또는 심볼들의 최신 가격입니다. |
| GetBookTicker | Symbol | 심볼 또는 심볼들에 대한 오더북의 최적 가격/수량. |
| GetMarkPrice | Symbol | Mark Price 및 Funding Rate |
| GetFundingRateHistory | Symbol | |
| GetOpenInterest | Symbol | 특정 심볼의 현재 미결제약정을 가져옵니다. |
| GetOpenInterestStatistics | Symbol, Period | |
| GetTopTraderAccountRatio | Symbol, Period | |
| GetTopTraderPositionRatio | Symbol, Period | |
| GetGlobalAccountRatio | Symbol, Period | |
| GetTakerVolume | Symbol, Period | |
| GetContinuousKLines | Pair, ContractType, Interval | 특정 계약 유형에 대한 Kline/캔들스틱 바입니다. |
| GetIndexPriceKLines | Pair, Interval | 페어의 인덱스 가격에 대한 Kline/캔들스틱 바입니다. |
| GetMarkPriceKLines | Symbol, Interval | 심볼의 mark price에 대한 Kline/캔들스틱 바입니다. |
| GetPremiumIndexKLines | Symbol, Interval | 심볼의 premium index kline 바입니다. |
| GetFundingInfo | 모든 심볼에 대한 펀딩 비율 정보를 가져옵니다. | |
| GetPriceTickerV2 | Symbol | 심볼 또는 심볼들의 최신 가격입니다(V2). |
| GetIndexInfo | Symbol | 인덱스 정보를 가져옵니다. |
| GetAssetIndex | Symbol | 멀티 에셋 모드의 자산 인덱스를 가져옵니다. |
| GetConstituents | Symbol | 인덱스 구성 종목을 가져옵니다. |
| GetDeliveryPrice | Pair | delivery price를 가져옵니다. |
| GetBasis | Pair, ContractType, Period | 기준 데이터를 가져옵니다. |
Private API EndPoints
서버의 권한을 받으려면 APIKey와 APISecret이 필요합니다.
Account and Trades EndPoints
| Method | 매개변수 | 설명 |
| ChangePositionMode | DualPosition | 모든 심볼에서 사용자의 포지션 모드(Hedge Mode 또는 One-way Mode)를 변경합니다 |
| GetCurrentPositionMode | 모든 심볼에서 사용자의 포지션 모드(Hedge Mode 또는 One-way Mode)를 가져옵니다 | |
| NewOrder | Symbol, Side, PositionSide, Type | 새 주문을 보냅니다. |
| PlaceMarketOrder | Side, Symbol, Quantity | |
| PlaceLimitOrder | Side, Symbol, Quantity, LimitPrice | |
| PlaceStopOrder | Side, Symbol, Quantity, StopPrice, LimitPrice | |
| PlaceTrailingStopOrder | Side, Symbol, Quantity, aActivationPrice, aCallbackRate | |
| QueryOrder | Symbol | 주문의 상태를 확인합니다. |
| CancelOrder | Symbol | 활성 주문을 취소합니다. OrderId 또는 OrigClientOrderId 중 하나를 보내야 합니다. |
| CancelAllOpenOrders | Symbol | |
| AutoCancelAllOpenOrders | Symbol, CountDownTimer | 지정된 카운트다운이 끝날 때 지정된 심볼의 모든 미체결 주문을 취소합니다. |
| QueryCurrentOpenOrder | Symbol | |
| GetOpenOrders | Symbol | 심볼의 모든 미결제 주문을 가져옵니다. 심볼 없이 이에 접근할 때 주의하십시오. |
| GetAllOrders | Symbol | 모든 계정 주문을 가져옵니다. 활성, 취소됨 또는 체결됨. |
| GetAccountBalance | ||
| GetAccountInformation | 현재 계정 정보를 가져옵니다. | |
| ChangeInitialLeverage | Symbol, Leverage | 특정 심볼 시장에 대한 사용자의 초기 레버리지를 변경합니다. |
| ChangeMarginType | Symbol, MarginType | |
| ModifyIsolatedPositionMargin | Symbol, Amount, Type | |
| GetPositionMarginChangeHistory | Symbol | |
| GetPositionInformation | Symbol | |
| GetAccountTradeList | Symbol | |
| GetIncomeHistory | Symbol | |
| GetNotionalLeverageBracket | Symbol | |
| TestNewOrder | Symbol, Side, PositionSide, Type | 새 주문 생성 및 signature/recvWindow long을 테스트합니다. 새 주문을 생성하고 검증하지만 매칭 엔진으로 보내지는 않습니다. |
| ModifyOrder | Symbol | 기존 주문 수정. |
| NewBatchOrders | BatchOrders | 여러 주문을 배치합니다. |
| ModifyBatchOrders | BatchOrders | 여러 주문을 수정합니다. |
| CancelBatchOrders | Symbol | 여러 주문을 취소합니다. |
| GetOrderAmendment | Symbol | 주문 수정 기록을 가져옵니다. |
| CountdownCancelAll | Symbol, CountdownTime | 지정된 카운트다운이 끝날 때 지정된 심볼의 모든 미체결 주문을 취소합니다. |
| GetForceOrders | Symbol | 사용자의 강제 청산 주문을 가져옵니다. |
| GetADLQuantile | Symbol | 포지션에 대한 ADL 분위수 추정값을 가져옵니다. |
| GetAccountBalanceV3 | 선물 계정 잔고를 가져옵니다(V3). | |
| GetAccountInformationV3 | 현재 계정 정보를 가져옵니다(V3). | |
| GetPositionInformationV3 | Symbol | 현재 포지션 정보를 가져옵니다(V3). |
| GetCommissionRate | Symbol | 사용자 수수료율을 가져옵니다. |
| GetAccountConfig | 현재 계정 구성을 가져옵니다. | |
| GetSymbolConfig | Symbol | 심볼 구성을 가져옵니다. |
| GetOrderRateLimit | 사용자의 주문 rate limit을 가져옵니다. | |
| GetApiTradingStatus | Symbol | API 거래 정량 규칙 지표를 가져옵니다. |
| ChangeMultiAssetsMode | MultiAssetsMargin | 사용자의 multi-assets 모드를 변경합니다. Multi-Assets Mode: true; Single-Asset Mode: false. |
| GetMultiAssetsMode | 사용자의 현재 다중 자산 모드를 가져옵니다. | |
| SetFeeBurn | FeeBurn | 사용자의 BNB fee burn 상태를 변경합니다. |
| GetFeeBurn | 사용자의 BNB 수수료 소각 상태를 가져옵니다. | |
| CreateListenKey | 새 user data stream을 시작합니다. keepalive가 전송되지 않으면 60분 후에 스트림이 닫힙니다. | |
| KeepAliveListenKey | 타임아웃을 방지하기 위해 user data stream을 keepalive합니다. | |
| CloseListenKey | 사용자 데이터 스트림을 닫습니다. |
Binance Futures 메시지는 TsgcWebSocketClient 구성 요소에서 수신되며, 다음 이벤트를 사용할 수 있습니다.
OnConnect
Binance 서버에 성공적으로 연결된 후.
OnDisconnect
Binance 서버와의 연결이 끊긴 후
OnMessage
서버가 클라이언트에 보낸 메시지는 이 이벤트에서 처리됩니다.
OnError
프로토콜에 오류가 있으면 이 이벤트가 호출됩니다.
OnException
처리되지 않은 예외가 있으면 이 이벤트가 호출됩니다.
또한 Binance API 구성 요소에는 OnBinanceHTTPException이라는 특정 이벤트가 있으며, HTTP 요청(REST API 또는 WebSocket User Stream)을 호출하는 중 오류가 있을 때마다 발생합니다.
(*) Binance 서버의 변경으로 인해 Rad Studio 10.1 이전의 Indy 버전은 Test Server에 연결할 수 없습니다. 이 문제는 Enterprise Edition이나 Indy 버전이 최신으로 업그레이드된 경우에는 영향을 미치지 않습니다.