Смена источника данных
test / deploy_trader_prod (push) Successful in 1m41s Details

dev
vlad zverzhkhovskiy 2025-09-08 14:51:28 +03:00
parent 092920e2f1
commit f7e6b8080b
1 changed files with 33 additions and 21 deletions

View File

@ -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,