проблема с использованием ф-ции OrderModify

 
Пробую написать простой эксперт с использованием trailing stop . Когда пересчитываю новое значение для stoploss и замещаю в програме вызов ф-ции OrderModify то при компиляции получаю ошибку ')' - wrong parameters count C:\Program Files\meta trade\experts\proba1.mq4 (79, 40)

указывающую на закрытую скобку ")" в этой ф-цие. В моменте исключения из кода вызова этой ф-ции компиляция проходит успешно. Так выглядит оператор вызова : OrderModify(mb,op,msl,0);

Буду весьма благодарен за каждую подсказку где можна искать проблему.

 
bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE)
Изменяет параметры ранее открытых позиций или отложенных ордеров. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Замечания: цену открытия и время истечения можно изменять только у отложенных ордеров.
Если в качестве параметров функции передать неизмененные значения, то в этом случае будет сгенерирована ошибка 1 (ERR_NO_RESULT).
На некоторых торговых серверах может быть установлен запрет на применение срока истечения отложенных ордеров. В этом случае при попытке задать ненулевое значение в параметре expiration будет сгенерирована ошибка 147 (ERR_TRADE_EXPIRATION_DENIED).
Параметры:
ticket - Уникальный порядковый номер ордера.
price - Новая цена открытия отложенного ордера.
stoploss - Новое значение StopLoss.
takeprofit - Новое значение TakeProfit.
expiration - Время истечения отложенного ордера.
arrow_color - Цвет стрелок модификации StopLoss и/или TakeProfit на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелки на графике не отображаются.
Пример:
  if(TrailingStop>0)
    {
     OrderSelect(12345,SELECT_BY_TICKET);
     if(Bid-OrderOpenPrice()>Point*TrailingStop)
       {
        if(OrderStopLoss()<Bid-Point*TrailingStop)
          {
           OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Blue);
           return(0);
          }
       }
    }

Количество обязательных параметров равно 5, а не 4. Но лучше параметры по умолчанию не использовать.

 
Vinin:
bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE)
Изменяет параметры ранее открытых позиций или отложенных ордеров. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Замечания: цену открытия и время истечения можно изменять только у отложенных ордеров.
Если в качестве параметров функции передать неизмененные значения, то в этом случае будет сгенерирована ошибка 1 (ERR_NO_RESULT).
На некоторых торговых серверах может быть установлен запрет на применение срока истечения отложенных ордеров. В этом случае при попытке задать ненулевое значение в параметре expiration будет сгенерирована ошибка 147 (ERR_TRADE_EXPIRATION_DENIED).
Параметры:
ticket - Уникальный порядковый номер ордера.
price - Новая цена открытия отложенного ордера.
stoploss - Новое значение StopLoss.
takeprofit - Новое значение TakeProfit.
expiration - Время истечения отложенного ордера.
arrow_color - Цвет стрелок модификации StopLoss и/или TakeProfit на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелки на графике не отображаются.
Пример:
  if(TrailingStop>0)
{
OrderSelect(12345,SELECT_BY_TICKET);
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Blue);
return(0);
}
}
}

Количество обязательных параметров равно 5, а не 4. Но лучше параметры по умолчанию не использовать.

спасибо огромное, был уверен что 5-й параметр важен только для отложенных ордеров, а для открытых отсутствует

Причина обращения: