OrderLots() - количество лотов в выделенном ордере или позиции
В последующих функциях мы рассмотрим торговые функции, с помощью которых можно открывать/закрывать позиции, размещать/модифицировать и удалять ордера:
- OrderClose()
- OrderCloseBy()
- OrderDelete()
- OrderModify()
- OrderSend()
Очень часто необходимо указать количество лотов открытой позиции или отложенного ордера. Самой простой вариант получить это значение - это выделить позицию или ордер с помощью функции 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 - аск последней котировки по текущему инструменту.
В следующем выпуске я продолжу рассмотрение торговых функций.
Все статьи по теме "Пишем советников для MetaTrader 4".
- Механическая торговая система - миф или реальность?
- С чего начать при написании советника:
- Создаем нового советника - Настраиваем параметры. - Язык MetaQuotes Language 4:
Комментарии по теме "OrderLots() - количество лотов в выделенном ордере или позиции"
Здравствуйте Андрей.
В разделе OrderLots().
// и мы точно знаем, что это открытая позиция
if (OrderType() == OP_SELL)
Можно ли поставить меньше или равно?
С уважением Сергей.
Автор: Сергей | 31.08.2007 14:28