public IcmTickPriceHarvester(IcmExchangeConfiguration config, IcmModelConverter modelConverter, IHandler <TickPrice> tickPriceHandler, ILog log) { _log = log; _enabled = config.RabbitMq.Enabled; if (!_enabled) { return; } var instruments = config.SupportedCurrencySymbols.Select(x => new Instrument(IcmExchange.Name, x.LykkeSymbol).Name).ToHashSet(); var rabbitSettings = new RabbitMqSubscriptionSettings { ConnectionString = config.RabbitMq.ConnectionString, ExchangeName = config.RabbitMq.Exchange, QueueName = config.RabbitMq.Queue }; var errorStrategy = new DefaultErrorHandlingStrategy(_log, rabbitSettings); _rabbit = new RabbitMqSubscriber <OrderBook>(rabbitSettings, errorStrategy) .SetMessageDeserializer(new GenericRabbitModelConverter <OrderBook>()) .SetMessageReadStrategy(new MessageReadWithTemporaryQueueStrategy()) .SetConsole(new LogToConsole()) .SetLogger(_log) .Subscribe(async orderBook => { if (instruments.Contains(orderBook.Asset)) { var tickPrice = modelConverter.ToTickPrice(orderBook); if (tickPrice != null) { await tickPriceHandler.Handle(tickPrice); } } }); }
public IcmExchange(IcmTickPriceHarvester tickPriceHarvester, IcmExchangeConfiguration config, TranslatedSignalsRepository translatedSignalsRepository, IcmModelConverter converter, ILog log) : base(Name, config, translatedSignalsRepository, log) { _config = config; _converter = converter; _tickPriceHarvester = tickPriceHarvester; _tradeSessionConnector = new IcmTradeSessionConnector(new FixConnectorConfiguration(config.Password, config.GetFixConfigAsReader()), log); _log = log; }
public IcmTickPriceHarvester( IcmExchangeConfiguration config, IcmModelConverter modelConverter, IHandler <TickPrice> tickPriceHandler, IHandler <Trading.OrderBook> orderBookHandler, ILog log) { _config = config; _modelConverter = modelConverter; _tickPriceHandler = tickPriceHandler; _orderBookHandler = orderBookHandler; _log = log; _enabled = config.RabbitMq.Enabled; if (!_enabled) { return; } _instruments = config.SupportedCurrencySymbols.Select(x => new Instrument(IcmExchange.Name, x.LykkeSymbol).Name).ToHashSet(); var rabbitSettings = new RabbitMqSubscriptionSettings { ConnectionString = config.RabbitMq.ConnectionString, ExchangeName = config.RabbitMq.Exchange, QueueName = config.RabbitMq.Queue }; var errorStrategy = new DefaultErrorHandlingStrategy(_log, rabbitSettings); if (_config.Enabled) { _rabbit = new RabbitMqSubscriber <OrderBook>(rabbitSettings, errorStrategy) .SetMessageDeserializer(new GenericRabbitModelConverter <OrderBook>()) .SetMessageReadStrategy(new MessageReadWithTemporaryQueueStrategy()) .SetConsole(new LogToConsole()) .SetLogger(_log) .Subscribe(HandleOrderBook); } }