diff --git a/KLHZ.Trader.Core/Exchange/Services/ExchangeDataReader.cs b/KLHZ.Trader.Core/Exchange/Services/ExchangeDataReader.cs index 3183abf..27dc11f 100644 --- a/KLHZ.Trader.Core/Exchange/Services/ExchangeDataReader.cs +++ b/KLHZ.Trader.Core/Exchange/Services/ExchangeDataReader.cs @@ -72,10 +72,10 @@ namespace KLHZ.Trader.Core.Exchange.Services { using var stream = _investApiClient.MarketDataStream.MarketDataStream(); - var request = new SubscribeLastPriceRequest - { - SubscriptionAction = SubscriptionAction.Subscribe - }; + //var request = new SubscribeLastPriceRequest + //{ + // SubscriptionAction = SubscriptionAction.Subscribe + //}; var tradesRequest = new SubscribeTradesRequest { @@ -89,11 +89,11 @@ namespace KLHZ.Trader.Core.Exchange.Services foreach (var f in _instrumentsFigis) { - request.Instruments.Add( - new LastPriceInstrument() - { - InstrumentId = f - }); + //request.Instruments.Add( + // new LastPriceInstrument() + // { + // InstrumentId = f + // }); tradesRequest.Instruments.Add( new TradeInstrument() @@ -109,10 +109,10 @@ namespace KLHZ.Trader.Core.Exchange.Services }); } - await stream.RequestStream.WriteAsync(new MarketDataRequest - { - SubscribeLastPriceRequest = request, - }); + //await stream.RequestStream.WriteAsync(new MarketDataRequest + //{ + // SubscribeLastPriceRequest = request, + //}); await stream.RequestStream.WriteAsync(new MarketDataRequest { @@ -129,22 +129,34 @@ namespace KLHZ.Trader.Core.Exchange.Services var lastWrite = DateTime.UtcNow; await foreach (var response in stream.ResponseStream.ReadAllAsync()) { - if (response.LastPrice != null) + //if (response.LastPrice != null) + //{ + // var message = new PriceChange() + // { + // Figi = response.LastPrice.Figi, + // Ticker = _tradeDataProvider.GetTickerByFigi(response.LastPrice.Figi), + // Time = response.LastPrice.Time.ToDateTime().ToUniversalTime(), + // Value = response.LastPrice.Price, + // IsHistoricalData = false, + // }; + // await _eventBus.Broadcast(message); + + // pricesBuffer.Add(message); + //} + if (response.Trade != null) { var message = new PriceChange() { - Figi = response.LastPrice.Figi, - Ticker = _tradeDataProvider.GetTickerByFigi(response.LastPrice.Figi), - Time = response.LastPrice.Time.ToDateTime().ToUniversalTime(), - Value = response.LastPrice.Price, + Figi = response.Trade.Figi, + Ticker = _tradeDataProvider.GetTickerByFigi(response.Trade.Figi), + Time = response.Trade.Time.ToDateTime().ToUniversalTime(), + Value = response.Trade.Price, IsHistoricalData = false, }; await _eventBus.Broadcast(message); pricesBuffer.Add(message); - } - if (response.Trade != null) - { + var trade = new KLHZ.Trader.Core.DataLayer.Entities.Trades.InstrumentTrade() { Figi = response.Trade.Figi,