Формат функции 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».