Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 405

 
Подскажите пожалуйста, как получить время открытия следующего бара для текущего таймфрейма? Пробовал делать
Time[1]+2*PERIOD_CURRENT, но он выдаёт херню...
Насколько я понимаю Time даёт время в минутах с 1970?
 
RomanRott:
Подскажите пожалуйста, как получить время открытия следующего бара для текущего таймфрейма? Пробовал делать
Time[1]+2*PERIOD_CURRENT, но он выдаёт херню...
Насколько я понимаю Time даёт время в минутах с 1970?

В секундах время, с учетом этих знаний поправьте формулу свою.

 
Aleksey Vyazmikin:

В секундах время, с учетом этих знаний поправьте формулу свою.

Блин, то есть через PERIOD_... просто в одну строчку не получится сделать
 
RomanRott:
Подскажите пожалуйста, как получить время открытия следующего бара для текущего таймфрейма? Пробовал делать
Time[1]+2*PERIOD_CURRENT, но он выдаёт херню...
Насколько я понимаю Time даёт время в минутах с 1970?

Попробуйте Alert(Time[0]+_Period*60);     PERIOD_CURRENT - это 0, ноль, пустое место, условное обозначение таймфрейма используемого графика

 
RomanRott:
Подскажите пожалуйста, как получить время открытия следующего бара для текущего таймфрейма? Пробовал делать
Time[1]+2*PERIOD_CURRENT, но он выдаёт херню...
Насколько я понимаю Time даёт время в минутах с 1970?
Time[0]+PeriodSeconds();
 
RomanRott:
Блин, то есть через PERIOD_... просто в одну строчку не получится сделать

  datetime time0 = Time[0]; 
   datetime time1 = Time[0]+PeriodSeconds(0)*1;   //1 = нужное кол. баров в будущее
   
  Comment("Время открытия тек. бара = ",time0,
  "\n","Время открытия след. бара(в будущее) = ",time1 );

Как то так


опс)))  опередили

 
Artyom Trishkin:
Time[0]+PeriodSeconds();
Да, спасибо!
 
RomanRott:
Да, спасибо!

Не за что.

Мультиплатформенный код:

void OnTick()
  {
   ENUM_TIMEFRAMES timeframe=PERIOD_CURRENT;    // Таймфрейм графика (текущий, можно задать нужный)
   string   symbol=Symbol();                    // Символ графика
   datetime time_open_curr=0;                   // Время открытия текущего бара
   datetime time_open_next=0;                   // Время открытия следующего бара
   int      number_next_bar=1;                  // На сколько баров в будущее рассчитывать время
   //---
   time_open_curr=TimeOpen(symbol,timeframe,0); // Здесь 0 - текущий бар заданного графика
   //--- Если получили время текущего бара, рассчитаем время следующего
   if(time_open_curr>0)
      time_open_next=time_open_curr+PeriodSeconds(timeframe)*number_next_bar;
  }
//+------------------------------------------------------------------+
//| Возвращает время открытия бара shift                             |
//| периода графика timeframe                                        |
//| на символе symbol_name                                           |
//+------------------------------------------------------------------+
datetime TimeOpen(string symbol_name,ENUM_TIMEFRAMES timeframe,int shift)
  {
   datetime array[]={0};
   if(CopyTime(symbol_name,timeframe,shift,1,array)==1) return array[0];
   return 0;
  }
//+------------------------------------------------------------------+
 

как записывать функцию с переменным числом параметров?

 
RomanRott:

как записывать функцию с переменным числом параметров?

Например?

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