private void WaitSendingLimitOrder() { int counter = 0; Order.Price = CalcPassiveOrderPrice(Order.Side); TestContent.OrderStatus = OrderStatus.PENDING; TraderSubscriber.SendOrder(Order, OrderResponce); while (!TestContent.IsOrderSent && counter++ < 100) { Thread.Sleep(100); } if (TestContent.OrderStatus == OrderStatus.PENDING) { try { TestTrader.ExecuteOrder(Order); } catch (Exception ex) { TestContent.IsSuccess = false; TestContent.OrderStatus = OrderStatus.INDEFINITE; Console.WriteLine(ex.Message); } } }
protected void InitializeTestContent() { // Init content TestContent = new TestContent(); TestContent.TradeSettings = ConfiguratorService.GeTradeSettings(User.UserId).FirstOrDefault(s => s.Settings.Symbol == Symbol); // Init balance TraderSubscriber.CheckBalance(InitializeBalance); }
public void UpdateCurrency(string baseSymbol, string termSymbol) { TraderSubscriber.OrderBookUnsubscribe(OrderBookDestination + Symbol, OnBestBidAsk); BaseSymbol = baseSymbol; TermSymbol = termSymbol; Symbol = baseSymbol + termSymbol; Security = ConfiguratorService.GetSecurities().FirstOrDefault(s => s.BaseCurrency == baseSymbol && s.TermCurrency == termSymbol); BestBid = 0; BestAsk = 0; TraderSubscriber.OrderBookSubcribe(OrderBookDestination + Symbol, OnBestBidAsk); }
public void CloseConnections() { TraderSubscriber.OrderBookUnsubscribe(OrderBookDestination + Symbol, OnBestBidAsk); TraderSubscriber.OrdersUnsubscribe(CheckOrderStatus); TraderSubscriber.StopResponses(); ManagerSubscriber.StopResponses(); TraderSubscriber.Close(); ManagerSubscriber.Close(); if (TestTrader != null) { TestTrader.Finish(); } }
private void GeneralCheck(string testName, bool isPassive) { long sentOrderTime = StompWebSocketService.ConvertToUnixTimestamp(DateTime.Now.AddSeconds(-1)); Logger.Debug("Send order time: {0}", TradeSetting.GetStringTime(DateTime.Now)); if (Order.Type == OrderType.LIMIT && isPassive) { WaitSendingLimitOrder(); } else { TraderSubscriber.SendOrder(Order, OrderResponce); TestContent.OrderStatus = OrderStatus.PENDING; } WaitOrderStatus(); if (TestContent.IsSuccess) { ManagerSubscriber.GetTransactions(SaveTransactions, sentOrderTime); Thread.Sleep(1000); try { CheckCommissions(isPassive); } catch (Exception ex) { TestContent.IsSuccess = false; Console.WriteLine("While calculating commissions an error occured: {0}", ex.Message); Console.WriteLine("Stack trace: {0}", ex.StackTrace); } try { TraderSubscriber.CheckBalance(CheckNewBalance); } catch (Exception ex) { TestContent.IsSuccess = false; Console.WriteLine("While checking balance an error occured: {0}", ex.Message); Console.WriteLine("Stack trace: {0}", ex.StackTrace); } Thread.Sleep(2000); } AddTestResult(TestContent.IsSuccess && TestContent.IsOrderSent, testName); }
public void CancelOrder() { TraderSubscriber.CancelOrder(TestContent.SentOrderId, IsCanceled); }