Скачать MetaTrader 5

Запуск функций в определенное время

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Novichok1988
65
Novichok1988  

С запуском по времени не получается, пробую с учебника сделать совершение операции по времени, вроде всё правильно но советник не активный, например необходимо запустить функцию в 12.00

extern double Time_Cls=12.00;

int start()
{
int Cur_Hour=Hour();
double Cur_Min =Minute();
double Cur_time=Cur_Hour + Cur_Min100;
if (Cur_time==Time_Cls)
//моя функция
return;
}

Vadim Zhunko
5231
Vadim Zhunko  

Вы пробывали это скомпилировать? Это не должно компилироваться. Ошибка есть.

Я бы так сделал:

extern datetime Time = D'2012.01.01 12:34'; 

 void start() 
  {
   if (TimeLocal() != Time) return;
   //мой код...
  }
По моему, так проще.
Alexey Navoykov
4265
Alexey Navoykov  
Зацикливать нужно советник, чтобы не зависеть от прихода тиков.
Vladimir Gomonov
8298
Vladimir Gomonov  
Zhunko:

Я бы так сделал:

По моему, так проще.


Будет запустаться на каждом тике между
D'2012.01.01 12:34:00'  и  D'2012.01.01 12:34:59'
Поэтому без дополнительного триггера не обойтись. Не буду до конца разжёвывать, дабы не отнимать радость творчеста.
Vadim Zhunko
5231
Vadim Zhunko  
MetaDriver:
Будет запустаться на каждом тике между
Поэтому без дополнительного триггера не обойтись. Не буду до конца разжёвывать, дабы не отнимать радость творчеста.
Да, конечно, нужно. Это простая замена кода топика.
Novichok1988
65
Novichok1988  
Zhunko:


Не компилируется терминалом, и при таком коде если и запуститься то только один раз 2012,01,01, а как можно сделать чтобы не опираться в коде на дату, а только на время и чтобы компилировалось конечно =)

И как вообще, понять где ошибка в пшп и дельфях пишет в какой строчке ошибка, а тут ваще пипец...

Novichok1988
65
Novichok1988  
MetaDriver:
Будет запустаться на каждом тике между
Поэтому без дополнительного триггера не обойтись. Не буду до конца разжёвывать, дабы не отнимать радость творчеста.


это понятно, поставить флажок и всё, но вот не компилируется
Vadim Zhunko
5231
Vadim Zhunko  

Так можно:

extern datetime Time = D'1970.01.01 12:00'; 

 void start() 
  {
   if (TimeLocal() % Time != 0) return;
   //мой код...
  }
И всё равно, нужна дополнительная переменная-триггер, чтобы по несколько раз не выполнялся код в течении дискрета времени.
Novichok1988
65
Novichok1988  
Zhunko:


И всё равно, нужна дополнительная переменная-триггер, чтобы по несколько раз не выполнялся код в течении дискрета времени.

И все равно не работает советник не активный при запуске с таким кодом

extern datetime Time = D'1970.01.01 12:00'; 

void start() 
  {
   if (TimeLocal() % Time != 0) return;
Alert(TimeLocal());
  }
Vadim Zhunko
5231
Vadim Zhunko  
Сегодня нет тиков. Советники без специальных средств не работают.
Vladislav Andruschenko
98084
Vladislav Andruschenko  
если в инит поставить start(); пофиг на тики
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий