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 서버에 연결됩니다.
FuturesStreamEndpoint 속성은 production 서버에 연결된 USD-M Futures에만 영향을 줍니다. COIN-M Futures와 Futures TestNet은 라우팅되지 않으므로 영향을 받지 않습니다. 기본값은 이전 버전의 동작을 유지하므로, KLine, MarkPrice, Ticker, AggregateTrades, MiniTicker 또는 LiquidationOrders를 구독하려면 연결하기 전에 Binance.FuturesStreamEndpoint를 bfseMarket으로 설정해야 합니다. 선택한 엔드포인트가 제공하지 않는 스트림을 구독하면, 아무 데이터도 전달하지 않는 연결이 조용히 유지되는 대신 해당 속성을 알려 주는 오류가 발생합니다.
클라이언트는 성공적인 연결 후 이벤트를 구독/구독 취소할 수 있습니다.
다음 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)을 호출하는 중 오류가 있을 때마다 발생합니다.
User Data Stream을 열 수 없는 경우, 보고되는 오류에 HTTP 상태 코드와 Binance가 반환한 메시지가 포함되므로 OnBinanceHTTPException을 지정하지 않아도 원인을 확인할 수 있습니다.
(*) Binance 서버의 변경으로 인해 Rad Studio 10.1 이전의 Indy 버전은 Test Server에 연결할 수 없습니다. 이 문제는 Enterprise Edition이나 Indy 버전이 최신으로 업그레이드된 경우에는 영향을 미치지 않습니다.