Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот индикатор test.mq4
и вот скрипт, который замеряет скорость вычисления тестового алгоритма
через iCustom() и через вызов test().
P.S. В моём примере не такая уж существенная разница в числе операций для двух вариантов - "обслуживающий код" ведь работает один раз, а циклы одни и те же.
2. А зачем работать с массивами во встроенной функции? Мы же ведем речь о разнице в стоимости вызова встроенной в код пользовательской функции и о вызове внешней функции через iCustom().
1. Процедурный стиль программирования уступает по эффективности только модульному и объектно-ориентированному. Так что вынос алгоритма вычислений в отдельную фуекцию является закономерным.
2. А зачем работать с массивами во встроенной функции? Мы же ведем речь о разнице в стоимости вызова встроенной в код пользовательской функции и о вызове внешней функции через iCustom().
2. Аналогично. Меня-то интересует именно итоговая эффективность. В случае MQL это обычно время на разработку плюс время на испытание в тестере. Хотя лишние секунды ожидания при загрузке терминала с реальным счётом тоже могут дорогого стоить. В смысле нервов, не у всех же правильные взгляды на торговлю :)
А вот результаты работы скрипта.
Как видите, использование отдельной функции вполне оправдано - разница по времени для цикла в миллиард проходов всего одна секунда. Зато насколько проще разрабатывать код!
Вот еще на тему нахождения параметров линейной регрессии. Взято отсюда - Linear Regression Channel
А вот функция, которая реализует описанный алгоритм (может кому пригодится):
Функция вызывается примерно так:
Что то не то в Датском королевстве.
Предыдущий свой пост пришлось удалить. В алгоритме есть ошибка.
Я знаю что многие используют эту процедуру но ….не могу найти причину ошибки ПОМОГИТЕ.
Вот скрипт. Дважды вычисляться коэффициенты А и B.
Вот результат
intercept = -3.33333333 slope = 5.00000000
intercept = -1102.16914108 slope = 0.00000091
А вот тоже, но рассчитанное в MathCad. Синим - результаты совпадают, красным нет (.
В маткаде это встроенные функции, так что скорее всего ошибка в МТ4, но вот где ?
Что то не то в Датском королевстве.
Предыдущий свой пост пришлось удалить. В алгоритме есть ошибка.
Я знаю что многие используют эту процедуру но ….не могу найти причину ошибки ПОМОГИТЕ.
Вот скрипт. Дважды вычисляться коэффициенты А и B.
Вот результат
intercept = -3.33333333 slope = 5.00000000
intercept = -1102.16914108 slope = 0.00000091
А вот тоже, но рассчитанное в MathCad. Синим - результаты совпадают, красным нет (.
В маткаде это встроенные функции, так что скорее всего ошибка в МТ4, но вот где ?
А вот что выдает Excel 2007
Так что, проверять, возможно, нужно Маткад.
Одна из реализаций линейной регресии степень полинома 20, задается кол-во точек расчета и смещение начальной точки..
вывод осуществляется с использованием канала глубина задается в пунктах..при глубине 0 выводиться лишь сама кривая регресии