private void AddNewSymbolExecute() { // Check if symbol already exists in TickDetailsMap if (_provider.IsSymbolLoaded(NewSymbol)) { // Select existing TickDetail SelectedTickDetail = TickDetailsCollection.First(x => x.Security.Symbol == NewSymbol); } else { // Create new tick detail's object MarketDataDetail tickDetail = new MarketDataDetail(new Security() { Symbol = NewSymbol }); // Add Tick Detail object to Provider's maps _provider.AddMarketDetail(tickDetail); // Select new tick detail in DataGrid SelectedTickDetail = tickDetail; // Create a new subscription request for requesting market data var subscriptionRequest = new SubscriptionRequest(tickDetail.Security, _provider, MarketDataType.Tick, SubscriptionType.Subscribe); // Raise Event to notify listeners EventSystem.Publish <SubscriptionRequest>(subscriptionRequest); } // Clear NewSymbol string NewSymbol = string.Empty; }
public void UnsubscribeMarketData_SendRequestToServer() { Thread.Sleep(5000); MarketDataProvider provider = new MarketDataProvider(); provider.ConnectionStatus = ConnectionStatus.Disconnected; provider.ProviderName = TradeHubConstants.MarketDataProvider.Simulated; // Rasie event to request connection EventSystem.Publish <MarketDataProvider>(provider); Thread.Sleep(5000); Assert.IsTrue(provider.ConnectionStatus.Equals(ConnectionStatus.Connected)); // Create Security to use the Symbol information Security security = new Security() { Symbol = "AAPL" }; // Create Tick details to hold market data information MarketDataDetail tickDetails = new MarketDataDetail(security); // Add TickDetails object to provider.AddMarketDetail(tickDetails); { // Create a new subscription request for requesting market data var subscriptionRequest = new SubscriptionRequest(security, provider, MarketDataType.Tick, SubscriptionType.Subscribe); EventSystem.Publish <SubscriptionRequest>(subscriptionRequest); } Thread.Sleep(2000); { // Create a new subscription request for requesting market data var subscriptionRequest = new SubscriptionRequest(security, provider, MarketDataType.Tick, SubscriptionType.Unsubscribe); EventSystem.Publish <SubscriptionRequest>(subscriptionRequest); } }
public void PersistTickDataTest() { Thread.Sleep(10000); MarketDataProvider provider = new MarketDataProvider(); provider.ConnectionStatus = ConnectionStatus.Disconnected; provider.ProviderName = TradeHubConstants.MarketDataProvider.Simulated; // Rasie event to request connection EventSystem.Publish <MarketDataProvider>(provider); Thread.Sleep(5000); Assert.IsTrue(provider.ConnectionStatus.Equals(ConnectionStatus.Connected)); // Create Security to use the Symbol information Security security = new Security() { Symbol = "TEST" }; // Create a new subscription request for requesting market data var subscriptionRequest = new SubscriptionRequest(security, provider, MarketDataType.Tick, SubscriptionType.Subscribe); // Create Tick details to hold market data information MarketDataDetail dataDetail = new MarketDataDetail(security); dataDetail.PersistenceInformation.SaveTrades = true; // Add TickDetails object to provider.AddMarketDetail(dataDetail); EventSystem.Publish <SubscriptionRequest>(subscriptionRequest); Thread.Sleep(20000); }
public void RequestMarketData_SendRequestToServer_ReceiveMultipleMarketDataMessages() { Thread.Sleep(5000); MarketDataProvider provider = new MarketDataProvider(); provider.ConnectionStatus = ConnectionStatus.Disconnected; provider.ProviderName = TradeHubConstants.MarketDataProvider.Simulated; // Rasie event to request connection EventSystem.Publish <MarketDataProvider>(provider); Thread.Sleep(5000); Assert.IsTrue(provider.ConnectionStatus.Equals(ConnectionStatus.Connected)); // Create Security to use the Symbol information Security security = new Security() { Symbol = "ERX" }; // Create a new subscription request for requesting market data var subscriptionRequest = new SubscriptionRequest(security, provider, MarketDataType.Tick, SubscriptionType.Subscribe); // Create Tick details to hold market data information MarketDataDetail tickDetails = new MarketDataDetail(security); // Add TickDetails object to provider.AddMarketDetail(tickDetails); EventSystem.Publish <SubscriptionRequest>(subscriptionRequest); Thread.Sleep(60000); Assert.IsTrue(tickDetails.AskPrice.Equals(1.23M), "Best Ask Price"); Assert.IsTrue(tickDetails.BidRecordsCollection.Count.Equals(6), "LOB Collection count"); }
public LimitOrderBookViewModel(MarketDataDetail marketDataDetail) { _bidRecords = marketDataDetail.BidRecordsCollection; _askRecords = marketDataDetail.AskRecordsCollection; }