MetaTrader 5 Python User Group - Comment utiliser Python dans Metatrader - page 24

 
Maxim Dmitrievsky:

Les cas visuellement similaires ne sont pas non plus mal détectés.

Je n'ai pas pu interpréter les images.

 
fxsaber:

Je n'ai pas pu interpréter les images.

article en cours de rédaction

c'est intéressant de voir comment les cycles et les tâches dans la tête de certaines personnes coïncident parfois ;)
 
fxsaber:

J'ai posté un calcul sur le blog qui fait un parallèle parfait. Malheureusement, les informations sur OpenCL sont d'un niveau tel qu'elles requièrent des compétences bien supérieures à celles dont je dispose.

J'aimerais voir un exemple simple (comme dans le blog) de mise en œuvre d'OpenCL et le résultat de l'accélération.

Pourquoi parler sans lien, bien qu'il y ait une obligation ?
 
Renat Fatkhullin:
Pourquoi n'y a-t-il pas de lien, alors qu'il y a une obligation ?

Il n'y a pas de réclamation. Je n'ai pas fourni de lien vers l'article du blog afin de ne pas donner lieu à des accusations d'autopromotion.

https://www.mql5.com/ru/blogs/post/731774

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

Cela fait 10 ans que je (et tout le monde) ne vois pas l'utilité de ce paramètre dans Visual Studio. Même en ayant activé tous les drapeaux de rapport de balayage de boucle.

Cela n'a tout simplement pas fonctionné et ne fonctionne pas même sur les grands projets où il y a beaucoup de possibilités de parallélisation. Seul l'OpenMP direct avec partitionnement manuel des boucles fonctionne.

Dans le MQL5, les boucles ne sont pas mises en parallèle.

Je suis d'accord avec fxsaber pour dire qu'OpenCL nécessite un seuil d'entrée élevé.
Le fait qu'il existe est une bonne chose, mais seuls quelques-uns sont bons dans ce domaine.

Le fait que les boucles dans mql5 ne sont pas parallèles, c'était la suggestion pour une implémentation possible.
Maintenant, la plateforme est en Clang, peut-être y a-t-il un bon parallélisme, je ne sais pas.
Le but de la proposition est de l'intégrer dans la directive mql.

 
Renat Fatkhullin:

Ai-je raison de supposer que si je configure cette tâche pour rechercher des mouvements similaires à ceux de l'Optimiseur, la génétique ne fonctionnera pas ?

En même temps, le testeur ne sera pas en mesure d'effectuer une énumération complète, car il y a beaucoup de passages à effectuer.

C'est-à-dire que la seule façon de résoudre ce problème est d'exécuter le script dans le Terminal.

 
Lyuk:

J'ai décidé de vérifier sur un projet réel - peut-être que python utilise le compilateur jit tout le temps ? J'ai ranger https://github.com/ranger/ranger, projet avec 122 fichiers (26368 lignes), je les ai envoyés à @njit.

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

Résultat : pas une seule découverte. Je crains que l'utilisation active de cette fonctionnalité ne transforme le démarrage en une quête de plusieurs minutes.

 
Lyuk:

Avec tout le respect que je vous dois, vous ne savez pas comment le cuisiner. J'ai retravaillé ton exemple :

En Python :


Voici une comparaison dans Python 3.8 et MQL5 en mode single thread/OpenCL : temps en secondes, le moins possible, le mieux c'est

pi-single.py
pi-multi.py
Vitesse PI.mq5 simple
Vitesse PI.mq5 OpenCL
4.1743
0.2101
4.1836
0.1025

Python en mode JIT via numba, le fer est :

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

L'exemple d'utilisation d'OpenCL est très simple et ne nécessite pas de fioritures pour l'optimisation. Bien que la tâche ne soit pas massive pour OpenCL et qu'elle ait déclenché des surcharges en préparation, elle a tout de même donné un bien meilleur résultat.

De très gros calculs parallèles peuvent être couramment exécutés avec OpenCL. Le seuil d'entrée n'est pas élevé et il suffit d'une journée pour comprendre comment l'utiliser.

Fichiers de lecture joints.

Dossiers :
 
Renat Fatkhullin:

Bien que la tâche ne soit pas massive pour OpenCL et qu'elle ait déclenché des surcharges en préparation, elle a tout de même donné un bien meilleur résultat.

Comment avez-vous débogué la partie OpenCL du code ?

 
Renat Fatkhullin:

L'exemple d'utilisation d'OpenCL est très simple et sans fioritures pour l'optimisation. Bien que la tâche ne soit pas massive pour OpenCL et qu'elle ait déclenché des frais généraux de préparation, elle a tout de même donné un bien meilleur résultat.


Renat, pourriez-vous préciser dans quels cas OpenCL aura un avantage, en travaillant avec un grand nombre de tableaux ou s'il y a un grand ensemble de symboles et d'indicateurs dans un EA ?

Je ne suis pas un programmeur professionnel, les choses simples au niveau de la programmation sont probablement difficiles pour moi.

Raison: