Добрый день!
При тестировании столкнулся с проблемой вывода максимальных и минимальных значений функций iLowest и iHighest.
Опытным путем установил, что при смене таймфрейма на тестере эти функции возвращают значения таймфрейма, который указан в тестере, а не передается параметром в функцию - вопиющая несправедливость, подумал я, до того, как почитал документацию и форум.
В документации было сказано, что может вылетать ошибка и следует попробовать еще раз - при этом самой ошибки у меня в тестах не было.
Форум окончательно прояснил ситуацию - оказалось дело не в функциях iLowest и iHighest, а в Low и High!
Вот ссылка на тему https://www.mql5.com/ru/forum/104426
Вкратце: вопрос заключался в том, что для независимости от таймфреймов необходимо использовать функции iLow и iHigh, а не Low и High!
Если же посмотреть документацию по функции iLowest, то можно увидеть следующий код в примере:
Просьба: замените, пожалуйста, в официальной документации функцию Low, на iLow, потому что текущий пример вводит в заблуждение и порождает логические ошибки в коде, либо допишите текстом, что на разных таймфреймах лучше использовать iLow, либо напишите в примере, что пример абстрактный.
Люди, полагаясь на незыблемую правоту авторов продукта, копируют код из примеров документации в надежде, что весь код в примерах рабочий.
Тем более, что вопрос уже не первый раз возникает.
Спасибо.
Так и должно быть. Родным таймфреймом для тестера является тот который установлен в параметрах тестера.
Будьте внимательны. Вот-же ответ одиннадцатилетней давности
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Не работают iHighest и iLowest
Rashid Umarov, 2007.08.13 12:14
Потому что High[] обращается к данным родного таймфрейма, а если вы хотите обращаться к данным другого таймфрейма, то используйте iHigh().Так и должно быть. Родным таймфреймом для тестера является тот который установлен в параметрах тестера.
Будьте внимательны. Вот-же ответ одиннадцатилетней давности
Алексей, у меня просьба конкретно к примеру из документации по функциям iLowest/iHighest, а не по тестеру.
Если бы вызов Low был в терминале из соседнего таймфрейма он бы в советнике высчитывал данные соседнего таймфрейма, при чем здесь тестер.
Уверен, что добавить одну строчку текста в документацию (или исправить пример) - это совсем не сложно.
Алексей, у меня просьба конкретно к примеру из документации по функциям iLowest/iHighest, а не по тестеру.
Если бы вызов Low был в терминале из соседнего таймфрейма он бы в советнике высчитывал данные соседнего таймфрейма, при чем здесь тестер.
Уверен, что добавить одну строчку текста в документацию (или исправить пример) - это совсем не сложно.
С чего это вы взяли такой вывод?
Low[], High[], Open[], Close[], Time[] и Volume[] возвращают данные с текущего таймфрейма.
Из справки mql4:
double High[]
Массив-таймсерия, содержащий максимальные цены каждого бара текущего графика.
Индексация элементов таймсерий производится задом наперед, от последнего к первому. Текущий бар, самый последний в массиве, имеет индекс 0. Самый старый бар, первый на графике, имеет индекс Bars-1.
double Low[]
Массив-таймсерия, содержащий минимальные цены каждого бара текущего графика.
Индексация элементов таймсерий производится задом наперед, от последнего к первому. Текущий бар, самый последний в массиве, имеет индекс 0. Самый старый бар, первый на графике, имеет индекс Bars-1.
Алексей, у меня просьба конкретно к примеру из документации по функциям iLowest/iHighest, а не по тестеру.
Если бы вызов Low был в терминале из соседнего таймфрейма он бы в советнике высчитывал данные соседнего таймфрейма, при чем здесь тестер.
Уверен, что добавить одну строчку текста в документацию (или исправить пример) - это совсем не сложно.
Как не по тестеру когда в вашем сообщении говорится именно о тестере, что я и выделил при циировании
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Просьба по функциям iLowest и iHighest.
Manaslu Manaslov, 2018.11.02 10:59
Добрый день!
При тестировании столкнулся с проблемой вывода максимальных и минимальных значений функций iLowest и iHighest.
Опытным путем установил, что при смене таймфрейма на тестере эти функции возвращают значения таймфрейма, который указан в тестере, а не передается параметром в функцию - вопиющая несправедливость, подумал я, до того, как почитал документацию и форум.
С чего это вы взяли такой вывод?
Low[], High[], Open[], Close[], Time[] и Volume[] возвращают данные с текущего таймфрейма.
Из справки mql4:
Про остальные массивы-таймсерии сами прочтите.Немного не правильно выразился - если бы в терминале переключился на соседний таймфрейм, то данные вызова Low были бы этого текущего (родного) таймфрейма, на который я переключился, который активен в данный момент.
Прощу прощения.
Еще раз.
Ситуация с примером кода: есть вызов iLowest (не важно iHighest) с явным указанием таймфрейма PERIOD_M1, переданным, как параметр, в функцию, а при переключении в самой программе, терминале (ну или указание в тестере) таймфрейма на, допустим М15, код в связке с вызовом Low возвращает данные уже таймфрейма М15, что лично меня крайне огорчает потому, что для функции был явно указан параметр.
val_index = iLowest(Symbol(), PERIOD_M1, MODE_LOW, bar_count, bar_index); if(-1 != val_index){ extremum = Low[val_index]; //extremum = iLow(Symbol(), PERIOD_M1, val_index); ...
Подчеркну: это моё личное мнение и я не претендую на исправление работы самой функции, ради бога - пусть работает, так как работает. Мне бы хотелось, чтобы было больше удобства в продукте и другие пользователи не сталкивались с похожей ситуацией и для её исправления, как мне видится, было бы здорово внести мизерные изменения в документацию.
Еще раз.
И ещё раз
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Просьба по функциям iLowest и iHighest.
Artyom Trishkin, 2018.11.02 11:51
Low[], High[], Open[], Close[], Time[] и Volume[] возвращают данные с текущего таймфрейма.
текущего... И только текущего...
И ещё раз
текущего... И только текущего...
Алексей, я разве писал, что я не понимаю, что Low это вызов от текущего таймфрейма?
По-моему, Вы не по теме пишите комментарий уже не в первый раз.
На мой взгляд, использование в примере в документации функции iLow как раз наоборот исключит ошибки смены таймфрейвом и будет более универсальным решением.
Пример документации даже не обязательно менять - как альтернативный вариант, просто дописать текст к описанию функции, что пример абстрактный или опять же текстом дописать, что при использовании iLow будет устранена зависимость от таймфрейма.
Если у Вас другое мнение по поводу использования других вызовов или функций в примерах документации - это Ваше право.
Моё обращение здесь больше к разработчикам продукта, т.к. я предполагаю, что документацию к своему продукту могут править только они.
А вот и я)))
Всем привет,
int iHighest( |
Помню делал определитель хай и лоу цены и сделал выбор таймфрейма (периода), но на других таймфреймах кроме текущего определение хай и лоу цены было некорректным. Пришлось убрать возможность выбора timeframe и тупо прописать нуль - текущий таймфрейм графика значит.
Так что это за параметр такой - timeframe - и почему в справке предлагается его выбирать, если iHighest только с текущим таймфремом работает? Может просто инфа в описание iHighest перенеслась автоматом из iHigh? Подозреваю что так и есть.
А вот и я)))
Всем привет,
int iHighest( |
Помню делал определитель хай и лоу цены и сделал выбор таймфрейма (периода), но на других таймфреймах кроме текущего определение хай и лоу цены было некорректным. Пришлось убрать возможность выбора timeframe и тупо прописать нуль - текущий таймфрейм графика значит.
Так что это за параметр такой - timeframe - и почему в справке предлагается его выбирать, если iHighest только с текущим таймфремом работает? Может просто инфа в описание iHighest перенеслась автоматом из iHigh? Подозреваю что так и есть.
Не вводите народ в заблуждение, функция имеет возможность задавать таймфрейм, с которого брать данные.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
При тестировании столкнулся с проблемой вывода максимальных и минимальных значений функций iLowest и iHighest.
Опытным путем установил, что при смене таймфрейма на тестере эти функции возвращают значения таймфрейма, который указан в тестере, а не передается параметром в функцию - вопиющая несправедливость, подумал я, до того, как почитал документацию и форум.
В документации было сказано, что может вылетать ошибка и следует попробовать еще раз - при этом самой ошибки у меня в тестах не было.
Форум окончательно прояснил ситуацию - оказалось дело не в функциях iLowest и iHighest, а в Low и High!
Вот ссылка на тему https://www.mql5.com/ru/forum/104426
Вкратце: вопрос заключался в том, что для независимости от таймфреймов необходимо использовать функции iLow и iHigh, а не Low и High!
Если же посмотреть документацию по функции iLowest, то можно увидеть следующий код в примере:
Просьба: замените, пожалуйста, в официальной документации функцию Low, на iLow, потому что текущий пример вводит в заблуждение и порождает логические ошибки в коде, либо допишите текстом, что на разных таймфреймах лучше использовать iLow, либо напишите в примере, что пример абстрактный.
Люди, полагаясь на незыблемую правоту авторов продукта, копируют код из примеров документации в надежде, что весь код в примерах рабочий.
Тем более, что вопрос уже не первый раз возникает.
Спасибо.