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

OrderStopLoss() - цена закрытия выделенного ордера или позиции

В прошлом выпуске, рассказывая о функции OrderClosePrice(), я рассмотрел пример, как определить по какому ордеру (Stop Loss или Take Profit) была закрыта позиция, если точно известно, что она была закрыта по ордеру.

В этом примере была использована функция OrderStopLoss(). Из названия абсолютно понятно ее предназначение, но лучше все-таки остановиться на ней поподробнее.

Для того, чтобы изучение функции OrderStopLoss() стало не просто скучным теоретическим описанием, попробуем слегка изменить прошлый пример, чтобы получить максимум практической пользы.

Прошлый наш пример работал только в тех случаях, когда Stop Loss был сработан без проскальзывания. Изменим немного наш код:

   //---- выбираем ордер/позицию с тикером 77777
   if ( OrderSelect (77777, SELECT_BY_TICKET) == true) 
     {
       // позиция выбрана успешно
       if ( ((OrderClosePrice() <= OrderStopLoss()) && (OrderType() == OP_BUY)) || 
            ((OrderClosePrice() >= OrderStopLoss()) && (OrderType() == OP_SELL)) )
          {
             // позиция закрылась по Stop Loss
             // ...
          }
       else
          {
             // позиция закрылась по Take Profit
             // ...
          }
     }
  else
    Print("OrderSelect() вернул ошибку - ",GetLastError());

Этот пример базируется на том, что:

  • Если позиция была на покупку (условие OrderType() == OP_BUY истинно), то Stop Loss сработает или по цене ордера, или хуже, т.е. ниже: (OrderClosePrice() <= OrderStopLoss()).

  • Если позиция была на продажу (условие OrderType() == OP_SELL истинно), то Stop Loss сработает или по цене ордера, или хуже, т.е. выше: (OrderClosePrice() >= OrderStopLoss()).

Таким образом, в любом из этих случаех мы можем быть уверены, что позиция закрылась по Stop Loss ордеру.

В нашем примере мы опять столкнулись с незнакомой функцией - OrderType(). Забегая вперед, скажу, что эта функция возвращает тип ордера, но более подробно я хотел бы рассмотреть ее в следующем выпуске.



Все статьи по теме "Пишем советников для MetaTrader 4".

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

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

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



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

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

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

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

Журнал FOREX MAGAZINE:



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

Счетчики:

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

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

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


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