public SmartOrderRoutingEngine(IProvideMarkets provideMarkets, ICanRouteOrders canRouteOrders, ICanReceiveMarketData canReceiveMarketData)
 {
     this.provideMarkets = provideMarkets;
     this.canRouteOrders = canRouteOrders;
     this.canReceiveMarketData = canReceiveMarketData;
     var availableMarkets = provideMarkets.GetAvailableMarkets();
     this.markets = availableMarkets.ToDictionary(market => market, market => market);
     this.marketSnapshotProvider = new MarketSnapshotProvider(availableMarkets, canReceiveMarketData);
 }