MetaTrader 5 Python User Group - wie man Python in Metatrader verwendet - Seite 24

 
Maxim Dmitrievsky:

Auch visuell ähnliche Fälle werden nicht schlecht erkannt.

Konnte die Bilder nicht interpretieren.

 
fxsaber:

Konnte die Bilder nicht interpretieren.

Artikel auf dem Weg

es ist interessant, wie Zyklen und Ziele in den Köpfen mancher Menschen manchmal zusammenfallen ))
 
fxsaber:

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 sollte man ohne einen Link sprechen, obwohl es eine Verpflichtung gibt?
 
Renat Fatkhullin:
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

Research03: находим простые связи между движениями цены в разных частях суток
Research03: находим простые связи между движениями цены в разных частях суток
  • 2019.12.04
  • www.mql5.com
Как это ни парадоксально, но именно при активной алготоровле много времени уходит на вглядывание в монитор. Иногда возникают иллюзии, будто что-то полезное уловил глазом. Так произошло и в этот раз. Давно была гипотеза, что какие-то движения внтури дня имеют связь с движениями после в этом же дне. Например, может показаться, что микрогепы в...
 
Renat Fatkhullin:

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.

 
Renat Fatkhullin:

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.

 
Lyuk:

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.

$ grep '@njit' $(xbps-query -f ranger)

Ergebnis: kein einziger Fund. Ich befürchte, dass die aktive Nutzung dieser Funktion den Start in eine mehrminütige Suche verwandeln wird.

 
Lyuk:

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

pi-single.py
pi-multi.py
Geschwindigkeit PI.mq5 einzeln
Geschwindigkeit PI.mq5 OpenCL
4.1743
0.2101
4.1836
0.1025

Python im JIT-Modus über numba, das Eisen ist:

  • Windows 10 x64, Intel Xeon E5-2690 v3 @ 2.60GHz
  • GeForce RTX 2080

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.

Dateien:
 
Renat Fatkhullin:

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?

 
Renat Fatkhullin:

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