/// <summary> /// Cancels the order. /// </summary> /// <param name="cancelOrder">The cancel order.</param> /// <returns></returns> /// <exception cref="ArgumentNullException">cancelOrder</exception> public static void CancelOrder(OsEngine.Entity.Order order) { List<string> transactions = new List<string>(); transactions.Add(order.NumberMarket); CancelOrderCommand canselOrder = new CancelOrderCommand(_token.Token, transactions); clientTwo.CancelOrder(canselOrder); }
/// <summary> /// Adds the order. /// </summary> /// <param name="addOrderCommand">The add order message.</param> /// <returns></returns> public static void AddOrder(OsEngine.Entity.Order order) { Side type = Side.Buy; if(order.Side == OsEngine.Entity.Side.Buy) { type = Side.Buy; } if (order.Side == OsEngine.Entity.Side.Sell) { type = Side.Sell; } decimal volume = order.Volume; Sec security = Securities.Find(s => s.NameInRest == order.SecurityNameCode); AddOrderCommand newCommand = new AddOrderCommand(_token.Token,OrderType.Limit, type, security.NameInSocket, volume); newCommand.Price = order.Price; newCommand.Userref = order.NumberUser.ToString(); clientTwo.AddOrder(newCommand); }
private static void Client_OpenOrdersReceived(object sender, Events.KrakenPrivateEventArgs<OpenOrdersMessage> e) { //OrdersUpdateEvent List<Order> orders = e.PrivateMessage.Orders.ToList(); for (int i = 0; i < orders.Count; i++) { Order o = orders[i]; int numberUser = 0; if (o.UserRef == 0) { OrdersRef myRef = _ordersRefs.Find(ord => ord.MarketRef == o.OrderId); if(myRef == null) { continue; } else { numberUser = myRef.UserRef; } } else if(_ordersRefs.Find(ord => ord.UserRef == o.UserRef) == null) { OrdersRef newRef = new OrdersRef(); newRef.MarketRef = o.OrderId; newRef.UserRef = Convert.ToInt32(o.UserRef); _ordersRefs.Add(newRef); numberUser = Convert.ToInt32(o.UserRef); } OsEngine.Entity.Order orderOsEngine = new OsEngine.Entity.Order(); orderOsEngine.NumberMarket = o.OrderId; orderOsEngine.NumberUser = numberUser; DateTime time = new DateTime(1970, 1, 1).AddSeconds(Convert.ToDouble(o.OpenTimestamp)); orderOsEngine.TimeCallBack = time; if (o.Status == "canceled" || o.Status == "expired") { orderOsEngine.State = OsEngine.Entity.OrderStateType.Cancel; } else if (o.Status == "closed" || o.Status == "canceled" || o.Status == "expired") { orderOsEngine.State = OsEngine.Entity.OrderStateType.Done; } else { orderOsEngine.State = OsEngine.Entity.OrderStateType.Activ; } if (OrdersUpdateEvent != null) { OrdersUpdateEvent(orderOsEngine); } } // = (sender, e) => Console.WriteLine($"OpenOrders received"); }