![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Si vous effectuez plusieurs optimisations, avec les mêmes paramètres de l'EA, les résultats des différentes optimisations coïncident-ils ? Si c'est le cas, le problème réside dans la différence entre l'optimiseur et la passe unique. Si ce n'est pas le cas, le problème se situe certainement dans le code de l'EA.
Laissez-moi vous expliquer - l'écriture à la mode ici dans le :
if (condition) {
} else if (!condition) {
}
censé augmenter la lisibilité et la compréhension du code, est en fait un mal
et en plus vous devez travailler très, très soigneusement avec les doubles
Pensez-vous qu'une variable globale de l'EA conserve la valeur des exécutions antérieures de l'optimiseur et qu'elle est reportée sur les exécutions suivantes ?
Oui, c'est à peu près ça. C'est ce que j'essayais de faire.
Seulement, il ne s'agissait pas seulement d'une variable globale, mais d'un membre statique de la classe, d'une variable terminale ou autre.
En outre, un test unique effectué immédiatement après le lancement du terminal et un test répété sur le même agent peuvent être différents. Pour la même raison.
En somme, il faut tout initialiser et garder un œil scrupuleux dessus.
ps : non, ça me rappelle. J'étais bien avec l'initialisation, c'était l'un des builds qui initialisait les statiques de manière défaillante. Il a été réparé rapidement.
tout transfert du contenu des variables EA d'une exécution à l'autre doit être considéré comme un bug du testeur, même s'il s'agit de variables globales du terminal.
S'il existe plusieurs copies d'un même EA fonctionnant sur des graphiques en temps réel, l'utilisateur utilise un mage ou d'autres moyens d'identification, et le processus d'optimisation implique des exécutions multiples et indépendantes les unes des autres d'un EA avec le même mage, si ce n'est pas le cas, alors non seulement c'est faux du point de vue idéologique de l'optimisation, mais cela ouvre la possibilité d'influencer l'optimisation et d'abuser des produits du marché en trompant l'acheteur.
J'attends le rapport de TC sur les transactions non élaguées, mais je suis intrigué.
Pas fait pour un saint voleur.
Le point, comme toujours, est simple - l'EA n'est pas déchargé pour optimiser plus rapidement. Les fichiers EX peuvent être volumineux.
Ce n'est qu'aujourd'hui que j'ai eu le temps de m'attaquer au problème. J'ai décidé de commencer petit. Une chose à la fois. Y compris la vérification des fichiers ouverts. Le code est le suivant :
J'ai lancé l'optimisation et ensuite un seul test. En conséquence, j'ai obtenu deux fichiers :
J'ai ouvert ces deux fichiers dans le programme WinMerge. Et voici ce que j'ai vu là-bas
Il y a un problème avec l'ouverture des fichiers dans l'optimiseur. Notez qu'il n'y a pas de telle erreur dans le testeur !
Il y a un problème avec l'ouverture des fichiers par l'optimiseur. Notez qu'il n'y a pas de telle erreur dans le testeur !
Plusieurs cœurs ouvrent le fichier en même temps. Un s'ouvre, le reste est foutu.
Besoin de code avec attente, ou au moins le drapeau FILE_SHARE_READ
Si vous :
Plusieurs cœurs ouvrent le fichier en même temps. L'un s'ouvre, les autres se font avoir.
J'ai besoin de code avec attente, ou au moins le drapeau FILE_SHARE_READ.
Je n'ai pas écrit le code spécifiquement pour l'optimiseur. On s'attendait à ce que l'optimiseur soit déjà conscient de ces nuances. Je vais essayer d'ajouter un drapeau, ça n'empirera pas les choses. )))
Si vous :
Puisqu'il n'y a toujours pas de code, que les conditions de test ne sont décrites d'aucune manière et que vous faites des déclarations clairement erronées, alors occupez-vous-en vous-même.
Si vous ne pouvez même pas ouvrir les fichiers, cela signifie qu'il y a de nombreux problèmes dans l'Expert Advisor.
Vous avez même caché les noms de ces fichiers.
Puisqu'il n'y a toujours pas de code, que les conditions de test ne sont décrites d'aucune manière et que vous faites des déclarations clairement erronées, alors occupez-vous-en vous-même.
Si vous ne pouvez même pas ouvrir les fichiers, cela signifie qu'il y a de nombreux problèmes dans l'Expert Advisor.
Vous avez même caché ces noms de fichiers.
Il n'y a pas de code parce que l'ajout du ballon a vraiment résolu le problème. Désormais, les résultats de l'optimisation et les exécutions individuelles sont parfaitement cohérents.
C'est juste que j'utilisais à peine les fichiers dans les EAs avant (au moins toutes les écritures/lectures pendant l'optimisation/le test étaient désactivées), mais je pensais que l'optimiseur avait résolu le problème de l'accès à partir d'un seul EA.