//[Test] public void LoginTestCase() { var manualBarEvent = new ManualResetEvent(false); _marketDataEngineClient.LiveBarArrived += Console.WriteLine; manualBarEvent.WaitOne(1000); _marketDataEngineClient.SendLoginRequest(new Login { MarketDataProvider = Common.Core.Constants.MarketDataProvider.SimulatedExchange }); // Assert.AreEqual(true, logoutArrived, "Logout Arrived"); manualBarEvent.WaitOne(3000); _marketDataEngineClient.SendLiveBarSubscriptionRequest(new BarDataRequest { BarFormat = Common.Core.Constants.BarFormat.TIME, Security = new Security { Symbol = "GOOG" }, BarLength = 10, MarketDataProvider = Common.Core.Constants.MarketDataProvider.SimulatedExchange, Id = "1", BarPriceType = Common.Core.Constants.BarPriceType.BID }); manualBarEvent.WaitOne(10000); }
public void TestWholeExchange() { int count = 0; _orderExecutionEngine.NewArrived += delegate(Order order) { count++; }; _orderExecutionEngine.ExecutionArrived += delegate(Execution execution) { count++; }; ManualResetEvent manualResetEvent = new ManualResetEvent(false); manualResetEvent.WaitOne(1000); _orderExecutionEngine.SendLoginRequest(new Login { OrderExecutionProvider = OrderExecutionProvider.SimulatedExchange }); _marketDataEngineClient.SendLoginRequest(new Login { MarketDataProvider = MarketDataProvider.SimulatedExchange }); manualResetEvent.WaitOne(3000); LimitOrder limitOrder = new LimitOrder("1", OrderSide.SELL, 10, OrderTif.DAY, "USD", new Security() { Symbol = "GOOG" }, OrderExecutionProvider.SimulatedExchange) { LimitPrice = 120 }; _orderExecutionEngine.SendLimitOrderRequest(limitOrder); _marketDataEngineClient.SendLiveBarSubscriptionRequest(new BarDataRequest { BarFormat = BarFormat.TIME, Security = new Security { Symbol = "GOOG" }, BarLength = 10, MarketDataProvider = MarketDataProvider.SimulatedExchange, Id = "1", BarPriceType = BarPriceType.BID }); manualResetEvent.WaitOne(3000); Assert.AreEqual(2, count); }
public void MarketDataProviderBarTestCase() { bool logonArrived = false; bool logoutArrived = false; bool inquiryResponseArrived = false; int count = 1; Stopwatch stopwatch = new Stopwatch(); ManualResetEvent manualLogonEvent = new ManualResetEvent(false); ManualResetEvent manualLogoutEvent = new ManualResetEvent(false); ManualResetEvent manualConnectedEvent = new ManualResetEvent(false); ManualResetEvent manualInquiryResponseEvent = new ManualResetEvent(false); ManualResetEvent manualBarArrivedEvent = new ManualResetEvent(false); _marketDataEngineClient.ServerConnected += delegate() { _marketDataEngineClient.SendLoginRequest(new Login() { MarketDataProvider = TradeHubConstants.MarketDataProvider.Simulated }); manualConnectedEvent.Set(); }; _marketDataEngineClient.LogonArrived += delegate(string obj) { logonArrived = true; _marketDataEngineClient.SendInquiryRequest(TradeHubConstants.MarketDataProvider.Simulated); manualLogonEvent.Set(); }; _marketDataEngineClient.InquiryResponseArrived += delegate(MarketDataProviderInfo obj) { inquiryResponseArrived = true; Console.WriteLine(obj); // _marketDataEngineClient.SendLogoutRequest(new Logout { MarketDataProvider = TradeHubConstants.MarketDataProvider.Simulated }); BarDataRequest barDataRequest = new BarDataRequest(); barDataRequest.Id = "A00"; barDataRequest.Security = new Security() { Symbol = "ERX" }; barDataRequest.PipSize = 0.0001m; barDataRequest.BarLength = 30; barDataRequest.BarPriceType = TradeHubConstants.BarPriceType.LAST; barDataRequest.MarketDataProvider = TradeHubConstants.MarketDataProvider.Simulated; barDataRequest.BarFormat = TradeHubConstants.BarFormat.TIME; barDataRequest.BarSeed = 0; _marketDataEngineClient.SendLiveBarSubscriptionRequest(barDataRequest); manualInquiryResponseEvent.Set(); }; _marketDataEngineClient.LiveBarArrived += delegate(Bar bar) { _marketDataEngineClient.SendLogoutRequest(new Logout { MarketDataProvider = TradeHubConstants.MarketDataProvider.Simulated }); manualBarArrivedEvent.Set(); count++; Logger.Info("Recevied Bar=" + bar, "", "MarketDataProviderBarTestCase"); }; _marketDataEngineClient.LogoutArrived += delegate(string obj) { logoutArrived = true; manualLogoutEvent.Set(); }; _marketDataEngineClient.Start(); manualConnectedEvent.WaitOne(30000, false); manualLogonEvent.WaitOne(30000, false); manualInquiryResponseEvent.WaitOne(30000, false); manualLogoutEvent.WaitOne(30000, false); manualBarArrivedEvent.WaitOne(500000); Assert.AreEqual(true, logonArrived, "Logon Arrived"); Assert.AreEqual(true, inquiryResponseArrived, "Inquiry Response Arrived"); Assert.AreEqual(2, count, "Bar arrived"); Assert.AreEqual(true, logoutArrived, "Logout Arrived"); }