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

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".

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

Комментарии по теме "OrderLots() - количество лотов в выделенном ордере или позиции"

Здравствуйте Андрей.
В разделе OrderLots().
// и мы точно знаем, что это открытая позиция
if (OrderType() == OP_SELL)
Можно ли поставить меньше или равно?
С уважением Сергей.

Разместите свой комментарий по теме "OrderLots() - количество лотов в выделенном ордере или позиции"

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



Размещение статьи "OrderLots() - количество лотов в выделенном ордере или позиции" на Вашем сайте

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

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

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

Журнал FOREX MAGAZINE:



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

Счетчики:

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

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

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


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