MetaTrader 5 Python User Group - wie man Python in Metatrader verwendet - Seite 24
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Auch visuell ähnliche Fälle werden nicht schlecht erkannt.
Konnte die Bilder nicht interpretieren.
Konnte die Bilder nicht interpretieren.
Artikel auf dem Weg
es ist interessant, wie Zyklen und Ziele in den Köpfen mancher Menschen manchmal zusammenfallen ))Ich habe in meinem Blog eine Berechnung veröffentlicht, die genau den gleichen Effekt hat. Leider sind die OpenCL-Informationen von einem solchen Niveau, dass sie viel mehr Kompetenz erfordern, als ich habe.
Ich würde gerne ein einfaches Beispiel (wie im Blog) für die OpenCL-Implementierung und das Ergebnis der Beschleunigung sehen.
Warum gibt es keinen Link, obwohl es eine Verpflichtung gibt?
Es besteht kein Anspruch. Ich habe keinen Link zu dem Blogeintrag angegeben, um nicht den Vorwurf der Eigenwerbung aufkommen zu lassen.
https://www.mql5.com/ru/blogs/post/731774
Ich (und alle anderen) konnten die Verwendung dieses Parameters in Visual Studio in den letzten 10 Jahren nicht erkennen. Selbst wenn alle Loop Sweep-Meldeflags aktiviert sind.
Es hat einfach nicht funktioniert und funktioniert auch nicht bei großen Projekten, bei denen es viele Möglichkeiten zur Parallelisierung gibt. Nur direktes OpenMP mit manueller Schleifenaufteilung funktioniert.
In MQL5 sind die Schleifen nicht parallel geschaltet.
Ich stimme mit fxsaber überein, dass OpenCL eine hohe Einstiegsschwelle erfordert.
Die Tatsache, dass es sie gibt, ist gut, aber nur wenige sind gut darin.
Die Tatsache, dass Schleifen in mql5 nicht parallel sind, war die Anregung für eine mögliche Implementierung.
Jetzt ist die Plattform in Clang, vielleicht gibt es dort eine gute Parallelität, ich weiß es nicht.
Der Vorschlag zielt darauf ab, sie in die mql-Richtlinie aufzunehmen.
Verstehe ich das richtig, dass die Genetik nicht funktioniert, wenn Sie diese Aufgabe so einstellen, dass sie ähnliche Bewegungen wie der Optimierer findet?
In diesem Fall wird der Tester nicht für eine vollständige Aufzählung freigeschaltet, da eine Vielzahl von Durchläufen zu absolvieren ist.
Die einzige Möglichkeit, dieses Problem zu lösen, besteht darin, das Skript im Terminal auszuführen.
Beschlossen, auf einem echten Projekt zu überprüfen - vielleicht Python verwendet jit Compiler die ganze Zeit? Ich habe ranger https://github.com/ranger/ranger, Projekt mit 122 Dateien (26368 Zeilen), pinged sie für @njit.
Ergebnis: kein einziger Fund. Ich befürchte, dass die aktive Nutzung dieser Funktion den Start in eine mehrminütige Suche verwandeln wird.
Bei allem Respekt, Sie wissen einfach nicht, wie man es kocht. Ich habe Ihr Beispiel überarbeitet:
In Python:
Hier ist ein Vergleich in Python 3.8 und MQL5 im Single-Thread/OpenCL-Modus: Zeit in Sekunden, je weniger, desto besser
Python im JIT-Modus über numba, das Eisen ist:
Das Beispiel für die Verwendung von OpenCL ist sehr einfach und erfordert keine weiteren Optimierungsmaßnahmen. Obwohl die Aufgabe für OpenCL nicht sehr umfangreich ist und bei der Vorbereitung einen Overhead verursacht hat, hat sie dennoch ein viel besseres Ergebnis erzielt.
Sehr große parallele Berechnungen können routinemäßig mit OpenCL durchgeführt werden. Die Einstiegshürde ist nicht hoch, und es dauert nur einen Tag, um herauszufinden, wie man es benutzt.
Dateien für die Wiedergabe im Anhang.
Obwohl die Aufgabe für OpenCL nicht sehr umfangreich ist und bei der Vorbereitung einen Overhead verursacht hat, hat sie dennoch ein viel besseres Ergebnis erzielt.
Wie haben Sie den OpenCL-Teil des Codes debuggt?
Das Beispiel für die Verwendung von OpenCL ist sehr einfach und ohne jeglichen Schnickschnack zur Optimierung. Obwohl die Aufgabe für OpenCL nicht sehr umfangreich ist und bei der Vorbereitung Overheads ausgelöst wurden, wurde ein viel besseres Ergebnis erzielt.
Renat, können Sie mir eine ungefähre Vorstellung von den Fällen, in denen OpenCL einen Vorteil haben wird, arbeiten mit einer großen Anzahl von Arrays oder wenn es eine große Menge von Symbolen und Indikatoren in einem EA?
Ich bin kein Profi-Programmierer, einfache Dinge auf der Programmierebene sind wahrscheinlich schwierig für mich