В предыдущей статье был приведен полный перечень торговых функций, которые можно использовать в эксперте. Как Вы уже, наверное, успели заметить, подавляющее большинство этих функций позволяет получить какую-то информацию об ордере или позиции, которые были предварительно выбраны с помощью функции OrderSelect().
Формат функции OrderSelect():
bool OrderSelect ( int index, int select, int pool=MODE_TRADES )
Как мы видим, функция возвращает значение логического типа: true - когда ордер или позиция были успешно выбраны, false - в случае какой-то ошибки. Код этой ошибки можно получить впоследствии с помощью функции GetLastError().
Ордер/позицию можно выбрать двумя способами:
Если Вы знаете тикер ордера или позиции, то в качестве параметра 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
В этом примере для нас новой является функция OrdersTotal(). Эта функция выводит количество открытых позиций и неудаленных отложенных ордеров. Ее, а также функцию HistoryTotal(), будет рассмотрен в следующих выпусках.
Есть что сказать? Не стесняйтесь!
Последние статьи:
Видео по теме:
УГОЛОК АДМИНИСТРАТОРА