Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее" - страница 12
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
если брался за аналог именно plot из R,то там вроде только статическая графика. если есть интерактивная графика,то это точно не plot в прямом виде. я искал что-то такое там ради интереса,но были отсылки куда-то в сторону совместной работы с ява и т.п.
Кажется, что одна вещь отсутствует: кластерный анализ.
(It seems that one thing is missing: the cluster analysis.)
Если скомпилировать на C++ реализацию из R, то ее выполнение будет медленней, чем Ваша реализация на MQL5?
Да, за счет использования динамических данных как минимум и общего лобового подхода.
Там на самом деле масса базовых мат функций скомпилирована на С/С++ компиляторе. Достаточно посмотреть исходный код.
Да, за счет использования динамических данных как минимум и общего лобового подхода.
Там на самом деле масса базовых мат функций скомпилирована на С/С++ компиляторе. Достаточно посмотреть исходный код.
Да, за счет использования динамических данных как минимум и общего лобового подхода.
Там на самом деле масса базовых мат функций скомпилирована на С/С++ компиляторе. Достаточно посмотреть исходный код.
А где посмотреть КАК Вы сравниваете скорость?
ОТЛИЧНАЯ СТАТЬЯ!
будем изучать.
+
Прочтите статью полностью.
Прочитал.
Вник.
Считаю, что приведенные Вами тесты не совсем корректны. Считаю необходимым об этом написать, так как сравнения быстродействия не последние.
Дело в том, что МКЛ качественно отличается от R. И в случаях сравнения быстродействия эти качественные различия должны учитываться там, где это возможно. R - интерпретатор, а МКЛ - компилятор. Это качественно различие для промышленных программ идет в плюс МКЛ.
Но есть другое качественное различие, которое также имеет большое значение при промышленной эксплуатации программ и в тестах эти различия не учитывались, что привело к искаженным результатам..
Качественным отличием R от МКЛ состоит в том, что элементарным объектом в МКЛ является скаляр, из которых составляются более сложные объекты, например вектора. Именно вектора подаются на вход функций распределения.
В R вообще отсутствует понятие "скаляр". Простейшим объектом является вектор. R широко эксплуатирует это обстоятельство и в нашем примере по сравнению функций распределения в коде R совершенно явно просматривается такой прим программирования, специфичный для R, как "векторизация", что недоступно в МКЛ. Так как это специфический прием в R, который ускоряет вычисления 10-100 раз (в зависимости от размеров матрицы), то код для R должен был бы содержать именно этот прием. Применение векторизации очевидно, так как в тестах берется входной вектор и 100 раз производятся вычисления над ним, т.е. это матрица с одинаковыми, а можно сделать что с разными столбцами.
Если обобщить сказанное: текст на R должен быть написан на R с использованием его возможностей, особенно при их отсутствии аналогов в МКЛ.
ПС.
Так речь идет о циклах, то R напрашивается загрузка ядер. Но это оставим за скобками.
Прочитал.
Вник.
Считаю, что приведенные Вами тесты не совсем корректны. Считаю необходимым об этом написать, так как сравнения быстродействия не последние.
Дело в том, что МКЛ качественно отличается от R. И в случаях сравнения быстродействия эти качественные различия должны учитываться там, где это возможно. R - интерпретатор, а МКЛ - компилятор. Это качественно различие для промышленных программ идет в плюс МКЛ.
Вы посмотрите в исходный код R (он ведь опенсорсный). Там вся базовая математика на C/C++ вкомпилирована в движок. И большинство пакетов тоже написаны на С++, иначе результатов вычислений не дождешься.
Если бы R был интерпретатором в базовых/системных функциях, он бы отставал от MQL5 в 200-500 раз. Мы специально тестировали системные C/C++ функции R, а не строили ручную обработку в циклах (там мгновенный проигрыш в сотни раз у R).
В R разработках постоянно идет поиск "как бы мне пакет найти, чтобы не писать for/while/foreach цикл". Фактически есть только один метод ведения расчетов в R - это передача любых более-менее массивных расчетов в сторонние пакеты.
Но есть другое качественное различие, которое также имеет большое значение при промышленной эксплуатации программ и в тестах эти различия не учитывались, что привело к искаженным результатам..
Качественным отличием R от МКЛ состоит в том, что элементарным объектом в МКЛ является скаляр, из которых составляются более сложные объекты, например вектора. Именно вектора подаются на вход функций распределения.
Посмотрите в /include/math/stat каталог на сотни векторных функций.
В R вообще отсутствует понятие "скаляр". Простейшим объектом является вектор. R широко эксплуатирует это обстоятельство и в нашем примере по сравнению функций распределения в коде R совершенно явно просматривается такой прим программирования, специфичный для R, как "векторизация", что недоступно в МКЛ. Так как это специфический прием в R, который ускоряет вычисления 10-100 раз (в зависимости от размеров матрицы), то код для R должен был бы содержать именно этот прием. Применение векторизации очевидно, так как в тестах берется входной вектор и 100 раз производятся вычисления над ним, т.е. это матрица с одинаковыми, а можно сделать что с разными столбцами.
Нет никакой векторизации и никаких современных возможностей в R. Там код просто в лоб написан обычными джуниорами от программирования. Да, математики они приличные, но вот программисты посредственные.
GPU в R остаются исключительно сказками и единичными попытками в редчайших пакетах.
Если обобщить сказанное: текст на R должен быть написан на R с использованием его возможностей, особенно при их отсутствии аналогов в МКЛ.
Вы просто не знаете ни R, ни MQL5.
Вы не смотрели исходники R, не знаете исходников MQL5. Не строили компиляторов последние 15 лет. Но пытаетесь спорить с теми, кто это все сделал.