Binance коннектор, проблемы с соединением и производительностью.

Binance коннектор, проблемы с соединением и производительностью.
Atom
4/4/2021
Sprite


Добрый день! У кого-нибудь есть такие проблемы?

  1. Соединение со стаканом отваливается раз в несколько минут и сразу же восстанавливается, записав ошибку в лог. Картинка с ошибками в логе прилагается.
  2. Соединение с тиками периодически отваливается, а после восстановления теряет тики. Картинка, где пропущено 15 минут прилагается.
  3. Получение тиковых данных и построение свечей доходит до состояния риал-тайм только на вторые сутки. До этого свечи строятся с задержкой от нескольких минут до нескольких десятков минут. Картинка с текущей свечой и текущим временем прилагается. image2473.pngimage8425.png
image2473.png 73 KB (1254) image8425.png 332 KB (1205)



Thanks:


Sprite

Avatar
Date: 4/5/2021
Reply


  1. Периодически появляются сбои, при которых строятся свечи в несколько раз больше реальных. На картинке слева свечи в приложении стокшарп, справа на сайте Binance. Две свечи в приложении стокшарп, отмеченные стрелочками, построены на несуществующих трейдах явно вне спреда. image5514.png
image5514.png 54 KB (1255)
Thanks:

Sprite

Avatar
Date: 4/15/2021
Reply


  1. Кто-нибудь использует Binance коннектор и не испытывает задержки при построении свечей, построенных на трейдах (BuildCandlesFrom2 = DataType.Ticks)?

  2. Может быть разработчики прокомментируют? Невозможно же пользоваться коннектором. Ведь если строить свечи по трейдам, а не получать готовые, то мы никогда не увидим актуальные рыночные данные. Насколько я понимаю коннектор при подключении начинает в порядке очереди обрабатывать получаемые трейды и строит по ним свечи. А так как в этом процессе он никогда не успевает дойти до состояния "обработан последний трейд и этот же трейд обработан при построении текущей свечи", то свечи постоянно формируются с задержкой в несколько минут.

  3. Есть планы по исправлению постоянных обрывов с сокетом, получающим стаканы? Лог ошибки:

Binance_PusherClientFutures_MarketData 15.04.2021 15:50:00 +03:00 Error System.AggregateException: One or more errors occurred. (The remote party closed the WebSocket connection without completing the close handshake.) ---> System.Net.WebSockets.WebSocketException (0x80004005): The remote party closed the WebSocket connection without completing the close handshake. ---> System.IO.IOException: Unable to read data from the transport connection: Удаленный хост принудительно разорвал существующее подключение.. ---> System.Net.Sockets.SocketException (10054): Удаленный хост принудительно разорвал существующее подключение. at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.CreateException(SocketError error, Boolean forAsyncThrow) at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ReceiveAsync(Socket socket, CancellationToken cancellationToken) at System.Net.Sockets.Socket.ReceiveAsync(Memory1 buffer, SocketFlags socketFlags, Boolean fromNetworkStream, CancellationToken cancellationToken) at System.Net.Sockets.NetworkStream.ReadAsync(Memory1 buffer, CancellationToken cancellationToken) at System.Net.Security.SslStream.FillBufferAsync[TIOAdapter](TIOAdapter adapter, Int32 numBytesRequired) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.Security.SslStream.FillBufferAsync[TIOAdapter](TIOAdapter adapter, Int32 numBytesRequired) at System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](TIOAdapter adapter, Memory1 buffer) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](TIOAdapter adapter, Memory1 buffer) at System.Net.Security.SslStream.ReadAsync(Memory1 buffer, CancellationToken cancellationToken) at System.Net.Http.HttpConnection.ReadBufferedAsyncCore(Memory1 destination) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.Http.HttpConnection.ReadBufferedAsyncCore(Memory1 destination) at System.Net.Http.HttpConnection.RawConnectionStream.ReadAsync(Memory1 buffer, CancellationToken cancellationToken) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.Http.HttpConnection.RawConnectionStream.ReadAsync(Memory1 buffer, CancellationToken cancellationToken) at System.Net.WebSockets.ManagedWebSocket.EnsureBufferContainsAsync(Int32 minimumRequiredBytes, CancellationToken cancellationToken, Boolean throwOnPrematureClosure) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.WebSockets.ManagedWebSocket.EnsureBufferContainsAsync(Int32 minimumRequiredBytes, CancellationToken cancellationToken, Boolean throwOnPrematureClosure) at System.Net.WebSockets.ManagedWebSocket.ReceiveAsyncPrivate[TWebSocketReceiveResultGetter,TWebSocketReceiveResult](Memory1 payloadBuffer, CancellationToken cancellationToken, TWebSocketReceiveResultGetter resultGetter) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.WebSockets.ManagedWebSocket.ReceiveAsyncPrivate[TWebSocketReceiveResultGetter,TWebSocketReceiveResult](Memory1 payloadBuffer, CancellationToken cancellationToken, TWebSocketReceiveResultGetter resultGetter) at System.Net.WebSockets.ManagedWebSocket.ReceiveAsync(ArraySegment1 buffer, CancellationToken cancellationToken) at Ecng.Net.WebSocketClient.OnReceive(CancellationTokenSource source) at Ecng.Net.WebSocketClient.<>c__DisplayClass33_0.<ConnectImpl>b__0() at Ecng.Common.Converter.<>c__DisplayClass22_0.<DoInCulture>b__0() at Ecng.Common.Converter.DoInCulture(CultureInfo cultureInfo, Func`1 func) at Ecng.Common.Converter.DoInCulture(CultureInfo cultureInfo, Action action) at Ecng.Common.Converter.<>c__DisplayClass23_0.<Invariant>b__0() at Ecng.Common.ThreadingHelper.<>c__DisplayClass12_0.<Thread>b__0() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() --- End of stack trace from previous location ---

--- End of inner exception stack trace --- at System.Net.Security.SslStream.FillBufferAsync[TIOAdapter](TIOAdapter adapter, Int32 numBytesRequired) at System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](TIOAdapter adapter, Memory1 buffer) at System.Net.Http.HttpConnection.ReadBufferedAsyncCore(Memory1 destination) at System.Net.Http.HttpConnection.RawConnectionStream.ReadAsync(Memory1 buffer, CancellationToken cancellationToken) at System.Net.WebSockets.ManagedWebSocket.EnsureBufferContainsAsync(Int32 minimumRequiredBytes, CancellationToken cancellationToken, Boolean throwOnPrematureClosure) at System.Net.WebSockets.ManagedWebSocket.ReceiveAsyncPrivate[TWebSocketReceiveResultGetter,TWebSocketReceiveResult](Memory1 payloadBuffer, CancellationToken cancellationToken, TWebSocketReceiveResultGetter resultGetter) at System.Net.WebSockets.ManagedWebSocket.ReceiveAsyncPrivate[TWebSocketReceiveResultGetter,TWebSocketReceiveResult](Memory`1 payloadBuffer, CancellationToken cancellationToken, TWebSocketReceiveResultGetter resultGetter) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at Ecng.Net.WebSocketClient.OnReceive(CancellationTokenSource source)

Binance_PusherClientFutures_MarketData 15.04.2021 15:50:01 +03:00 Error System.AggregateException: One or more errors occurred. (The WebSocket is in an invalid state ('Aborted') for this operation. Valid states are: 'Open, CloseReceived, CloseSent') ---> System.Net.WebSockets.WebSocketException (0x80004005): The WebSocket is in an invalid state ('Aborted') for this operation. Valid states are: 'Open, CloseReceived, CloseSent' at System.Net.WebSockets.WebSocketValidate.ThrowIfInvalidState(WebSocketState currentState, Boolean isDisposed, WebSocketState[] validStates) at System.Net.WebSockets.ManagedWebSocket.CloseAsync(WebSocketCloseStatus closeStatus, String statusDescription, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at Ecng.Net.WebSocketClient.OnReceive(CancellationTokenSource source) Binance_PusherClientFutures_MarketData 15.04.2021 15:50:01 +03:00 Error Ошибка соединения Binance_PusherClientFutures_MarketData 15.04.2021 15:50:01 +03:00 Info Socket re-connecting 'wss://fstream3.binance.com/stream?streams=btcusdt@depth@0ms'. Binance_PusherClientFutures_MarketData 15.04.2021 15:50:01 +03:00 Info Connecting to wss://fstream3.binance.com/stream?streams=btcusdt@depth@0ms...

Thanks:

William B

Avatar
Date: 4/19/2021
Reply


Добрый день, вы все эти ошибки получаете, используя коннектор с собственным приложением? Чтобы подтвердить/опровергнуть факт наличия ошибки пожалуйста возьмите наш пример SampleConnection из S#.API (установить можно Инсталлером). Если вы получите подобные ошибки на нашем примере, то присылайте логи и информацию о том, как воспроизвести.

Thanks:

Sprite

Avatar
Date: 4/19/2021
Reply


Юрий Басангов: Добрый день, вы все эти ошибки получаете, используя коннектор с собственным приложением? Чтобы подтвердить/опровергнуть факт наличия ошибки пожалуйста возьмите наш пример SampleConnection из S#.API (установить можно Инсталлером). Если вы получите подобные ошибки на нашем примере, то присылайте логи и информацию о том, как воспроизвести.

Добрый день!

Проверил на вашем примере SampleConnectionWithStorage (единственное что поменял в примере - это способ получения маркет данных с таймфрейм свечей на тики). Действительно, всё работает корректно, т.е. соединение со стаканами не отваливается и свечи строятся из тиков синхронно с текущими данными.

Однако я проверял с условием загрузки данных за последние 5 минут т.е. вот тут https://github.com/StockSharp/StockSharp/blob/master/Samples/Connectors/SampleConnection/SecuritiesWindow.xaml.cs#L454 заменил на var mdMsg = new MarketDataMessage { SecurityId = security.ToSecurityId(), IsSubscribe = true, DataType2 = DataType.TimeFrame(TimeSpan.FromSeconds(130)), From = DateTimeOffset.Now.AddMinutes(-5), To = settings.To, BuildMode = settings.BuildMode, BuildFrom = DataType.Ticks, Skip = settings.Skip, Count = settings.Count, };

Потому что если закачивать данные за день или больше (собственно в вашем примере можно выбрать дату закачки данных минимум в день), то вот именно тогда и проявляется то, что я принял за задержку в обработке актуальных данных. Т.е. есть если мы запустим коннектор с подпиской даты например за неделю, то коннектор начинает скачивать исторические тики и их обрабатывать так медленно, что кажется что он завис. Собственно я это понял когда ожидание изменения подписки на тики за неделю с Active до Online у меня заняло порядка 4-х часов так и не дойдя до онлайн, после чего я увидел записи в логе, всё выключил и задал 5 минут.

Вот так выглядит лог получения данных за 5 минут:

Binance (Subscription) 18.04.2021 19:53:15 +03:00 Info Subscription 71525669 Stopped->Active. Binance (PartialDownload) 18.04.2021 19:53:15 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:47:30 +00:00- Binance (SubscriptionOnline) 18.04.2021 19:53:15 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525670,Cnt=1000,From=19.04.2021 16:47:30 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:53:22 +03:00 Info Partial 71525670 finished. Binance (PartialDownload) 18.04.2021 19:53:24 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:47:55 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:53:24 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525672,Cnt=1000,From=19.04.2021 16:47:55 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:53:32 +03:00 Info Partial 71525672 finished. Binance (PartialDownload) 18.04.2021 19:53:34 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:48:22 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:53:34 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525674,Cnt=1000,From=19.04.2021 16:48:22 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:53:41 +03:00 Info Partial 71525674 finished. Binance (PartialDownload) 18.04.2021 19:53:43 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:48:56 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:53:43 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525677,Cnt=1000,From=19.04.2021 16:48:56 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:53:50 +03:00 Info Partial 71525677 finished. Binance (PartialDownload) 18.04.2021 19:53:52 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:49:27 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:53:52 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525679,Cnt=1000,From=19.04.2021 16:49:27 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:54:00 +03:00 Info Partial 71525679 finished. Binance (PartialDownload) 18.04.2021 19:54:02 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:49:43 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:54:02 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525681,Cnt=1000,From=19.04.2021 16:49:43 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:54:09 +03:00 Info Partial 71525681 finished. Binance (PartialDownload) 18.04.2021 19:54:11 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:50:03 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:54:11 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525683,Cnt=1000,From=19.04.2021 16:50:03 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:54:19 +03:00 Info Partial 71525683 finished. Binance (PartialDownload) 18.04.2021 19:54:21 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:50:20 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:54:21 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525685,Cnt=1000,From=19.04.2021 16:50:20 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:54:28 +03:00 Info Partial 71525685 finished. Binance (PartialDownload) 18.04.2021 19:54:30 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:50:38 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:54:30 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525687,Cnt=1000,From=19.04.2021 16:50:38 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:54:37 +03:00 Info Partial 71525687 finished. Binance (PartialDownload) 18.04.2021 19:54:39 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:51:03 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:54:39 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525688,Cnt=1000,From=19.04.2021 16:51:03 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:54:47 +03:00 Info Partial 71525688 finished. Binance (PartialDownload) 18.04.2021 19:54:49 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:51:17 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:54:49 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525691,Cnt=1000,From=19.04.2021 16:51:17 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:54:56 +03:00 Info Partial 71525691 finished. Binance (PartialDownload) 18.04.2021 19:54:58 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:51:39 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:54:58 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525693,Cnt=1000,From=19.04.2021 16:51:39 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:55:05 +03:00 Info Partial 71525693 finished. Binance (PartialDownload) 18.04.2021 19:55:07 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:52:05 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:55:07 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525695,Cnt=1000,From=19.04.2021 16:52:05 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:55:15 +03:00 Info Partial 71525695 finished. Binance (PartialDownload) 18.04.2021 19:55:17 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:52:25 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:55:17 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525697,Cnt=1000,From=19.04.2021 16:52:25 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:55:24 +03:00 Info Partial 71525697 finished. Binance (PartialDownload) 18.04.2021 19:55:26 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:52:35 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:55:26 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525699,Cnt=1000,From=19.04.2021 16:52:35 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:55:33 +03:00 Info Partial 71525699 finished. Binance (PartialDownload) 18.04.2021 19:55:35 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:52:49 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:55:35 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525700,Cnt=1000,From=19.04.2021 16:52:49 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:55:43 +03:00 Info Partial 71525700 finished. Binance (PartialDownload) 18.04.2021 19:55:45 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:53:12 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:55:45 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525703,Cnt=1000,From=19.04.2021 16:53:12 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:55:49 +03:00 Info Partial 71525703 finished. Binance (PartialDownload) 18.04.2021 19:55:51 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: 19.04.2021 16:53:19 +00:00-19.04.2021 19:53:19 +03:00 Binance (SubscriptionOnline) 18.04.2021 19:55:51 +03:00 Info In: MarketData,T(L)=2021.04.18 19:53:15.502,Sec=BTCUSDT_PERPETUAL@BNB,DataType=Тики,IsSubscribe=True,TransId=71525705,Cnt=1000,From=19.04.2021 16:53:19 +00:00,To=19.04.2021 19:53:19 +03:00,SmallTF=True Binance (PartialDownload) 18.04.2021 19:55:55 +03:00 Info Partial 71525705 finished. Binance (PartialDownload) 18.04.2021 19:55:57 +03:00 Info Downloading BTCUSDT_PERPETUAL@BNB/Тики: - Binance (PartialDownload) 18.04.2021 19:55:57 +03:00 Info Downloading 71525669 is online.

Итак, что для меня в итоге выяснилось:

  1. Коннектор работает как заявлено, однако переход из режима скачивания и обработки истории в режим онлайн может занять очень много времени. Видимо на рынках, которые работают круглосуточно нужно без перерыва выкачивать маркет данные, чтобы минимизировать коннектору время перехода в онлайн.
  2. Проблему выше я увидел и понял её причину только запустив отдельно пример с коннектором так как у себя я запускал тест коннектора во втором экземпляре своего приложения (с уже одним работающим), а в этом случае во втором приложении в окно логов ничего не пишется и не понятно что происходит. Прилагаю картинку с запущенными двумя экземплярами SampleConnectionWithStorage, где в логах второго приложения пусто, хотя там должны быть сообщения.
image3233.png 180 KB (472)
Thanks:

Sprite

Avatar
Date: 4/19/2021
Reply


image4548.png

image4548.png 180 KB (1186)
Thanks:

William B

Avatar
Date: 4/20/2021
Reply


Добрый день,

  1. получение и обработка тиков за неделю это действительно достаточно длительный процесс. для разных инструментов по разному, для очень ликвидных — тиков может быть очень много. Кроме того, остается открытым вопрос, что именно тормозит, сам коннектор, или скорость, с которой сервер отдает исторические тики. В идеале, нужно получать исторические свечи, а потом достраивать их тиками, но у вас нестандартный таймфрейм, поэтому получать свечи не получится. Поэтому, рекомендация такая: сделать отдельную функцию/утилиту или используйте S#.Data которая будет получать исторические данные, формировать из них свечи и сохранять их в локальное хранилище, а основное приложение будет получать сохраненные свечи из локального хранилища, после чего подписываться на тики в коннекторе и достраивать свечи из тиков.

  2. вы запустили 2 экземпляра приложения из одной и той же папки, поэтому есть конфликт записи логов. Для параллельного запуска нужно скопировать приложение в другую папку и второй экземпляр запускать из нее, тогда конфликта не будет.

Thanks:

Sprite

Avatar
Date: 4/20/2021
Reply


Юрий Басангов: Добрый день,

  1. получение и обработка тиков за неделю это действительно достаточно длительный процесс. для разных инструментов по разному, для очень ликвидных — тиков может быть очень много. Кроме того, остается открытым вопрос, что именно тормозит, сам коннектор, или скорость, с которой сервер отдает исторические тики. Сервер точно не тормозит, коннектор на вашем примере тоже не тормозит. Судя по всему тормозит моё приложение, буду разбираться.

Юрий Басангов: В идеале, нужно получать исторические свечи, а потом достраивать их тиками, но у вас нестандартный таймфрейм, поэтому получать свечи не получится. Поэтому, рекомендация такая: сделать отдельную функцию/утилиту или используйте S#.Data которая будет получать исторические данные, формировать из них свечи и сохранять их в локальное хранилище, а основное приложение будет получать сохраненные свечи из локального хранилища, после чего подписываться на тики в коннекторе и достраивать свечи из тиков. Да, я так и делаю, просто на рынках с клирингом я это делаю во время клиринга, в крипте же видимо надо параллельно постоянно выкачивать маркет данные. Таймфрейм взял просто для примера, не кратный минуткам, чтобы коннектор точно не скачивал из веб-сокета с готовыми свечами. Но смысл для меня тот же, так как я строю и сохраняю свои типы свечей.

Юрий Басангов: 2) вы запустили 2 экземпляра приложения из одной и той же папки, поэтому есть конфликт записи логов. Для параллельного запуска нужно скопировать приложение в другую папку и второй экземпляр запускать из нее, тогда конфликта не будет. Понял, огромное спасибо, так и буду делать, а то постоянно мучила эта беда.

И еще не совсем в тему - у меня закончился триал, я могу заказать новый или на один аккаунт возможен только один триал?

Thanks:

William B

Avatar
Date: 4/21/2021
Reply


Добрый день, триальный период предоставляется единоразово, чтобы вы могли до покупки попробовать работу с коннектором. Если вам все устраивает, то дальше начинается период платного использования, если нет, то вы его просто не покупаете.

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy