MT5 Async order open/close
Here you can see how to send trade request without waiting of execution.
static void async() { var api = new MT5API("45.76.194.231:443", 7371, "mt5api"); api.OnConnectStatus += ConnectionStatus; api.OnOrderProgress += Api_OnOrderProgress; api.Connect(); int id = api.GetId(); string symbol = "EURUSD"; api.Subscribe(symbol); while (api.GetQuote(symbol) == null) Thread.Sleep(1); api.OrderSendAsync(id, symbol, 100, api.GetQuote(symbol).Ask, OrderType.Buy, 0, 0, 0, null, 0); Console.WriteLine("requestID = " + id); } private static void Api_OnOrderProgress(MT5API api, int requestID, OrderProgress progress, Order order) { Console.WriteLine(requestID + " " + progress + " " + order); if(progress == OrderProgress.REQUEST_EXECUTED) if (order.ClosePrice > 0 || order.State == OrderState.Canceled) Console.WriteLine("Closed with profit " + order.Profit); else { int id = api.GetId(); Console.WriteLine(requestID + " opened at " + order.OpenPrice + " Ticket = " + order.Ticket + " closeRequestId = " + id); api.OrderCloseAsync(id, order.Ticket, order.Symbol, order.OpenPrice, order.Volume, order.OrderType); } }