Странные сообщения об ошибках :-/

 
При работе эксперта или скрипта когда я хочу вывести информацию об ошибке в текстовом виде я получаю вместо одной нормальной строки описания кучу разных дублирующих друг друга строк например:

#include <stdlib.mqh>

....

OrderHandle = OrderSend(Symbol(), OP_SELL, LotSize, Bid, 3, sl, tp, "", 0, 0, Green);
if (OrderHandle < 0)
Alert(ErrorDescription(GetLastError()));

при неправильном стопе выдавала окно с 14! строками
invalid parameters...
invalid stop loss
invalid stop loss
invalid function parameter value
.... 9 повторений
invalid function parameter value

Как с такими сообщениями об ошибках вообще можно работать??
 
А также просьба к разработчикам откомментировать правильность кода открытия ордера, хочется чтобы он подождал если контекст занят, обновил котировки если нужно и окрыл ордер железно.

//---------------------------------------------------------------------
// send sell order
//---------------------------------------------------------------------
int Sell(double LotSize, int StopLoss, int TakeProfit)
  {
    int i, OrderHandle;
    double sl, tp;
 
    // wait for trade to be allowed if trade context is busy for 30 seconds
    i = 0;
    while ((i < 300) && !(IsTradeAllowed())) 
      {
        Sleep(100);
        i++;
      }
     
    // refresh rates (if delay is bigger than 1/2 sec)
    if (i > 5) RefreshRates(); 
 
    // get stop loss/take profit
    if (StopLoss == 0) sl = 0; else sl = Bid + StopLoss*Point;
    if (TakeProfit == 0) tp = 0; else tp = Bid - TakeProfit*Point;
    
    // send order
    OrderHandle = OrderSend(Symbol(), OP_SELL, LotSize, Bid, 3, sl, tp, "", 0, 0, Green);
    if (OrderHandle < 0) 
      Alert(ErrorDescription(GetLastError()));
         
    return(OrderHandle);
  }
 
Ха, по первому вопросу я допер в чем дело - функция Alert возвращает описание всех! произошедших ошибок с момента открытия метатрейдера, нафиг только такое счастье надо непонятно... Как можно сбросить этот список чтобы выдавать описание только последней ошибки?
 
Ха, по первому вопросу я допер в чем дело - функция Alert возвращает описание всех! произошедших ошибок с момента открытия метатрейдера, нафиг только такое счастье надо непонятно... Как можно сбросить этот список чтобы выдавать описание только последней ошибки?

Окно всплывает с последней ошибкой, а история себе хранится... Там, кстати время пишется ;)
 
История пусть в журнале хранится а мне нужно просто сообщение о последней ошибке. Как во всех нормальных программах.