[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 353

 
Zhunko:

L'optimisation doit d'abord être faite. La vitesse MQL4 convient à la plupart des tâches.

Il existe un exemple de DLL dans le dossier MT4.


Je parle de tâches individuelles, où une exécution du script prend plusieurs heures. Qu'entendez-vous par optimisation ?
 
Quelques heures, c'est beaucoup. En général, il est possible d'accélérer les calculs en modifiant l'algorithme de calcul, en retirant les actions répétitives de la boucle, en évitant les constructions lentes, les tableaux multidimensionnels, etc.
 
splxgf:
En général, il existe des variantes pour accélérer les calculs en modifiant l'algorithme de calcul, en sortant les actions répétitives de la boucle, en évitant les constructions lentes, les tableaux multidimensionnels, etc.

Avez-vous une réponse à la question suivante : est-il préférable de stocker les caractéristiques des ordres ouverts dans un tableau multidimensionnel ou dans plusieurs tableaux unidimensionnels, un par caractéristique ? J'ai essayé les deux façons. Je n'ai pas remarqué de différence dans la vitesse. Quelle est la meilleure solution (différents ordres, au marché et en attente, et peut-être même des ordres perdants dirigés différemment) ?

Probablement, "selon les exigences du problème" ?

 
splxgf:
Quelques heures, c'est beaucoup, mais il existe généralement des options permettant d'accélérer les calculs en modifiant l'algorithme de calcul, en supprimant les actions répétitives de la boucle, en évitant les constructions lentes, les tableaux multidimensionnels, etc.

Si ce n'est pas difficile, pouvez-vous montrer un exemple d'une telle optimisation. Par exemple, considère toutes les périodes de l'indicateur Alligator iAlligator de 1 à 100 (7 périodes), les opérations mathématiques elles-mêmes sont simples (addition, soustraction).

 
snail09:

Avez-vous une réponse à la question suivante : est-il préférable de stocker les caractéristiques des ordres ouverts dans un tableau multidimensionnel ou dans plusieurs tableaux unidimensionnels, un par caractéristique ? J'ai essayé les deux façons. Je n'ai pas remarqué de différence dans la vitesse. Quelle est la meilleure solution (différents ordres, au marché et en attente, et peut-être même des ordres perdants dirigés différemment) ?

Probablement, ce serait "selon l'énoncé du problème", n'est-ce pas ?


Je ne l'ai pas encore rencontré, je ne sais pas. Mais si votre code est correct et effectue la tâche, je pense que cela ne fait aucune différence dans quel tableau.
 
khorosh:
Existe-t-il un indicateur d'équité qui permettrait de fixer une date dans sa variable externe, afin que tous les ordres ouverts avant cette date ne soient pas pris en compte dans le calcul de l'équité ?


Regarde ceux-là... Begin_Monitoring et Draw_Begin...

Dossiers :
 
FelixFX:

Je fais référence à des tâches individuelles, où l'exécution d'un script prend plusieurs heures. Qu'entendez-vous par "optimisation" ?
Je veux dire modifier le code pour qu'il fonctionne plus rapidement. Il y a quelques caractéristiques spéciales de MQL4, en les connaissant, vous pouvez accélérer les calculs de plusieurs fois. Sans votre code, vous ne pouvez pas dire ce qui peut être optimisé.
 
Zhunko:
Cela signifie qu'il faut modifier le code pour qu'il fonctionne plus rapidement. Il existe des particularités de MQL4, en les connaissant, vous pouvez accélérer les calculs de plusieurs fois. Sans votre code, il est impossible de dire ce qui peut être optimisé.

Par exemple, considérez toutes les périodes de l'indicateur Alligator iAlligator de 1-100 (7 paramètres variables), les opérations mathématiques sont simples (addition, soustraction - par exemple, vous pouvez prendre la somme des différences des prix maximum et minimum de chaque barre, dont le prix de clôture est supérieur à toutes les lignes de l'indicateur).
 
FelixFX:

Je ne l'ai pas encore rencontré, je ne sais pas. Mais si votre code est correct et fait ce qu'il est censé faire, je pense que cela ne fait aucune différence dans le tableau.
Les deux options sont correctes. C'est pourquoi j'ai demandé. Et comment suivez-vous "vos" commandes ? Veuillez partager.
 
FelixFX:

Si cela n'est pas difficile, pouvez-vous montrer un exemple d'une telle optimisation. Par exemple, considère toutes les périodes de l'indicateur alligator iAlligator de 1 à 100 (7 périodes), les opérations mathématiques elles-mêmes sont simples (addition, soustraction).

Par exemple, le problème est de savoir combien de fois le prix a franchi un niveau donné au cours des deux dernières années.

1. Vous pouvez prendre chaque niveau et examiner les données pendant deux ans. Les coûts : le nombre de barres multiplié par le nombre de niveaux.

2. Vous pouvez créer un tableau séparé de niveaux. Il suffit de passer en revue toutes les barres en vérifiant et en incrémentant les éléments requis du tableau. Dans ce cas, les calculs seront plus rapides.

Raison: