Как соглосовать переменные по времени?

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

вот две переменные

double A=iLow("NZDUSD",PERIOD_M1,0);
double B=iLow("EURUSD",PERIOD_M1,0);

как их соглосовать по времени, допустим по NZDUSD в 12.00 был тик, а по EURUSD не было, значение по EURUSD будет за 11.59, как сделать, что бы время баров согласовывалось???
 

Накак.
Но можно написать код, который принимал бы во внимание возможность небольшого рассогласования по времени.

 

а никак нельзя узнать время последнего тика?

 

<<а никак нельзя узнать время последнего тика?>>

int start() // expert (indicator) start function
{
static datetime tick_time;
// ...
tick_time = CurTime();
Comment(TimeHour(tick_time), ":", TimeMinute(tick_time), ":", TimeSeconds(tick_time)); // optionally
// ...
return(0);
}

Переменная tick_time будет содержать время прихода последнего тика (в формате datetime) c точностью до секунд.

 
попробуй воткни это: RefreshRates(); Будет обновление всех котировок, и незачем вылавливать время. .
 
alexjou писал (а):

<<а никак нельзя узнать время последнего тика?>>

int start() // expert (indicator) start function
{
static datetime tick_time;
// ...
tick_time = CurTime();
Comment(TimeHour(tick_time), ":", TimeMinute(tick_time), ":", TimeSeconds(tick_time)); // optionally
// ...
return(0);
}

Переменная tick_time будет содержать время прихода последнего тика (в формате datetime) c точностью до секунд.


Это будет время для инструмента на котором запущен советник, а если советник работает и с другими парами, их время тика нельзя узнать?, хотелось бы, что то типа, если совпадение в минутах по тикам у 3х пар, тогда ордер открывается/закрывается 
 
MarketInfo(symbol_name,MODE_TIME) отдаёт время прихода последней котировки по указанному (symbol_name) инструменту
 
stringo писал (а):
MarketInfo(symbol_name,MODE_TIME) отдаёт время прихода последней котировки по указанному (symbol_name) инструменту

а в каком формате приходит значение?

как из него выделить только минуты?
 
В таком виде будет работать???



double EU=MarketInfo("EURUSD",MODE_TIME);
double NU=MarketInfo("NZDUSD",MODE_TIME);
double EN=MarketInfo("EURNZD",MODE_TIME);
datetime tm1 = CurTime();
    if (TimeMinute(tm1) == TimeMinute(EU) == TimeMinute(NU) == TimeMinute(EN))
 


Все времена - в секундах от 1 января 1970 года.

В таком виде не будет работать. Примерно так:

   datetime EU =MarketInfo("EURUSD",MODE_TIME);
   datetime NU =MarketInfo("NZDUSD",MODE_TIME);
   datetime EN =MarketInfo("EURNZD",MODE_TIME);
   datetime tm1=CurTime();
   int      cur_minute=TimeMinute(tm1);
   if(cur_minute==TimeMinute(EU) && cur_minute==TimeMinute(NU) && cur_minute==TimeMinute(EN))
     {
     }


Но если Вы хотите оценить "одновременность" в минутах, то быстрее использовать time/60 (при этом переменная time должна быть целого типа, например datetime)

 

Не могли бы вы показать, как сделать с time/60, с этим кодом в тестере вообще ерунда получается

Причина обращения: