« Предыдущий пост | На главную страницу | Следующий пост »

Получение типа ордера с помощью OrderType()

В прошлых выпусках мы научились получать информацию о выделенном с помощью функции OrderSelect() ордере или позиции:

В этом выпуске я расскажу о функции OrderType().

   int OrderType()

Функция OrderType() возвращает значение, которое определяет тип операции ордера, который предварительно выбран с помощью OrderSelect():

  • OP_BUY - позиция на покупку,
  • OP_SELL - позиция на продажу,
  • OP_BUYLIMIT - отложенный ордер Buy Limit,
  • OP_BUYSTOP - отложенный ордер Buy Stop,
  • OP_SELLLIMIT - отложенный ордер Sell Limit,
  • OP_SELLSTOP - отложенный ордер Sell Stop.

В предыдущем выпуске я поместил пример, которые определял, как была закрыта позиция - по Stop Loss ордеру или по Take Profit. Вместе с тем в этом примере есть небольшая ошибка: если выделенный ордер является отложенным ордером, то этот кусочек кода будет ошибочно считать, что позиция закрылась по Take Profit. Изменим наш пример, чтобы исключить эту ошибку:

   //---- выбираем ордер/позицию с тикером 77777
   if ( OrderSelect (77777, SELECT_BY_TICKET) == true) 
     {
       if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))
         {
           // позиция выбрана успешно
           if ( ((OrderClosePrice() <= OrderStopLoss()) && (OrderType() == OP_BUY)) || 
                ((OrderClosePrice() >= OrderStopLoss()) && (OrderType() == OP_SELL)) )
              {
                 // позиция закрылась по Stop Loss
                 // ...
              }
           else
              {
                 // позиция закрылась по Take Profit
                 // ...
              }
         }
       else
         Print("Ошибка: это не закрытая позиция, а отложенный ордер");
     }
  else
    Print("OrderSelect() вернул ошибку - ",GetLastError());

Путем добавления дополнительной проверки, нам удастся отделить закрытые позиции от отложенных ордеров:

   if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))

Наш исправленный пример все равно имеет несколько недостатков. Один из них - неправильная работа, если была выделена открытая позиция, а не закрытая. Как устранить этот недостаток я расскажу в следующем выпуске, который будет посвящен функции OrderCloseTime().



Все статьи по теме "Пишем советников для MetaTrader 4".

« Предыдущий пост | На главную страницу | Следующий пост »

Комментарии по теме "Получение типа ордера с помощью OrderType()"

Здраствуйте Андрей! Пытаюсь модернизировать советник, мне необходимо получить число открытых ордеров на продужу и покупку по отдельносте а не общее число ордеров. Кто может подсказать как это можно реализовать.
Пробовал этот код но ничего не вышло:
int buy=0;
int sell=0;
bool flag=false;
int t=OrdersTotal();
int i=0;
while(i==t){
i++;
OrderSelect(i,SELECT_BY_POS);
if (OrderType()==OP_SELL)sell++);

}
if (sell

if(sell==0)flag=false;

if(flag==true){ OpenSell()}
За ранее спасибо!

Разместите свой комментарий по теме "Получение типа ордера с помощью OrderType()"

Подписаться на мою рассылку



Размещение статьи "Получение типа ордера с помощью OrderType()" на Вашем сайте

Размещение статьи "Получение типа ордера с помощью OrderType()" на Вашем сайте возможно при условии выполнениия следующих условий:

  • Запрещается изменение оригинального текста без согласия автора - Андрея Ведихина.
  • Должен быть указан первоисточник. В случае публикации в интернете Вы должны разместить следующий код гиперссылки без изменений:
  • Запрещается коммерческое использование материалов, взятых с блога "Интернет-трейдинг на форекс / forex". Доступ к ним должен быть свободным, без взимания какой-либо платы, без обязательной регистрации и/или заполнения опросного листа (анкеты) и т.д.

В случае выполнения данных условий не требуется согласия автора блога "Интернет-трейдинг на форекс / forex" на размещение статьи "Получение типа ордера с помощью OrderType()" на Вашем сайте.

Журнал FOREX MAGAZINE:



Архив номеров FOREX MAGAZINE
Котировки Forex:

Счетчики:

Авторские права © 2005-2006 Андрей Ведихин

Условия использования материалов блога "Интернет-трейдинг на форекс / forex"

Контакты с автором:


Движок сайта:
Movable Type 3.31