Пятница, 03.05.2024, 23:15 Вы вошли как Гость | Группа "Гости" | RSS | Главная | функция OrderOpenTime. | Мой профиль | Выход | Вход
Вы смотрели фильм-расследование Алексея Навального "Дворец президента"?
Всего ответов: 2
» Меню сайта

» РАЗНОЕ

» Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

функция OrderOpenTime.

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

 datetime OrderOpenTime()



  • В случае отложенного ордера функция OrderOpenTime() возвращает дату и время выставления ордера.
  • В случае открытой или закрытой позиции функция возвращает дату и время открытия позиции.

Для того, чтобы определить, что позиция открыта сегодня, нам нужно знать значение типа datetime для сегодняшней даты в 00:00:00 часов.

В этом нам помогут четыре новых функции:

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

Мы помним, что значение типа datetime представляет собой количество секунд, прошедшее с 00:00 1 января 1970 года. Также мы помним, что в часе 60×60 секунд, а в минуте 60 секунд. Поэтому, зная текущее время (мы можем получить его с помощью CutTime), мы можем получить время текущего дня на 00:00:00 часов:

 

 int c_time = CurTime(); 
 datetime day_start;
 day_start=c_time-TimeHour(c_time)*60*60-TimeMinute(c_time)*60-TimeSeconds(c_time);


 

А полный код, который подсчитывает прибыль по всем закрытым позициям, которые открыты сегодня, будет таким:

 

 //---- вычислим начало дня - переменная day_start
 int c_time = CurTime(); 
 datetime day_start;
 day_start=c_time-TimeHour(c_time)*60*60-TimeMinute(c_time)*60-TimeSeconds(c_time);
 //---- подсчитаем прибыль
 int profit = 0;
 int pos;
 for ( pos = 0; pos<= OP_SELL) 
 {
 // ордер был открыт сегодня?
 if (OrderOpenTime()>=day_start) profit += OrderProfit();
 }
 }
 else
 Print("Ошибка ", GetLastError(), " при выделении ордера ", OrderTicket());
 }
 Print("Суммарный профит по закрытым позициям = ", profit);


 

» Поиск


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

» Наш опрос
Вы смотрели фильм-расследование Алексея Навального "Дворец президента"?
Всего ответов: 2

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

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

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


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