Вообще из цикла убери вызов этой функции. В ней самой уже есть полный цикл. В begin нужно передавать начало значимых данных в том массиве, на основании которого делаешь сглаживание. Для некоторых типов сглаживания необходим предварительный просчет. Для SMMA - это примерно два периода расчета.
Вообще из цикла убери вызов этой функции. В ней самой уже есть полный цикл. В begin нужно передавать начало значимых данных в том массиве, на основании которого делаешь сглаживание. Для некоторых типов сглаживания необходим предварительный просчет. Для SMMA - это примерно два периода расчета.
А в таком случае, при добавлении нового бара не будет пересчитываться весь массив? Да и при изменении текущего значения в массиве буфера не мешало-бы пересчитывать. И как тогда без цикла?
Один раз при запуске индикатора по всему буферу и потом только последний индекс на каждом тике? Это экспромт. Я так не делал пока… надо проверить.
А в таком случае, при добавлении нового бара не будет пересчитываться весь массив? Да и при изменении текущего значения в массиве буфера не мешало-бы пересчитывать. И как тогда без цикла?
Один раз при запуске индикатора по всему буферу и потом только последний индекс на каждом тике? Это экспромт. Я так не делал пока… надо проверить.
Спасибо!
Попробовал и получил ошибку, что-то делаю не так:
А buffer[] распределён? Вижу объявление, но не вижу установку размера
А buffer[] распределён? Вижу объявление, но не вижу установку размера
Установил размер, ошибка ещё где-то, не работает.
Установил размер, ошибка ещё где-то, не работает.
В begin что передаёшь?
В begin что передаёшь?
Виталий, а зачем копировать функцию из инклюдника? Не проще подключить библиотеку?
#include <MovingAverages.mqh>Вообще из цикла убери вызов этой функции. В ней самой уже есть полный цикл. В begin нужно передавать начало значимых данных в том массиве, на основании которого делаешь сглаживание. Для некоторых типов сглаживания необходим предварительный просчет. Для SMMA - это примерно два периода расчета.
Вообще из цикла убери вызов этой функции. В ней самой уже есть полный цикл. В begin нужно передавать начало значимых данных в том массиве, на основании которого делаешь сглаживание. Для некоторых типов сглаживания необходим предварительный просчет. Для SMMA - это примерно два периода расчета.
А в таком случае, при добавлении нового бара не будет пересчитываться весь массив? Да и при изменении текущего значения в массиве буфера не мешало-бы пересчитывать. И как тогда без цикла?
Один раз при запуске индикатора по всему буферу и потом только последний индекс на каждом тике? Это экспромт. Я так не делал пока… надо проверить.
А в таком случае, при добавлении нового бара не будет пересчитываться весь массив? Да и при изменении текущего значения в массиве буфера не мешало-бы пересчитывать. И как тогда без цикла?
Один раз при запуске индикатора по всему буферу и потом только последний индекс на каждом тике? Это экспромт. Я так не делал пока… надо проверить.
Ну код-то погляди - его Виталий прямо выложил же
Ну код-то погляди - его Виталий прямо выложил же
Сейчас пришёл к тому, чтобы отладить конструкцию "SmoothedMAOnBuffer()" в мт4.
Что не так, вообще не понимаю
Сейчас пришёл к тому, чтобы отладить конструкцию "SmoothedMAOnBuffer()" в мт4.
Что не так, вообще не понимаю