Diskussion zum Artikel "Statistische Verteilungen in MQL5 - Nur das Beste aus R" - Seite 12

 
fxsaber:

Es ist seit Jahren möglich, alles interaktiv zu zeichnen. Nur benutzt es niemand (jedenfalls nicht öffentlich).

Der Code ist nicht kurz, sondern lang und sehr krumm (wie auch das Ergebnis - Flackern). Die Bibliothek sollte ernsthaft verbessert werden.

Wenn man plot von R als Analogon genommen hat, scheint es nur statische Grafiken zu sein. wenn es interaktive Grafiken gibt, ist es definitiv nicht plot in direkter Form. ich habe dort interessehalber nach so etwas gesucht, aber es gab irgendwo Hinweise in Richtung gemeinsamer Arbeit mit java, etc.

wie dieses

dashboardInteraktive Datenvisualisierung mit D3.js

wenn ich das richtig verstanden habe, und so

timevis:

Erstellen Sie reichhaltige und vollständig interaktive Timeline-Visualisierungen. Zeitleisten können in Shiny-Apps und R-Markdown-Dokumente eingebunden oder über die R-Konsole und den RStudio Viewer betrachtet werden. timevis" enthält eine umfangreiche API, um eine Zeitleiste nach der Erstellung zu manipulieren, und unterstützt die Übernahme von Daten aus der Visualisierung in R. Basiert auf dem Timeline-Modul"vis.js" und dem R-Paket "htmlwidgets".

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

Wenn plot aus R als Analogon zu plot genommen wurde, scheint es nur statische Grafiken zu sein. wenn es interaktive Grafiken gibt, ist es definitiv nicht plot in seiner direkten Form. ich habe dort interessehalber nach so etwas gesucht, aber es gab irgendwo Verweise in Richtung Zusammenarbeit mit java, etc.

Nur die GraphPlot-Funktion (nicht Methode) verweist auf R. Die Klassen selbst haben nichts mit R zu tun und sollen Interaktivität ermöglichen. Das werden sie auch.
 

Es scheint, dass eines fehlt: die Clusteranalyse.

(Es scheint, dass eine Sache fehlt: die Clusteranalyse.)

 
На практике компилятор MQL5 языка оказался гораздо быстрее С++ реализаций функций в R
Wenn Sie eine Implementierung von R in C++ kompilieren, wird die Ausführung dann langsamer sein als Ihre Implementierung in MQL5?
 
fxsaber:
Wenn Sie eine Implementierung von R in C++ kompilieren, wird die Ausführung dann langsamer sein als Ihre Implementierung in MQL5?

Ja, aufgrund der Verwendung von dynamischen Daten als Minimum und des allgemeinen frontalen Ansatzes.

In der Tat werden viele grundlegende Mat-Funktionen im C/C++-Compiler kompiliert. Es genügt ein Blick in den Quellcode.

 
Renat Fatkhullin:

Ja, aufgrund der Verwendung von dynamischen Daten als Minimum und eines allgemeinen frontalen Ansatzes.

In der Tat werden viele grundlegende Mat-Funktionen mit einem C/C++-Compiler kompiliert. Es reicht, sich den Quellcode anzusehen.

Und wo sehen Sie, WIE Sie die Geschwindigkeit vergleichen?
 
Renat Fatkhullin:

Ja, aufgrund der Verwendung von dynamischen Daten als Minimum und eines allgemeinen frontalen Ansatzes.

In der Tat werden viele grundlegende Mat-Funktionen mit einem C/C++-Compiler kompiliert. Es genügt, sich den Quellcode anzusehen.

Unterscheidet sich also die Implementierung in MQL5 algorithmisch zum Besseren oder hat sich der MQL5-Compiler als schneller als C++ erwiesen?
 
СанСаныч Фоменко:
Wo kann ich sehen, WIE Sie die Geschwindigkeiten vergleichen?
Lesen Sie den ganzen Artikel.
 

GROSSARTIGE ARTIKEL!

Ich werde ihn mir ansehen.

+

 
Renat Fatkhullin:
Lesen Sie den ganzen Artikel.

Lesen Sie ihn.

Habe mich damit beschäftigt.

Ich denke, dass die Tests, die Sie angegeben haben, nicht ganz korrekt sind. Ich halte es für notwendig, darüber zu schreiben, denn Leistungsvergleiche sind nicht das Letzte.

Der Punkt ist, dass MKL sich qualitativ von R unterscheidet. Und bei Leistungsvergleichen sollten diese qualitativen Unterschiede nach Möglichkeit berücksichtigt werden. R ist ein Interpreter und MKL ist ein Compiler. Dieser qualitative Unterschied für industrielle Programme spricht für MKL.

Es gibt jedoch noch einen weiteren qualitativen Unterschied, der bei der industriellen Nutzung von Programmen ebenfalls von großer Bedeutung ist, und bei den Tests wurden diese Unterschiede nicht berücksichtigt, was zu verzerrten Ergebnissen führte.

Der qualitative Unterschied zwischen R und MKL besteht darin, dass das elementare Objekt in MKL ein Skalar ist, aus dem komplexere Objekte, zum Beispiel Vektoren, gebildet werden. Es sind Vektoren, die dem Eingang von Verteilungsfunktionen zugeführt werden.

In R gibt es das Konzept des "Skalars" überhaupt nicht. Das einfachste Objekt ist ein Vektor. R macht sich diesen Umstand weitgehend zunutze, und in unserem Beispiel, in dem wir Verteilungsfunktionen in R-Code vergleichen, können wir deutlich eine für R spezifische Programmiertechnik wie die "Vektorisierung" erkennen, die in MKL nicht verfügbar ist. Da es sich hierbei um eine spezifische Technik in R handelt, die Berechnungen um das 10-100fache beschleunigt (je nach Größe der Matrix), müsste der Code für R genau diese Technik enthalten. Der Nutzen der Vektorisierung liegt auf der Hand, denn in den Tests wird ein Eingangsvektor genommen und 100 Mal berechnet, d. h. es handelt sich um eine Matrix mit gleichen oder unterschiedlichen Spalten.

Zusammenfassend lässt sich sagen, dass ein Text in R unter Nutzung der Möglichkeiten von R geschrieben werden sollte, vor allem in Ermangelung von Entsprechungen in MKL.

PS.

Da wir über Zyklen sprechen, ist R dazu gedacht, Kerne zu laden. Aber lassen wir das hinter den Klammern.