Как заработать деньги. Проект сам себе финансист.
май 2011
пн вт ср чт пт сб вс
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Главная » » »

OrderExpiration() - дата истечения отложенного ордера

Перед тем, мы приступим к рассмотрению торговых функций для открытия/закрытия позиции или управления ордерами, хотелось бы рассказать о двух функциях: OrderExpiration() и OrderMagicNumber().

В данной статье будет рассказано о торговой функции OrderExpiration().

 datetime OrderExpiration() 

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

Если дата истечения не установлена (т. е. ордер может существовать бесконечное время, пока не исполнится или не будет удален), то OrderExpiration() вернет 0.

Для чего используется дата истечения отложенного ордера? Причин может быть множество. Например, довольно разумно удалять отложенные ордера в пятницу поздно вечером - перед закрытием недели.

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

 // вычислим 23:59:59 ближайшей пятницы datetime friday;
 datetime c_time; c_time = CurTime(); 
// в friday - дата и время на 00:00:00 текущего дня friday = c_tme-TimeHour(c_time)*60*60-TimeMinute(c_time)*60-TimeSeconds(c_time);
 // в friday - дата и время на 00:00:00 ближайшей пятницы friday = friday + (5-TimeDayOfWeek(c_time))*60*60*24; 
// в friday - дата и время на 23:59:59 ближайшей пятницы friday = friday + 23*60*60 + 59*60 + 59; 
// пробежимся по отложенным ордерам и изменим эксперацию int pos; for(pos=0; posOP_SELL)
{ // дата эксперации отсутствует? if (OrderExpiration()==0) 
// изменить дату эксперации OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), OrderTakeProfit(), friday); } } else Print("Ошибка ", GetLastError(), " при выборе ордера номер ", pos); } 

В этом коде есть несколько неизвестных нам функций:

  • Int TimeDayOfWeek(datetime date) - возвращает день недели (0-Воскресенье,1,2,3,4,5,6) для указанной даты;
  • Datetime CurTime() - время прихода последней котировки в виде количества секунд, прошедших после 00:00 1 января 1970 года;
  • Int TimeHour(datetime time) - возвращает порядковый номер часа для времени time;
  • Int TimeMinute(datetime time) - возвращает порядковый номер минуты для времени time;
  • Int TimeSeconds(datetime time) - возвращает количество секунд с начала минуты для времени time.

Например, для 02:16:05 среды функции TimeHour, TimeMinute и TimeSeconds вернут соответственно 2, 16 и 5. А функция TimeDayOfWeek вернет 3.

Мы помним, что значение типа datetime представляет собой количество секунд, прошедшее с 00:00 1 января 1970 года. Также мы помним, что в часе 60*60 секунд, а в минуте 60 секунд. Исходя из этого становится понятной наша логика получения в переменной friday даты и времени, которые соответствуют 23:59:59 ближайшей пятницы:

 // вычислим 23:59:59 ближайшей пятницы datetime friday; datetime c_time; c_time = CurTime(); 
// в friday - дата и время на 00:00:00 текущего дня friday = c_time-TimeHour(c_time)*60*60-TimeMinute(c_time)*60-TimeSeconds(c_time); 
// в friday - дата и время на 00:00:00 ближайшей пятницы friday = friday + (5-TimeDayOfWeek(c_time))*60*60*24; 
// в friday - дата и время на 23:59:59 ближайшей пятницы friday = friday + 23*60*60 + 59*60 + 59; 

В следующей статье будет рассказано о функции OrderMagicNumber().



Автор статьи: Андрей Ведихин

Хомячковый рай. Уйти и потеряться:

Комментарии к этой заметке больше не принимаются.




Есть что сказать? Не стесняйтесь!






Последние статьи:

Выгодные «исламские счета» для трейдеров Форекс Выгодные «исламские счета» для трейдеров Форекс Таким образом, вне зависимости от стиля работы стоит использовать «исламские счета» и сотрудничать с компаниями, которые не берут с трейдеров swap-комиссии. ..
2014-09-29
Стоит ли покупать чужие торговые сигналы и прогнозы? Стоит ли покупать чужие торговые сигналы и прогнозы? И все же основным нашим советом станет отказ от покупки торговых сигналов и прогнозов. Куда лучше научиться анализировать валютный рынок и думать всегда только своей головой. ..
2015-02-12

Видео по теме:




В мире больших денег

  • Самые богатые люди
    планеты. Ежегодные рейтинги FORBS. Истории успеха признаных финансовых гуру
  • Самые дорогие вещи:
    Часы, автомобили, ноутбуки стоимотью в десятки и сотни тысяч долларов. Рубрика "Чтоб я так жил"
  • Денежные прогнозы
    Что покупать и что продавать? Периодические прогнозы цен на иностранные валюты, акции крупнейших компаний и драгоценные металлы

ВКонтакте с деньгами

УГОЛОК АДМИНИСТРАТОРА