Не могу понять где ошибка.
Вот код
Итерация шагов смещается на 15 но результат индекса выходит за диапазон. Уже со второй итерацией между числами 15 и 30 число индекса найденого максимального значения оказывается вне диапазона 43 А дальше начиная со значений 75-90 вообще застряет на значении индекса 137 и пять раз показывает одно и тоже значение.
вам даже сайт дал ссылку iHighest
переходим, читаем:
int iHighest( const string symbol, // символ ENUM_TIMEFRAMES timeframe, // период ENUM_SERIESMODE type, // идентификатор таймсерии int count=WHOLE_ARRAY, // число элементов int start=0 // индекс );
у вас это число переменное
- www.mql5.com
Не могу понять где ошибка.
Вот код
Итерация шагов смещается на 15 но результат индекса выходит за диапазон. Уже со второй итерацией между числами 15 и 30 число индекса найденого максимального значения оказывается вне диапазона 43 А дальше начиная со значений 75-90 вообще застряет на значении индекса 137 и пять раз показывает одно и тоже значение.
Не могу понять где ошибка.
Вот код
Итерация шагов смещается на 15 но результат индекса выходит за диапазон. Уже со второй итерацией между числами 15 и 30 число индекса найденого максимального значения оказывается вне диапазона 43 А дальше начиная со значений 75-90 вообще застряет на значении индекса 137 и пять раз показывает одно и тоже значение.
Итерация, конечно, 15, но и сдвиг в функции тоже 15. Всего получается 30, вот и выход за диапазон допустимых адресов.
Никак не могу понять объяснения.
Попробую по шагам.
1. Шаг проверяются индексы с 0 по 15 Здесь результат правильный Найденный индекс максимального значения попадает в диапазон и равен 6
2. Шаг идет смещение на 15 и проверяются индексы начиная от 15 значение стартовое 15 и Количество элементов 15
i+15
итого функция
iHighest
должна проверить значения элементов от 15 до 30 но результат которая она выдает индекс 43 не находится между этими пределами.
val_indexHigh = 43
Третий шаг функция проверяет значения между 30 и 45 и результат находится в этом диапазоне и результат тот же что и на предыдущем шаге 43. Здесь результат правильный. Но на предыдущем шаге ведь не правильно Там не было проверяемого индекса 43.
Не могу понять где ошибка.
Вот так нужно сделать:
int val_indexHigh = iHighest(NULL,PERIOD_M15,MODE_HIGH,15,i);
Иначе проверяемый диапазон плавает от 15 до 30 баров
Никак не могу понять объяснения.
Попробую по шагам.
1. Шаг проверяются индексы с 0 по 15 Здесь результат правильный Найденный индекс максимального значения попадает в диапазон и равен 6
2. Шаг идет смещение на 15 и проверяются индексы начиная от 15 значение стартовое 15 и Количество элементов 15
Для себя распишите по подробней.
- Шаг проверяются индексы с 0 по 15 Здесь результат правильный Найденный индекс максимального значения попадает в диапазон и равен 6 (i = 0 — i+15 = 15)
- Шаг идет смещение на 15 и проверяются индексы начиная от 15 значение стартовое 15 и Количество элементов 15 (i = 15 — i+15 = 30)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Не могу понять где ошибка.
Вот код
Итерация шагов смещается на 15 но результат индекса выходит за диапазон. Уже со второй итерацией между числами 15 и 30 число индекса найденого максимального значения оказывается вне диапазона 43 А дальше начиная со значений 75-90 вообще застряет на значении индекса 137 и пять раз показывает одно и тоже значение.