Closed creatidy closed 1 year ago
An application should use the proper endpoint for "24hr Ticker Price Change Statistics", ie. GET /api/v3/ticker/24hr
GET /api/v3/ticker/24hr
More: https://binance-docs.github.io/apidocs/spot/en/#24hr-ticker-price-change-statistics
Currently an application tries to use an endpoint: GET /sapi/v1/margin/ticker/24hr ... invoking the error:
GET /sapi/v1/margin/ticker/24hr
20230120 20:27:20.436 ERROR:: BinanceBrokerage.FetchSymbolWeights(): System.Exception: BinanceBrokerage.GetCashBalance: request failed: [404] , Content: {"timestamp":1674246440091,"status":404,"error":"Not Found","message":"No message available","path":"/sapi/v1/margin/ticker/24hr"}, ErrorMessage: at QuantConnect.BinanceBrokerage.BinanceBaseRestApiClient.GetTickerPriceChangeStatistics() in C:\Users\adria\workspace\QuantConnect\Lean.Brokerages.Binance\QuantConnect.BinanceBrokerage\BinanceBaseRestApiClient.cs:line 415 at QuantConnect.BinanceBrokerage.BinanceBrokerage.FetchSymbolWeights(String restApiUrl) in C:\Users\adria\workspace\QuantConnect\Lean.Brokerages.Binance\QuantConnect.BinanceBrokerage\BinanceBrokerage.cs:line 670 20230120 20:27:20.465 ERROR:: Engine.Run(): System.Exception: BinanceBrokerage.GetCashBalance: request failed: [404] , Content: {"timestamp":1674246440091,"status":404,"error":"Not Found","message":"No message available","path":"/sapi/v1/margin/ticker/24hr"}, ErrorMessage: at QuantConnect.BinanceBrokerage.BinanceBaseRestApiClient.GetTickerPriceChangeStatistics() in C:\Users\adria\workspace\QuantConnect\Lean.Brokerages.Binance\QuantConnect.BinanceBrokerage\BinanceBaseRestApiClient.cs:line 415 at QuantConnect.BinanceBrokerage.BinanceBrokerage.FetchSymbolWeights(String restApiUrl) in C:\Users\adria\workspace\QuantConnect\Lean.Brokerages.Binance\QuantConnect.BinanceBrokerage\BinanceBrokerage.cs:line 670 at QuantConnect.BinanceBrokerage.BinanceBrokerage.Initialize(String wssUrl, String restApiUrl, String apiKey, String apiSecret, IAlgorithm algorithm, IDataAggregator aggregator, LiveNodePacket job, String marketName) in C:\Users\adria\workspace\QuantConnect\Lean.Brokerages.Binance\QuantConnect.BinanceBrokerage\BinanceBrokerage.cs:line 494 at QuantConnect.BinanceBrokerage.BinanceBrokerage..ctor(String apiKey, String apiSecret, String restApiUrl, String webSocketBaseUrl, IAlgorithm algorithm, IDataAggregator aggregator, LiveNodePacket job, String marketName) in C:\Users\adria\workspace\QuantConnect\Lean.Brokerages.Binance\QuantConnect.BinanceBrokerage\BinanceBrokerage.cs:line 115 at QuantConnect.BinanceBrokerage.BinanceBrokerage..ctor(String apiKey, String apiSecret, String restApiUrl, String webSocketBaseUrl, IAlgorithm algorithm, IDataAggregator aggregator, LiveNodePacket job) in C:\Users\adria\workspace\QuantConnect\Lean.Brokerages.Binance\QuantConnect.BinanceBrokerage\BinanceBrokerage.cs:line 97 at QuantConnect.BinanceBrokerage.BinanceBrokerageFactory.CreateBrokerage(LiveNodePacket job, IAlgorithm algorithm) in C:\Users\adria\workspace\QuantConnect\Lean.Brokerages.Binance\QuantConnect.BinanceBrokerage\BinanceBrokerageFactory.cs:line 88 at QuantConnect.Lean.Engine.Setup.BrokerageSetupHandler.CreateBrokerage(AlgorithmNodePacket algorithmNodePacket, IAlgorithm uninitializedAlgorithm, IBrokerageFactory& factory) in C:\Users\adria\workspace\QuantConnect\Lean\Engine\Setup\BrokerageSetupHandler.cs:line 134 at QuantConnect.Lean.Engine.Engine.Run(AlgorithmNodePacket job, AlgorithmManager manager, String assemblyPath, WorkerThread workerThread) in C:\Users\adria\workspace\QuantConnect\Lean\Engine\Engine.cs:line 138
diff --git a/QuantConnect.BinanceBrokerage/BinanceBaseRestApiClient.cs b/QuantConnect.BinanceBrokerage/BinanceBaseRestApiClient.cs index 0b91c82..aee8d66 100644 --- a/QuantConnect.BinanceBrokerage/BinanceBaseRestApiClient.cs +++ b/QuantConnect.BinanceBrokerage/BinanceBaseRestApiClient.cs @@ -406,7 +406,7 @@ namespace QuantConnect.BinanceBrokerage /// </summary> public PriceChangeStatistics[] GetTickerPriceChangeStatistics() { - var endpoint = $"{ApiPrefix}/ticker/24hr"; + var endpoint = $"{GetBaseDataEndpoint()}/ticker/24hr"; var request = new RestRequest(endpoint, Method.GET); var response = ExecuteRestRequest(request);
lean live deploy "strategy" --brokerage Binance --data-feed Binance
Win11, Docker, WSL2
master
Expected Behavior
An application should use the proper endpoint for "24hr Ticker Price Change Statistics", ie.
GET /api/v3/ticker/24hr
More: https://binance-docs.github.io/apidocs/spot/en/#24hr-ticker-price-change-statistics
Actual Behavior
Currently an application tries to use an endpoint:
GET /sapi/v1/margin/ticker/24hr
... invoking the error:Potential Solution
Reproducing the Problem
lean live deploy "strategy" --brokerage Binance --data-feed Binance
System Information
Win11, Docker, WSL2
Checklist
master
branch