Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 865

Vladimir Karputov:

Указываете номер бара, имя символа и нужный таймфрейм:

Проверяете (на всякий случай) - если возвратила функция время D'1970.01.01 00:00:00' - значит ошибка.

Я использую эту функцию, она хуже предложенной Вами?

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
datetime iTime(string symbol,int tf,int index)
  {
   if(index < 0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[];
   if(CopyTime(symbol,timeframe,index,1,Arr)>0)
      return(Arr[0]);
   else return(-1);
  }

Проблема в том, что если у меня текущий тайм фрейм 1 минута, я хочу узнать номер последнего бара текущего таймфрейма в выбранном тайм фрейме, но при этом прошло уже много времени (разрыв из-за выходных или из-за того что вечерняя сессия закрылась в 23-50, а открылась следующая только в 10-00), то возвращается 09:59 а не 23:49:00, запрашиваю время так

datetime         StopDt=iTime(Symbol(),TF_iDeltaP,_Shift-1)-60;

Поэтому и стал вопрос, как добыть это время последнего бара при любых комбинациях ТФ?

Aleksey Vyazmikin:

...

Проблема в том, что если у меня текущий тайм фрейм 1 минута, я хочу узнать номер последнего бара текущего таймфрейма в выбранном тайм фрейме, ...

На выделенной фразе мой мозг взорвался.

Vladimir Karputov:

На выделенной фразе мой мозг взорвался.

Там описка, мне нужна дата последнего бара текущего таймфрейма, который относится к выбранному бару верхнего таймфрейма.

Так понятно?
Aleksey Vyazmikin:

Там описка, мне нужна дата последнего бара текущего таймфрейма, который относится к выбранному бару верхнего таймфрейма.

Так понятно?

Нет, не понятно. Мозг продолжает бурлить и взрываться :). Один бар принадлежит только своему таймфрейму.

Aleksey Vyazmikin:

Там описка, мне нужна дата последнего бара текущего таймфрейма, который относится к выбранному бару верхнего таймфрейма.

Так понятно?

Если я правильно понял Ваш запрос, то:

1. Определите время закрытия нужного бара верхнего ТФ.

2. Вычислите время бара младшего ТФ, который завершается вместе с баром старшего ТФ.

3. По этому времени запросите бар младшего ТФ (запрос не строгий) - полУчите ближайший слева по временной шкале бар - тот что вам нужен.

4. Проконтролируйте, если необходимо, что данный бар находится внутри бара верхнего ТФ (исключить вариант, когда баров младшего ТФ внутри бара старшего ТФ вообще не оказалось по какой-то причине).

Vladimir Karputov:

Нет, не понятно. Мозг продолжает бурлить и взрываться :). Один бар принадлежит только своему таймфрейму.

Хорошо, переходим на визуализацию мыслей :)

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

Так понятней? Если нет, то прошу задавать уточняющие вопросы.

Aleksey Vyazmikin:

Хорошо, переходим на визуализацию мыслей :)

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

Так понятней? Если нет, то прошу задавать уточняющие вопросы.

1. Картинка малоквата - в следующий раз сразу ставьте 2 метра на два :)

2. Мысль снова не понял - Вы показали график на каком-то таймфрейме. Какая проблема запросить на этом таймфрейме бар номер N?

Vladimir Karputov:

1. Картинка малоквата - в следующий раз сразу ставьте 2 метра на два :)

2. Мысль снова не понял - Вы показали график на каком-то таймфрейме. Какая проблема запросить на этом таймфрейме бар номер N?

1. Могу и больше - не проблема ;)

2. Тайм фрейм указан в левом верхнем углу - M5. Я не могу запросить бар номер N так-как не знаю, как его точно узнать, особенно если сдвиг это не 1 бар верхнего ТФ, а больше баров.

Попробую для сдвига в один бар алгоритм такой:

1. Выяснить сколько прошло баров с начала текущего верхнего ТФ

2. Сдвинуть полученное число на 1 бар и узнать время через функцию iTime

Aleksey Vyazmikin:

Хорошо, переходим на визуализацию мыслей :)

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

Так понятней? Если нет, то прошу задавать уточняющие вопросы.

Алексей, постом выше вы делали запрос об ОБРАТНОЙ задаче..

"мне нужна дата последнего бара текущего таймфрейма, который относится к выбранному бару верхнего таймфрейма.

Так понятно?"

Поэтому трудно понять что Вам действительно нужно.

По предыдущему запросу - я ответил - https://www.mql5.com/ru/forum/6343/page869#comment_7537714.

Если по последнему "с визуализацией мыслей", то просто запросите время открытия бара верхнего ТФ со сдвигом 0.

Не совсем понятно - с чем возникла проблема?

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2018.05.23
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
Kirill Belousov:

Алексей, постом выше вы делали запрос об ОБРАТНОЙ задаче..

"мне нужна дата последнего бара текущего таймфрейма, который относится к выбранному бару верхнего таймфрейма.

Так понятно?"

Поэтому трудно понять что Вам действительно нужно.

По предыдущему запросу - я ответил - https://www.mql5.com/ru/forum/6343/page869#comment_7537714.

Если по последнему "с визуализацией мыслей", то просто запросите время открытия бара верхнего ТФ со сдвигом 0.

Не совсем понятно - с чем возникла проблема?

Извините, пропустил Ваш ответ.

Kirill Belousov:

Если я правильно понял Ваш запрос, то:

1. Определите время закрытия нужного бара верхнего ТФ.

Вот этого я и не могу сделать!

Kirill Belousov:

Если по последнему "с визуализацией мыслей", то просто запросите время открытия бара верхнего ТФ со сдвигом 0.

Не совсем понятно - с чем возникла проблема?

Если я так запрошу, то получаю 10:00, а мне нужно получить время 23:49!