Накак.
Но можно написать код, который принимал бы во внимание возможность
небольшого рассогласования по времени.
а никак нельзя узнать время последнего тика?
<<а никак нельзя узнать время последнего тика?>>
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 точностью до секунд.
<<а никак нельзя узнать время последнего тика?>>
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) инструменту
а в каком формате приходит значение?
как из него выделить только минуты?
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, с этим кодом в тестере вообще ерунда получается
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
вот две переменные
double A=iLow("NZDUSD",PERIOD_M1,0);
double B=iLow("EURUSD",PERIOD_M1,0);
как их соглосовать по времени, допустим по NZDUSD в 12.00 был тик, а по EURUSD не было, значение по EURUSD будет за 11.59, как сделать, что бы время баров согласовывалось???