Помогите написать линейную регрессию - страница 3

 
lna01:
kvn:
И ещё очен был бы благодарен материалам о том как сделать индюк более скоросным, как увеличить скорость работы МТ.
И может кто знает есть ли где информация о скоросте выполнения различных операторов МТ (например за сколько тактов выполняются различные операторы цикла.)
Что касается МТ, то пользователю полезно стараться минимизировать число индикаторных буферов. Скорость выполнения операторов изучается обычно самостоятельно с помощью операторов Print и GetTickCount. Хотя можно было бы только приветствовать, если бы кто-то это дело перелопатил и опубликовал статью.
Я уже писал - для оптимизации нежелательны многочисленные одиночные увеличения размеров массивов через ArrayResize() [в крайнем случае выделяйте память с большим запасом, например, увеличивая сразу массив на тысячу элементов], и использование глобальных переменных. Кроме того, я по своему опыту также писал, что вызовы пользовательских индикаторов через iCustom() не уступают по скорости (а даже выполняются быстрее) функциям непосредственно встроенным в код. Можете все эти три утверждения проверить самостоятельно.
 
Rosh:
вызовы пользовательских индикаторов через iCustom() не уступают по скорости (а даже выполняются быстрее) функциям непосредственно встроенным в код. Можете все эти три утверждения проверить самостоятельно.
Вот с этим согласиться трудно. Вызовы через iCustom() не могут не сопровождаться дополнительными обслуживающими операциями, то есть правильно встроенный код всегда должен быть быстрее. Хотя на практике это не всегда просто и работа через iCustom() может сэкономить общее время за счёт сокращения времени на разработку и отладку. Можно привести ещё пример: при переменных параметрах вызовы iCustom() начнут клонировать индикаторные буферы, резко вырастет потребление памяти, начнутся свопы и прощай скорость. То есть использование iCustom() не может быть универсальной рекомендацией.
 
А насколько большая разница в работе операторов For и While.
Мне кажется что For работает значительно медленее.
А цикл написанный на If ещё медленее.
Может ктото  с большим стажем программирования расположит хотябы примерно операторы по быстродействию.
Ведь даже безобидный коментарий требует некого времени на обработку.

Добавляю рабочий ЛР.
Файлы:
 
После этого сравните, что рисует этот индикатор с тем, что рисует at_LR0.mq4 и по коду at_LR0.mq4 попробуйте разобраться почему это не производная от МА и как правильно избавляться от хвоста.


Очень интересный индикатор. Есть над чем подумать.
А вот насчёт хвоста, я чтото Ваш код не понял, если Вас не затруднит - раскажите по подробнее.

                 P.S. Чтобы не париться с параметрами сажайте индикаторы на часовой график и в своём ставьте период на единицу больше.

Чтото не понял.
 
kvn:
А насколько большая разница в работе операторов For и While.

Вам же намекали на Print и GetTickCount :)
 
kvn:
чтото Ваш код не понял, если Вас не затруднит - раскажите по подробнее.

Это не мой код. Хотя у меня очень близкий. Подробнее без "подумать" обычно помогает плохо, а вот время ест очень эффективно.
 
lna01:
Rosh:
вызовы пользовательских индикаторов через iCustom() не уступают по скорости (а даже выполняются быстрее) функциям непосредственно встроенным в код. Можете все эти три утверждения проверить самостоятельно.
Вот с этим согласиться трудно. Вызовы через iCustom() не могут не сопровождаться дополнительными обслуживающими операциями, то есть правильно встроенный код всегда должен быть быстрее. Хотя на практике это не всегда просто и работа через iCustom() может сэкономить общее время за счёт сокращения времени на разработку и отладку. Можно привести ещё пример: при переменных параметрах вызовы iCustom() начнут клонировать индикаторные буферы, резко вырастет потребление памяти, начнутся свопы и прощай скорость. То есть использование iCustom() не может быть универсальной рекомендацией.
Это теория, проверьте самостоятельно.
 
Обычно после первого употребления слова "теория" в качестве ругательства дискуссия становится непродуктивной :). Но поскольку пример был совсем недавно, я всё же его приведу. Сравнивать нужно 1-quadrat с M_qRMA, M_qWMA должен присутствовать в папке индикаторов.
Файлы:
m_qrma_1.mq4  3 kb
 
Второй
P.S. Умный движок форума добавил к названию индикатора _1, добавку нужно убрать при записи.
Файлы:
m_qwma_1.mq4  3 kb
 
Третий
Файлы: