예제 #1
0
        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);
        }
예제 #2
0
 public void CancelAllOrders()
 {
     CurrentSession.Send(OKTradingRequest.CreateOrderMassStatusRequest());
     Thread.Sleep(500);
     foreach (var order in CurrentOrders)
     {
         CancelOrder(order);
     }
 }
예제 #3
0
        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);
        }
예제 #4
0
        /// <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());
        }