1_Да я пробовал использовать _iHighest, но оно ведь возвращает индекс наибольшего найденного значения (смещение относительно "текущего бара"). А я имею ввиду, вот выполнилось у меня определенное условие на i -том баре, это бар соответствует времени, допустим 10:00, вот тут и нужен мне максимум от _10:00 до конца дня _00:00. Если можете, хотя бы немного черканите, как? Как увязать iHighest High[] / Low[] про которые Вы говорили.
2_ iBarShift ведь возвращает индекс бара, в который попадает указанное время. Индекс одного бара. Я имел ввиду, нужно подсчитать сколько всего баров в истории(на графике), с определенным временем_12:00_13:00_14:00, и.т.д. iBars тоже не то.
1. На рассматриваемом Вами отрезке iHighest вернет некоторое значение, которое можно сохранить в переменной, скажем 'Index_Max'. Чтобы получить значение цены Вам надо будет совершить простую операцию => High[Index_Max].
Забудьте на время про то что что Вам надо запрограммировать, создайте небольшие примеры для каждого из случаев и на их основе изучите как это работает.
atztek: 1. На рассматриваемом Вами отрезке iHighest вернет некоторое значение, которое можно сохранить в переменной, скажем 'Index_Max'. Чтобы получить значение цены Вам надо будет совершить простую операцию => High[Index_Max].
2. iBarShift возвращает количество баров до указанного времени.
Забудьте на время про то что что Вам надо запрограммировать, создайте небольшие примеры для каждого из случаев и на их основе изучите как это работает.
" iBarShift - Поиск бара по времени. Функция возвращает индекс бара, в который попадает указанное время.
Возвращаемое значение - Индекс бара, в который попадает указанное время. Если для указанного времени бар отсутствует ("дыра" в истории), то функция возвращает -1 или индекс ближайшего бара. " ,
а не количество баров до указанного времени.
Да, примеры уже использую, но все не то. Разные функции пробовал. Попробую Ваш вариант. А как быть все-таки с подсчетом баров-времени? Как их со считать?
" iBarShift - Поиск бара по времени. Функция возвращает индекс бара, в который попадает указанное время.
Возвращаемое значение - Индекс бара, в который попадает указанное время. Если для указанного времени бар отсутствует ("дыра" в истории), то функция возвращает -1 или индекс ближайшего бара. " ,
а не количество баров до указанного времени.
Да, примеры уже использую, но все не то. Разные функции пробовал. Попробую Ваш вариант. А как быть все-таки с подсчетом баров-времени? Как их со считать?
Спасибо!
Вы правы, но зная индекс бара Вы можете узнать и их количество на участке, не так ли?
2_ это еще не все, простите за наглость, есть функция 'iBars'( Возвращает количество баров в истории по соответствующему символу и периоду). Подскажите пожалуйста, какой комбинацией функций можно подсчитать не только по соответствующему символу и периоду, но и сколько баров со временем скажем так,"12:00" или допустим "15:00" в истории(PERIOD_H1).
12:00 и\или 15:00 бывает только 1 раз в сутки. Соответственно если определить количество или номер последнего бара периода PERIOD_D1 то это и будет количество баров с временем 12:00 или любым другим временем.
Может на первый взгляд это не совсем понятно, но алгоритм примерно такой:
Определяем время старшего бара текущего периода с помощью Bars. datetime time = Time[Bars-1];
Определяем номер бара iBarShift(_Symbol, PERIOD_D1, time, false);
Как определить символ текущего активного графика? Т.е. графика, закладка/окно которого активны в данный момент, а не того, куда прикреплен индикатор/эксперт. Т.е. нужно чтобы советник, работающий на каком то графике знал символ того графика, который в данный момент выбрал юзер.
AlexPORT: Как определить символ текущего активного графика? Т.е. графика, закладка/окно которого активны в данный момент, а не того, куда прикреплен индикатор/эксперт. Т.е. нужно чтобы советник, работающий на каком то графике знал символ того графика, который в данный момент выбрал юзер.
Нет такого, чтобы определить програмно символ активного графика. Можно лишь определять символ того графика, на котором работает индикатор/советник _Symbol, Symbol().
Может на первый взгляд это не совсем понятно, но алгоритм примерно такой:
Определяем время старшего бара текущего периода с помощью Bars. datetime time = Time[Bars-1];
Определяем номер бара iBarShift(_Symbol, PERIOD_D1, time, false);
Алгоритм понятен, разобрался. Сделал на примере, все работает.
Спасибо огромное!
А, с первым вопросом(про максимумы), не объясните по-подробнее, как его реализовать? Если можно с небольшим алгоритмом. Уж больно хорошо у Вас получается:)
Алгоритм понятен, разобрался. Сделал на примере, все работает.
Спасибо огромное!
А, с первым вопросом(про максимумы), не объясните по-подробнее, как его реализовать? Если можно с небольшим алгоритмом. Уж больно хорошо у Вас получается:)
Я рад что меня понимает ещё кто-то кроме меня самого.
Vadim_2015:
Здравствуйте уважаемые форумчане!
Начал изучать язык MQL4 и при написании простого индикатора столкнулся с проблемой, которую никак не могу решить. Суть проблемы:
1_как найти High оставшейся части дня, есть простой цикл Close[i]-Open[i+1], необходимо найти High[i - до конца дня]. Например, от[i],[1],[2] и до конца дня (PERIOD_H1) . Ума не приложу как это сделать. Есть функция 'iHigh' , но это немного не то.
Это как раз то что надо. High текущего дня независимо от того, сколько времени осталось до конца дня.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Спасибо что откликнулись.
1_Да я пробовал использовать _iHighest, но оно ведь возвращает индекс наибольшего найденного значения (смещение относительно "текущего бара"). А я имею ввиду, вот выполнилось у меня определенное условие на i -том баре, это бар соответствует времени, допустим 10:00, вот тут и нужен мне максимум от _10:00 до конца дня _00:00. Если можете, хотя бы немного черканите, как? Как увязать iHighest High[] / Low[] про которые Вы говорили.
2_ iBarShift ведь возвращает индекс бара, в который попадает указанное время. Индекс одного бара. Я имел ввиду, нужно подсчитать сколько всего баров в истории(на графике), с определенным временем_12:00_13:00_14:00, и.т.д. iBars тоже не то.
2. iBarShift возвращает количество баров до указанного времени.
Забудьте на время про то что что Вам надо запрограммировать, создайте небольшие примеры для каждого из случаев и на их основе изучите как это работает.
1. На рассматриваемом Вами отрезке iHighest вернет некоторое значение, которое можно сохранить в переменной, скажем 'Index_Max'. Чтобы получить значение цены Вам надо будет совершить простую операцию => High[Index_Max].
2. iBarShift возвращает количество баров до указанного времени.
Забудьте на время про то что что Вам надо запрограммировать, создайте небольшие примеры для каждого из случаев и на их основе изучите как это работает.
Может я что то не понимаю, но из ...Справочник MQL4 / Доступ к таймсериям и индикаторам / iBarShift
" iBarShift - Поиск бара по времени. Функция возвращает индекс бара, в который попадает указанное время.
Возвращаемое значение - Индекс бара, в который попадает указанное время. Если для указанного времени бар отсутствует ("дыра" в истории), то функция возвращает -1 или индекс ближайшего бара. " ,
а не количество баров до указанного времени.
Да, примеры уже использую, но все не то. Разные функции пробовал. Попробую Ваш вариант. А как быть все-таки с подсчетом баров-времени? Как их со считать?
Спасибо!
Может я что то не понимаю, но из ...Справочник MQL4 / Доступ к таймсериям и индикаторам / iBarShift
" iBarShift - Поиск бара по времени. Функция возвращает индекс бара, в который попадает указанное время.
Возвращаемое значение - Индекс бара, в который попадает указанное время. Если для указанного времени бар отсутствует ("дыра" в истории), то функция возвращает -1 или индекс ближайшего бара. " ,
а не количество баров до указанного времени.
Да, примеры уже использую, но все не то. Разные функции пробовал. Попробую Ваш вариант. А как быть все-таки с подсчетом баров-времени? Как их со считать?
Спасибо!
12:00 и\или 15:00 бывает только 1 раз в сутки. Соответственно если определить количество или номер последнего бара периода PERIOD_D1 то это и будет количество баров с временем 12:00 или любым другим временем.
Может на первый взгляд это не совсем понятно, но алгоритм примерно такой:
Определяем время старшего бара текущего периода с помощью Bars. datetime time = Time[Bars-1];
Определяем номер бара iBarShift(_Symbol, PERIOD_D1, time, false);
может быть
Как определить символ текущего активного графика? Т.е. графика, закладка/окно которого активны в данный момент, а не того, куда прикреплен индикатор/эксперт. Т.е. нужно чтобы советник, работающий на каком то графике знал символ того графика, который в данный момент выбрал юзер.
AlexeyVik:
Может на первый взгляд это не совсем понятно, но алгоритм примерно такой:
Определяем время старшего бара текущего периода с помощью Bars. datetime time = Time[Bars-1];
Определяем номер бара iBarShift(_Symbol, PERIOD_D1, time, false);
Алгоритм понятен, разобрался. Сделал на примере, все работает.
Спасибо огромное!
А, с первым вопросом(про максимумы), не объясните по-подробнее, как его реализовать? Если можно с небольшим алгоритмом. Уж больно хорошо у Вас получается:)
Алгоритм понятен, разобрался. Сделал на примере, все работает.
Спасибо огромное!
А, с первым вопросом(про максимумы), не объясните по-подробнее, как его реализовать? Если можно с небольшим алгоритмом. Уж больно хорошо у Вас получается:)
Я рад что меня понимает ещё кто-то кроме меня самого.
Это как раз то что надо. High текущего дня независимо от того, сколько времени осталось до конца дня.
Если я правильно понял суть вопроса.
Я рад что меня понимает ещё кто-то кроме меня самого.
Это как раз то что надо. High текущего дня независимо от того, сколько времени осталось до конца дня.
Если я правильно понял суть вопроса.