From ccebec00413409cfce7af6330250a9df98cb2d8a Mon Sep 17 00:00:00 2001 From: Victor Lee Date: Wed, 17 Aug 2022 18:46:28 -0700 Subject: [PATCH] added rate limiter for BinanceGroupCommon --- .../API/Exchanges/BinanceGroup/BinanceGroupCommon.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ExchangeSharp/API/Exchanges/BinanceGroup/BinanceGroupCommon.cs b/src/ExchangeSharp/API/Exchanges/BinanceGroup/BinanceGroupCommon.cs index d875e63f..8d7ea26d 100644 --- a/src/ExchangeSharp/API/Exchanges/BinanceGroup/BinanceGroupCommon.cs +++ b/src/ExchangeSharp/API/Exchanges/BinanceGroup/BinanceGroupCommon.cs @@ -61,6 +61,14 @@ protected BinanceGroupCommon() MarketSymbolIsUppercase = true; WebSocketOrderBookType = WebSocketOrderBookType.DeltasOnly; ExchangeGlobalCurrencyReplacements["BCC"] = "BCH"; + /* Binance rate limits are a combination of 3 things: + * - 1200 request weights per 1 minute + * - 100 orders per 10 seconds + * - 200,000 orders per 1 day + * - 5,000 raw requests per 5 min + * Since the most restrictive is the 100 orders per 10 seconds, and OCO orders count for 2, we can conservatively do a little less than 50 per 10 seconds + */ + RateLimit = new RateGate(40, TimeSpan.FromSeconds(10)); // set to 9 to be safe } public override Task ExchangeMarketSymbolToGlobalMarketSymbolAsync(string marketSymbol)