Пятница, 25.07.2025, 04:20 Вы вошли как Гость | Группа "Гости" | RSS | Главная | функция OrderCloseTime. | Мой профиль | Выход | Вход
» Меню сайта

» РАЗНОЕ

» Календарь
«  Июль 2025  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031

функция OrderCloseTime.

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

 

 datetime OrderCloseTime()



 

Функцию можно вызвать после того, как ордер или позиция были предварительно выбраны с помощью функции OrderSelect().

Возвращает дату и время закрытия позиции или ордера:

  • Если позиция открыта, то возвращает 0 (ноль).
  • Если позиция закрыта, то возвращает дату и время закрытия позиции.
  • Если отложенный ордер удален, то возвращает дату и время удаления ордера.
  • Если отложенный ордер еще не удален, то возвращает 0 (ноль).

Исходя из этих правил нам надо проверить время закрытия выделенной позиции. Если оно равно нулю, то это открытая позиция и нам надо сообщить об ошибке:

 

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


 

То, что это не может быть отложенный ордер, мы уже проверили (см. прошлый выпуск).

Теперь наш пример по определению типа ордера, по которому была закрыта позиция, стал содержать на одну ошибку меньше, но по-прежнему остается небезгрешным. Мы почему-то с первых строчек кода безусловно верим в тот факт, что позиция закрыта именно по Stop Loss или Take Profit ордера. А если нет?

» Поиск


гороскоп
» Мини-чат

» Наш опрос
Оцените мой сайт
Всего ответов: 46

» Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • » Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0


    Copyright MyCorp © 2025
    Бесплатный хостинг uCoz