команды по времени

 

Добрый день!

Можно ли в советнике реализовать выполнение команд по времени?

Например ежедневно в 24:00

Дмитрий?

 
dimmi2000:

Добрый день!

Можно ли в советнике реализовать выполнение команд по времени?

Например ежедневно в 24:00

Дмитрий?


Можно
 
Vinin:

Можно

Обсудим идею плиз?
 

Достаточно воспользоваться поиском

 

А что Вы хотели обсудить?

 
Vinin:

А что Вы хотели обсудить?

Две ночи не сплю "пока не родил" . ситуация такая сгенерирован сигнал - если до 00:00 часов он не исполниться (профит) и не отстопиться (лось) -он должен быть удален именно в это время тк на сл день будут генериться новые сигналы . Можно конечно работать в полуавтомате но хотелось бы робота на ночь .

По времени все уже зациклил но дальше никак

d1=StrToTime("17.06.2010 23:59"); // время закрытия 17.06 в сек
d2=StrToTime("18.06.2010 00:00"); // время открытия 18.06 в сек


int d4; // последнее время сервера в секундах
int R1; // разница в днях
int R2; // разница в днях


d4 = TimeCurrent(); // посл время сервера
R1 = (d4-d1)/86400;
R2 = (d4-d2)/86400;


d1 = d1 + (86400 * R1)- (86400 * 0); // -(86400 * 0 -ДЛЯ РАСЧЕТА ИСТОРИИ (ставить колво дней назад до требуемой даты вместо 0)
d2 = d2 + (86400 * R2)- (86400 * 0); // -(86400 * 0 -ДЛЯ РАСЧЕТА ИСТОРИИ (ставить колво дней назад до требуемой даты вместо 0)


double NZ1, NZ2; // Номер бара

NZ1=iBarShift("EURUSD",0,d1); //Определяем номер бара по времени
ZAKR1=iClose("EURUSD",0,NZ1);

NZ2=iBarShift("EURUSD",0,d2); //Определяем номер бара по времени
OP=iOpen("EURUSD",0,NZ2);

 

Можно сделать, что в 23:55 все сделки будут закрыты, независимо от того прибыльны они или убыточны.

 

со сделками проблем нет есть проблема с правильной работой по генерации сигналов которые не удаляются

Видимо буду по тупому от опена отнимать константу и когда результат измениться наступит час икс))

 
dimmi2000:

со сделками проблем нет есть проблема с правильной работой по генерации сигналов которые не удаляются

Видимо буду по тупому от опена отнимать константу и когда результат измениться наступит час икс))


Сделал небольшую функцию для контроля

extern int MinutePause=5;

bool Rollover(){
   int d2=TimeCurrent();

   int d3=iTime(NULL,PERIOD_D1,0)+24*60*60;
   
   int d1=d3-MinutePause*60;
   
//   Print ("d1=",TimeToStr(d1, TIME_DATE|TIME_SECONDS));
//   Print ("d2=",TimeToStr(d2, TIME_DATE|TIME_SECONDS));
//   Print ("d3=",TimeToStr(d3, TIME_DATE|TIME_SECONDS));
   if ((d3-d2)*(d2-d1)>0) return(true);
   return(false);

}
 

Спасибо! Это именно то что нужно ..я копал в направлении ..iTime, но не хватило практики применения этой функции).

С уважением Дмитрий

 

Немного упростим функцию

extern int MinutePause=5;

bool Rollover(){
   int d2=TimeCurrent();

   int d1=iTime(NULL,PERIOD_D1,0)+24*60*60-MinutePause*60;
   
   if (d2>d1) return(true);
   return(false);
}
Причина обращения: