kvn: И ещё очен был бы благодарен материалам о том как сделать индюк более скоросным, как увеличить скорость работы МТ. И может кто знает есть ли где информация о скоросте выполнения различных операторов МТ (например за сколько тактов выполняются различные операторы цикла.)
Что касается МТ, то пользователю полезно стараться минимизировать число индикаторных буферов. Скорость выполнения операторов изучается обычно самостоятельно с помощью операторов Print и GetTickCount. Хотя можно было бы только приветствовать, если бы кто-то это дело перелопатил и опубликовал статью.
Я уже писал - для оптимизации нежелательны многочисленные одиночные увеличения размеров массивов через ArrayResize() [в крайнем случае выделяйте память с большим запасом, например, увеличивая сразу массив на тысячу элементов], и использование глобальных переменных. Кроме того, я по своему опыту также писал, что вызовы пользовательских индикаторов через iCustom() не уступают по скорости (а даже выполняются быстрее) функциям непосредственно встроенным в код. Можете все эти три утверждения проверить самостоятельно.
Rosh: вызовы пользовательских индикаторов через iCustom() не уступают по скорости (а даже выполняются быстрее) функциям непосредственно встроенным в код. Можете все эти три утверждения проверить самостоятельно.
Вот с этим согласиться трудно. Вызовы через iCustom() не могут не сопровождаться дополнительными обслуживающими операциями, то есть правильно встроенный код всегда должен быть быстрее. Хотя на практике это не всегда просто и работа через iCustom() может сэкономить общее время за счёт сокращения времени на разработку и отладку. Можно привести ещё пример: при переменных параметрах вызовы iCustom() начнут клонировать индикаторные буферы, резко вырастет потребление памяти, начнутся свопы и прощай скорость. То есть использование iCustom() не может быть универсальной рекомендацией.
А насколько большая разница в работе операторов For и While. Мне кажется что For работает значительно медленее. А цикл написанный на If ещё медленее. Может ктото с большим стажем программирования расположит хотябы примерно операторы по быстродействию. Ведь даже безобидный коментарий требует некого времени на обработку.
После этого сравните, что рисует этот индикатор с тем, что рисует at_LR0.mq4 и по коду at_LR0.mq4 попробуйте разобраться почему это не производная от МА и как правильно избавляться от хвоста.
Очень интересный индикатор. Есть над чем подумать. А вот насчёт хвоста, я чтото Ваш код не понял, если Вас не затруднит - раскажите по подробнее.
P.S. Чтобы не париться с параметрами сажайте индикаторы на часовой график и в своём ставьте период на единицу больше.
Rosh: вызовы пользовательских индикаторов через iCustom() не уступают по скорости (а даже выполняются быстрее) функциям непосредственно встроенным в код. Можете все эти три утверждения проверить самостоятельно.
Вот с этим согласиться трудно. Вызовы через iCustom() не могут не сопровождаться дополнительными обслуживающими операциями, то есть правильно встроенный код всегда должен быть быстрее. Хотя на практике это не всегда просто и работа через iCustom() может сэкономить общее время за счёт сокращения времени на разработку и отладку. Можно привести ещё пример: при переменных параметрах вызовы iCustom() начнут клонировать индикаторные буферы, резко вырастет потребление памяти, начнутся свопы и прощай скорость. То есть использование iCustom() не может быть универсальной рекомендацией.
Обычно после первого употребления слова "теория" в качестве ругательства дискуссия становится непродуктивной :). Но поскольку пример был совсем недавно, я всё же его приведу. Сравнивать нужно 1-quadrat с M_qRMA, M_qWMA должен присутствовать в папке индикаторов.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
И ещё очен был бы благодарен материалам о том как сделать индюк более скоросным, как увеличить скорость работы МТ.
И может кто знает есть ли где информация о скоросте выполнения различных операторов МТ (например за сколько тактов выполняются различные операторы цикла.)
вызовы пользовательских индикаторов через iCustom() не уступают по скорости (а даже выполняются быстрее) функциям непосредственно встроенным в код. Можете все эти три утверждения проверить самостоятельно.
Мне кажется что For работает значительно медленее.
А цикл написанный на If ещё медленее.
Может ктото с большим стажем программирования расположит хотябы примерно операторы по быстродействию.
Ведь даже безобидный коментарий требует некого времени на обработку.
Добавляю рабочий ЛР.
Очень интересный индикатор. Есть над чем подумать.
А вот насчёт хвоста, я чтото Ваш код не понял, если Вас не затруднит - раскажите по подробнее.
P.S. Чтобы не париться с параметрами сажайте индикаторы на часовой график и в своём ставьте период на единицу больше.
Чтото не понял.
А насколько большая разница в работе операторов For и While.
чтото Ваш код не понял, если Вас не затруднит - раскажите по подробнее.
вызовы пользовательских индикаторов через iCustom() не уступают по скорости (а даже выполняются быстрее) функциям непосредственно встроенным в код. Можете все эти три утверждения проверить самостоятельно.
P.S. Умный движок форума добавил к названию индикатора _1, добавку нужно убрать при записи.