public void CancelOrder(Order order, OrderOperationCallback callback = null) { OrderCancelCallback = callback; var request = OKTradingRequest.CreateOrderCancelRequest(order); CurrentSession.Send(request); Log.Write($"Cancel order {order.Volume} at {order.Price.ToString("N3")}", 1); }
public void CancelAllOrders() { CurrentSession.Send(OKTradingRequest.CreateOrderMassStatusRequest()); Thread.Sleep(500); foreach (var order in CurrentOrders) { CancelOrder(order); } }
public Order SubmitOrder(double price, double volume, char side, char type, OrderOperationCallback callback = null) { OrderSubmitCallback = callback; var request = OKTradingRequest.CreateNewOrderRequest(volume, price, side, type); CurrentSession.Send(request); var order = new Order() { Price = price, Volume = volume, Side = side, OrderType = type, ClientOrderID = request.GetInt(Tags.ClOrdID), Time = request.GetDateTime(Tags.TransactTime) }; Log.Write($"Submit {order}", 2); return(order); }
/// <summary> /// CALLBACK: successful logon /// </summary> /// <param name="sessionID"></param> public void OnLogon(SessionID sessionID) { Log.Write("===== Client logon =====", 3); while (CurrentSession == null) { CurrentSession = Session.LookupSession(sessionID); } if (TrackOrderBook) { CurrentSession.Send(OKMarketDataRequest.CreateOrderBookRequest(10)); } if (TrackLiveTrade) { CurrentSession.Send(OKMarketDataRequest.CreateLiveTradesRequest()); } // Fetch user info CurrentSession.Send(OKTradingRequest.CreateUserAccountRequest()); }