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

Выбор ордера или позиции с помощью OrderSelect()

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

Формат функции OrderSelect():

   bool    OrderSelect ( int index, int select, int pool=MODE_TRADES )

Как мы видим, функция возвращает значение логического типа: true - когда ордер или позиция были успешно выбраны, false - в случае какой-то ошибки. Код этой ошибки можно получить впоследствии с помощью функции GetLastError().

Ордер/позицию можно выбрать двумя способами:

  1. по номеру тикера;
  2. по порядковому номеру ордера/позиции в списке.

Если Вы знаете тикер ордера или позиции, то в качестве параметра select надо передать значение SELECT_BY_TICKET, а в качестве параметра index - номер тикера ордера или позиции. Третий параметр в этом случае не используется и его можно опустить.

Пример выбора по тикеру:

   //---- выбираем ордер/позицию с тикером 77777
   if ( OrderSelect (77777, SELECT_BY_TICKET) == true) 
     Print("Ордер #77777 выбран успешно");
  else
    Print("OrderSelect() вернул ошибку - ",GetLastError());

Если Вы не знаете тикера, то существует другой способ выбрать ордер или позицию. Для этого Вам надо выбрать ордер или позицию из списка открытых позиций или неудаленных отложенных ордеров (значение параметра pool равно MODE_TRADES) или из списка закрытых позиций или удаленных ордеров (параметр pool равен MODE_HISTORY). В обоих случаях параметр select должен быть равен SELECT_BY_POS. В параметре index Вы должны указать порядковый номер этой позиции или ордера в списке открытых позиций или неудаленных отложенных ордеров (pool равен MODE_TRADES) или в списке закрытых позиций и удаленных отложенных ордеров (pool равен MODE_HISTORY).

Этот способ очень полезен, когда Вам нужно "пробежаться", например, по всем открытым позициям:

   int pos;
   int total = OrdersTotal();
   for ( pos = 0; pos<total; pos++ )
     {
       if (OrderSelect(pos, SELECT_BY_POS, MODE_TRADES) == true)
         {
           Print("Выбран ордер номер ", pos, " в списке открытых позиций");
           // делаем что-то с этой позицией
         }
       else
           Print("Ошибка ", GetLastError(), " при выборе ордера номер ", pos);
     }

В этом примере для нас новой является функция OrdersTotal(). Эта функция выводит количество открытых позиций и неудаленных отложенных ордеров. Ее, а также функцию HistoryTotal(), я рассмотрю в следующих выпусках.



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

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

Комментарии по теме "Выбор ордера или позиции с помощью OrderSelect()"

На ресурсе alladinsauna.ru Вы можете найти необходимую информацию о том, где находятся сауны, их описание с фотографиями, контактные сведения. Причины, по которым следует ходить в сауны. Сауна на Кутузовском. VIP сауна на Кольской 12 в Свиблово. Сауна на Алексеевской. Сауна на Севанке. Сауна "Сельга" на улице Краснодонская. Сауна "Арокан" на Кунцевской. Сауна на Пироговке. Сауна на Бауманской.
Новая VIP сауна "Щипок" на Серпуховской.

Разместите свой комментарий по теме "Выбор ордера или позиции с помощью OrderSelect()"

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



Размещение статьи "Выбор ордера или позиции с помощью OrderSelect()" на Вашем сайте

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

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

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

Журнал FOREX MAGAZINE:



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

Счетчики:

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

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

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


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