Очень часто необходимо указать количество лотов открытой позиции или отложенного ордера. Самой простой вариант получить это значение это выделить позицию или ордер спомощью функции OrderSelect(), апотом вызвать функцию OrderLots().
double OrderLots()
Функция возвращает количество лотов ввыделенном ордере или позиции.
Как уже сказано, основное применение функции передать количество лотов вкачестве параметра вфункции OrderClose() иOrderModify().
Забегая вперед, расскажем оформате функции OrderClose():
bool OrderClose(int ticket, double lots, double price, int slippage, color Color=CLR_NONE)
Где:
- ticket тикер ордера или позиции;
- lots количество лотов для закрытия позиции;
- price цена закрытия;
- slippage значение максимального проскальзывания впунктах;
- color цвет стрелки закрытия награфике. Если параметр отсутствует или его значение равно CLR_NONE, тострелка награфике неотображается.
Как Вывидите, вкачестве второго параметра нам нужно передать вфункцию количество лотов. Самый простой способ сделать это получить количество лотов спомощью функции OrderLots():
// закрыть позицию с тикером 77777 по текущей цене
// предположим, что позиция уже выделена с помощью OrderSelect
// и мы точно знаем, что это открытая позиция
if (OrderType() == OP_SELL)
OrderClose(OrderTicket(), OrderLots(), Ask, 3);
else
OrderClose(OrderTicket(), OrderLots(), Bid, 3);
В этом примере нам встретились две предопределенные переменные типа double:
- Bid бид последней котировки потекущему инструменту (ккоторому прикреплен советник);
- Ask аск последней котировки потекущему инструменту.
Перейти к главе «
функция OrderExpiration()».