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

 

С запуском по времени не получается, пробую с учебника сделать совершение операции по времени, вроде всё правильно но советник не активный, например необходимо запустить функцию в 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;
}

 

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

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

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

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

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

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


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


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

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

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


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

Так можно:

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

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


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

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

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

void start() 
  {
   if (TimeLocal() % Time != 0) return;
Alert(TimeLocal());
  }
 
Сегодня нет тиков. Советники без специальных средств не работают.
 
если в инит поставить start(); пофиг на тики