Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее" - страница 12

 
fxsaber:

Интерактивно рисовать что угодно можно уже много лет. Только никто (публично точно) не использует.

Код не короткий, а длинный и очень кривой (как и результат - мерцания). Библиотеку нужно серьезно дорабатывать. 

если брался за аналог именно plot из R,то там вроде только статическая графика. если есть интерактивная графика,то это точно не plot  в прямом виде. я искал что-то такое там ради интереса,но были отсылки куда-то в сторону совместной работы с ява и т.п.

типа такого

dashboardInteractive Data Visualization with D3.js

если я правильно понял,то и такой

timevis:

Create rich and fully interactive timeline visualizations. Timelines can be included in Shiny apps and R markdown documents, or viewed from the R console and RStudio Viewer. 'timevis' includes an extensive API to manipulate a timeline after creation, and supports getting data out of the visualization into R. Based on the 'vis.js' Timeline module and the 'htmlwidgets' R package.

CRAN - Package dashboard
  • cran.r-project.org
Johann Laurent.
 
ivanivan_11:

если брался за аналог именно plot из R,то там вроде только статическая графика. если есть интерактивная графика,то это точно не plot  в прямом виде. я искал что-то такое там ради интереса,но были отсылки куда-то в сторону совместной работы с ява и т.п. 

К R относится только GraphPlot-функция (не метод). Сами классы никакого отношения к R не имеют и должны позволять интерактивность. Допилят.
 

Кажется, что одна вещь отсутствует: кластерный анализ.

(It seems that one thing is missing: the cluster analysis.)

 
На практике компилятор MQL5 языка оказался гораздо быстрее С++ реализаций функций в R
Если скомпилировать на C++ реализацию из R, то ее выполнение будет медленней, чем Ваша реализация на MQL5?
 
fxsaber:
Если скомпилировать на C++ реализацию из R, то ее выполнение будет медленней, чем Ваша реализация на MQL5?

Да, за счет использования динамических данных как минимум и общего лобового подхода.

Там на самом деле масса базовых мат функций скомпилирована на С/С++ компиляторе. Достаточно посмотреть исходный код.

 
Renat Fatkhullin:

Да, за счет использования динамических данных как минимум и общего лобового подхода.

Там на самом деле масса базовых мат функций скомпилирована на С/С++ компиляторе. Достаточно посмотреть исходный код.

А где посмотреть КАК Вы сравниваете скорость?
 
Renat Fatkhullin:

Да, за счет использования динамических данных как минимум и общего лобового подхода.

Там на самом деле масса базовых мат функций скомпилирована на С/С++ компиляторе. Достаточно посмотреть исходный код.

Так сама реализация на MQL5 алгоритмически отличается в лучшую сторону или MQL5-компилятор оказался быстрее C++?
 
СанСаныч Фоменко:
А где посмотреть КАК Вы сравниваете скорость?
Прочтите статью полностью. 
 

ОТЛИЧНАЯ СТАТЬЯ!

будем изучать.

+

 
Renat Fatkhullin:
Прочтите статью полностью. 

Прочитал.

Вник.

Считаю, что приведенные Вами тесты не совсем корректны. Считаю необходимым об этом написать, так как сравнения быстродействия не последние. 

Дело в том, что МКЛ качественно отличается от R. И в случаях сравнения быстродействия эти качественные различия должны учитываться там, где это возможно. R - интерпретатор, а МКЛ - компилятор. Это качественно различие для промышленных программ идет в плюс МКЛ.

Но есть другое качественное различие, которое также имеет большое значение при промышленной эксплуатации программ и в тестах эти различия не учитывались, что привело к искаженным результатам..

Качественным отличием R от МКЛ состоит в том, что элементарным объектом в МКЛ является скаляр, из которых составляются более сложные объекты, например вектора. Именно вектора подаются на вход функций распределения.

В R вообще отсутствует понятие "скаляр". Простейшим объектом является вектор. R широко эксплуатирует это обстоятельство и в нашем примере по сравнению функций распределения в коде R совершенно явно просматривается такой прим программирования, специфичный для R, как "векторизация", что недоступно в МКЛ. Так как это специфический прием в R, который ускоряет вычисления 10-100 раз (в зависимости от размеров матрицы), то код для R должен был бы содержать именно этот прием. Применение векторизации очевидно, так как в тестах берется входной вектор и 100 раз производятся вычисления над ним, т.е. это матрица с одинаковыми, а можно сделать что с разными столбцами. 

 

Если обобщить сказанное: текст на R должен быть написан на R с использованием его возможностей, особенно при их отсутствии аналогов в МКЛ.

ПС.

Так речь идет о циклах, то R напрашивается загрузка ядер. Но это оставим за скобками.