Скачать MetaTrader 5

Время работы советника. Подскажите.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Заведи свой торговый сигнал и подключи мониторинг счета!
MakarFX
555
MakarFX 2008.01.23 17:14 

Подскажите пожалуйста.

Хочу советнику задать ограниченое время работы.

типа: if(TimeCurrent()>= "Время:00:00 текущего дня" +360)

Как запросить у сервера 00:00 текущего дня в минутах?

Сергей Ковалев
2607
MakarFX
555
MakarFX 2008.01.23 18:21  


Это есть и в справочнике МетаЭдитора.

Мне надо не количество секунд, прошедших после 00:00 1 января 1970 года, которое каждый день новое.

И не время с начала работы работы советника.

Мне нужна постоянная величина определяющая 00:00 текущего дня.

Ihor Herasko
9064
Ihor Herasko 2008.01.23 18:22  
iTime(Symbol(), PERIOD_D1, 0)
Ihor Herasko
9064
Ihor Herasko 2008.01.23 18:25  
Но если вам необходимо именно работать в какой-то промежуток времени дня:

extern int  BeginHour = 10;
extern int  EndHour = 20;
 
 
if(Hour() >= BeginHour && Hour() < EndHour)
 {
  // можно работать
  }
Andy
483
Andy 2008.01.23 18:42  
MakarFX:


Это есть и в справочнике МетаЭдитора.

Мне надо не количество секунд, прошедших после 00:00 1 января 1970 года, которое каждый день новое.

И не время с начала работы работы советника.

Мне нужна постоянная величина определяющая 00:00 текущего дня.

>>>Мне нужна постоянная величина определяющая 00:00 текущего дня.

if (Minute()==0 && Hour()==0)
или
if (TimeHour(TimeCurrent())==0 && TimeMinute(TimeCurrent())==0)
Сергей Ковалев
2607
Сергей Ковалев 2008.01.23 18:46  
MakarFX писал (а):
Это есть и в справочнике МетаЭдитора.

Мне надо не количество секунд, прошедших после 00:00 1 января 1970 года, которое каждый день новое.

И не время с начала работы работы советника.

Мне нужна постоянная величина определяющая 00:00 текущего дня.

Это неправильный подход. Что, например, Вы будете делать, если Вам понадобится инициировать событие не в 00:00, а в 23:55 ? Такой постоянной величины уж точно нет. Любое событие нужно вычислять. В данном случае необходимо научиться пользоваться функциями даты и времени.

По указанной ссылке посмотрите пример timeevents.mq4. Там вычисляется нечто подобное.

MakarFX
555
MakarFX 2008.01.23 19:11  

Спасибо Всем большое!!!

extern int  BeginHour = 10;
extern int  EndHour = 20;
 
 
if(Hour() >= BeginHour && Hour() < EndHour)
 {
  // можно работать
  }
Это то, что надо
Andy
483
Andy 2008.01.23 19:45  
MakarFX:

Спасибо Всем большое!!!

extern int  BeginHour = 10;
extern int  EndHour = 20;
 
 
if(Hour() >= BeginHour && Hour() < EndHour)
 {
  // можно работать
  }
Это то, что надо
А так?
int work=1;    
if(DayOfWeek()==0 //воскресенье
   || DayOfWeek()==6 //суббота
   || DayOfYear()>357 //последние 8 дней в году
   || (Hour()<4 && DayOfWeek()==1) //понедельник до 4:00
   || (Hour()>14 && Hour()<17) //каждый день между 14:00 и 17:00
   || (Hour()==17 && Minute()<30)  //каждый день между 17:00 и 17:30
   ){ 
         work=0; 
          
     }
if(work==1){

}
Prival
4549
Prival 2008.01.23 20:06  
(Hour()<4 && DayOfWeek()==1) //понедельник до 11:00

вот тут вроде не до 11:00 (комент и код не соответсвуют), и если торговать USDGBP то ИХМО в 6:00 по гринвичу уже можно входить

.иможет вместо work=0 просто return

Andy
483
Andy 2008.01.23 20:37  
Prival:
(Hour()<4 && DayOfWeek()==1) //понедельник до 11:00

вот тут вроде не до 11:00 (комент и код не соответсвуют), и если торговать USDGBP то ИХМО в 6:00 по гринвичу уже можно входить

.иможет вместо work=0 просто return

1. А где у меня привязка к паре?
2. work - флаг (триггер) работы.
3. Всё это - лишь пример.
4. ЭТО РАБОТАЕТ (ПРОВЕРЕНО В ЖИВУЮ)!!!
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий