private static void SendRefreshCancelAssert(Broker broker) { var configStore = new JsonConfigStore(ConfigPath, new List <IConfigValidator>()); var brokerConfig = configStore.Config.Brokers.First(x => x.Broker == broker); var router = new BrokerAdapterRouter(new List <IBrokerAdapter> { new Bitflyer.BrokerAdapter(new RestClient(), configStore), new Coincheck.BrokerAdapter(new RestClient(), configStore), new Quoine.BrokerAdapter(new RestClient(), configStore) }); var quotes = router.FetchQuotes(broker); var bestAsk = quotes.Min(x => x.Price); var targetAsk = bestAsk - 50000; var order = new Order { Broker = broker, Size = 0.01m, Price = targetAsk, Side = OrderSide.Buy, CashMarginType = brokerConfig.CashMarginType, LeverageLevel = brokerConfig.LeverageLevel }; Debug.WriteLine(order); Assert.AreEqual(OrderStatus.PendingNew, order.Status); Assert.AreEqual(null, order.BrokerOrderId); router.Send(order); Debug.WriteLine("Sent the order."); Debug.WriteLine(order); Assert.AreEqual(OrderStatus.New, order.Status); Assert.IsTrue(order.BrokerOrderId != null); Assert.IsTrue(!order.BrokerOrderId.IsNullOrEmpty()); var lastUpdated = order.LastUpdated; while (true) { Debug.WriteLine("Checking if order is refreshed."); Thread.Sleep(500); router.Refresh(order); Debug.WriteLine("Refreshed."); Debug.WriteLine(order); if (lastUpdated != order.LastUpdated) { break; } Debug.WriteLine("Not refreshed yet."); } Assert.AreEqual(OrderStatus.New, order.Status); router.Cancel(order); Debug.WriteLine("Canceled."); Debug.WriteLine(order); Assert.AreEqual(OrderStatus.Canceled, order.Status); }
public void SendTest() { var order = new Order(Broker.Bitflyer, OrderSide.Buy, 0.001m, 500000, CashMarginType.Cash, OrderType.Limit, 0); _target.Send(order); _baBitflyer.Verify(x => x.Send(order)); }
public void SendTest() { var order = new Order(Broker.Hpx, OrderSide.Buy, 0.001m, 500000, OrderType.Limit); _target.Send(order); }