У вас индикатор считается от самого свежего бара в сторону истории. Подозреваю, что рисуется он не так, как должен, хоть вам и кажется, что всё нормально.
Далее, чему будут равны значения i в этом цикле: for(int i = k - TotalBars; i < k; i++), если k меньше TotalBars? вот.
Соглашусь с вами частично, т.к. рисует он все-таки нормально, хотя я понимаю, что данный цикл неверен...
Проанализируйте, что будет рассчитано вот в этом цикле, если значение k равно 0, а значение TotalBars более нуля:
Чтобы понять, в чем дело, запустите индикатор в тестере на всех тиках, а потом сравните полученный результат с индикатором, наброшенным на график после окончания тестирования:
double iMAOnArray( doublearray[], // массив int total, // количество элементов int ma_period, // период intma_shift, // сдвиг средней intma_method, // метод усреднения intshift// сдвиг );
что делает параметр total ?
я пару месяцев назад перерыл весь форумпоиском, но к удивлению не нашел однозначного ответа, если total =0 , то обычно расчет МА происходит без проблем, а вот если задавать его вручную, то с вариантами, пробовал и total = 2 * ma_period , все равно бывает не рассчитывает значения, как правильно подбирать параметр total ?
В отличие от iMA(...), функция iMAOnArray не выбирает данные на основе названия инструмента, таймфрейма и используемой цены - ценовые данные должны быть подготовлены заранее...
Проанализируйте, что будет рассчитано вот в этом цикле, если значение k равно 0, а значение TotalBars более нуля:
Чтобы понять, в чем дело, запустите индикатор в тестере на всех тиках, а потом сравните полученный результат с индикатором, наброшенным на график после окончания тестирования:
Благодарю за совет.
Странно, что два абсолютно идентичных индикатора (в советнике и прикрепленный после теста) не совпали. Хотя практически одинаковы.
Не совсем. Так как получается иной график. Хотя ваш вариант абсолютно рабочий. Спасибо. Сейчас попробую разобраться, как использовать ваш вариант, чтобы получить то, что я вижу в первом варианте.
я пару месяцев назад перерыл весь форумпоиском, но к удивлению не нашел однозначного ответа, если total =0 , то обычно расчет МА происходит без проблем, а вот если задавать его вручную, то с вариантами, пробовал и total = 2 * ma_period , все равно бывает не рассчитывает значения, как правильно подбирать параметр total ?
К сожалению, у меня тоже нет ответа на этот вопрос. Всегда задавал его равным нулю и получал то, что нужно. Если total отлично от нуля, то полученный результат не удавалось никак объяснить.
У вас индикатор считается от самого свежего бара в сторону истории. Подозреваю, что рисуется он не так, как должен, хоть вам и кажется, что всё нормально.
Далее, чему будут равны значения i в этом цикле: for(int i = k - TotalBars; i < k; i++), если k меньше TotalBars? вот.
Проанализируйте, что будет рассчитано вот в этом цикле, если значение k равно 0, а значение TotalBars более нуля:
Чтобы понять, в чем дело, запустите индикатор в тестере на всех тиках, а потом сравните полученный результат с индикатором, наброшенным на график после окончания тестирования:
Соглашусь с вами частично, т.к. рисует он все-таки нормально, хотя я понимаю, что данный цикл неверен...
Наверное, имелся в виду такой вот подход:
Наверное, имелся в виду такой вот подход:
Приветствую!
если не затруднит, а Вы можете объяснить в ф-ции: https://docs.mql4.com/ru/indicators/imaonarray
double iMAOnArray(
double array[], // массив
int total, // количество элементов
int ma_period, // период
int ma_shift, // сдвиг средней
int ma_method, // метод усреднения
int shift // сдвиг
);
что делает параметр total ?
я пару месяцев назад перерыл весь форумпоиском, но к удивлению не нашел однозначного ответа, если total =0 , то обычно расчет МА происходит без проблем, а вот если задавать его вручную, то с вариантами, пробовал и total = 2 * ma_period , все равно бывает не рассчитывает значения, как правильно подбирать параметр total ?
Проанализируйте, что будет рассчитано вот в этом цикле, если значение k равно 0, а значение TotalBars более нуля:
Чтобы понять, в чем дело, запустите индикатор в тестере на всех тиках, а потом сравните полученный результат с индикатором, наброшенным на график после окончания тестирования:
Благодарю за совет.
Странно, что два абсолютно идентичных индикатора (в советнике и прикрепленный после теста) не совпали. Хотя практически одинаковы.
Он может рисовать нормально только на истории, но будет с появлением новых баров выдавать мусор, как проиллюстрировал Игорь.
Наверное, имелся в виду такой вот подход:
что делает параметр total ?
я пару месяцев назад перерыл весь форумпоиском, но к удивлению не нашел однозначного ответа, если total =0 , то обычно расчет МА происходит без проблем, а вот если задавать его вручную, то с вариантами, пробовал и total = 2 * ma_period , все равно бывает не рассчитывает значения, как правильно подбирать параметр total ?
К сожалению, у меня тоже нет ответа на этот вопрос. Всегда задавал его равным нулю и получал то, что нужно. Если total отлично от нуля, то полученный результат не удавалось никак объяснить.
Вы хотите сказать, что если я установлю его на график, то он будет красиво выглядеть. Но если появится новый H4 бар, то получится ерунда?