Erreurs, bugs, questions - page 1628
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
Erreur d'ouverture d'un dossier par l'examinateur. Et si par exemple
1. supprimer "certains codes non pertinents" (voir ci-dessous)
2. ou supprimer ::Sleep(1000)
il n'y a pas d'erreur
Séquence d'actions :
1. Créer un nouveau profil (par exemple "Test")
2. ouvrez deux nouveaux graphiques en attachant le Conseiller Expert Test.ex5 aux deux graphiques (voir image)
4. Sélectionnez un autre profil existant
5. Sélectionnez le profil "Test".
résultat :
Avec Test001.mq5 ressemblant à ça :
Le fichier test.txt lui-même n'est pas joint au message, mais ressemble à ceci
Information supplémentaire : emplacement du fichier à ouvrir au sens de FILE_COMMON - n'affecte pas l'erreur
Il s'agit d'une optimisation du code.
Si dans metaeditor.ini dans le champ [Experts] écrivez OPTIMIZE=0, alors la vitesse de compilation sera comme dans 4. J'ai des projets qui compilent en 20 secondes et d'autres qui entrent dans une boucle d'optimisation infinie :)
Wow, merci mon pote ! Où étiez-vous avant ! ) Et nous voilà en train de souffrir... Ce qui est étrange, c'est que les développeurs ont gardé le silence sur cette option.
Pas silencieux. Il y a un sujet de 18 pages sur le forum où cette option vient d'être décrite.
À propos, l'optimisation n'est pas activée lors de la compilation pour le débogage.
C'est l'optimisation du code.
Si dans metaeditor.ini dans le champ [Experts] écrivez OPTIMIZE=0, alors la vitesse de compilation sera comme dans 4. J'ai des projets qui compilent en 20 secondes, et d'autres qui entrent dans une boucle d'optimisation infinie :)
Exactement ! Cela dit, je l'ai moi-même réglé sur 1 il y a quelque temps et je l'ai oublié. ))
... Et nous sommes toujours en train de lutter ici... Ce qui est étrange, c'est que les développeurs n'ont rien dit sur cette option.
Le sujet a été discuté en détail :Test d'un nouveau compilateur MQL5 pour les plateformes x64 - accélération de 2 à 10 fois !>>>
>>> C'est juste que j'ai oublié. )
Au début, je n'ai même pas réussi à faire fonctionner cette optimisation. C'est-à-dire que la compilation échouerait dans certains cas. Mais ensuite, j'ai réussi à trouver la raison. Puis il a été corrigé et j'ai mis le paramètre à 1 dans l'un des terminaux et je l'ai oublié. Et hier, je me demandais pourquoi la compilation est beaucoup plus rapide dans un éditeur MT5 que dans un autre éditeur MT5.
//---
Maintenant, si je le mets à 0, la compilation est ~25 fois plus rapide.
Bien sûr, mes projets les plus complexes dans MetaTrader 5 prennent également beaucoup de temps à compiler. Cela prend même jusqu'à 11 secondes. Exactement les mêmes versions, mais dans MetaTrader 4, elles peuvent être jusqu'à 25 fois plus rapides.
Dans MT5, le compilateur est plus avancé et optimise le code de sorte qu'il s'exécute jusqu'à 10 fois plus vite que dans MT5. Nous l'avons déjà écrit et expliqué.
Le compilateur MQL5 doit créer deux copies du code pour la compatibilité - pour l'ancienne version 32 bits (sans optimisation complète) et la version optimisée au maximum pour 64 bits. La pleine puissance de MQL5 ne se révèle qu'en 64 bits.
Le compilateur de MT5 est plus avancé, il optimise le code de sorte qu'il s'exécute jusqu'à 10 fois plus vite que MT5.
En outre, le compilateur doit créer deux copies du code pour la compatibilité - pour l'ancienne version 32 bits (sans optimisation complète) et la version optimisée au maximum pour 64 bits. Toute la puissance de MQL5 ne se révèle qu'en 64 bits.
Merci. Je me suis déjà rafraîchi la mémoire sur le fil où tout cela a été discuté.
Je le mettrai à 0 le temps du développement car je dois souvent effectuer une compilation et il est très fastidieux d'attendre 10 secondes. Et pour le produit final avant la compilation finale, je mettrai 1.
Dans MT5, le compilateur est plus avancé et optimise le code de sorte qu'il s'exécute jusqu'à 10 fois plus vite que dans MT5. Nous l'avons déjà écrit et expliqué.
Le compilateur MQL5 doit créer deux copies du code pour la compatibilité - pour l'ancienne version 32 bits (sans optimisation complète) et la version optimisée au maximum pour 64 bits. La pleine puissance de MQL5 ne se révèle qu'en 64 bits.
si le paramètreOPTIMIZE est modifié lorsque le MetaEditor est en cours d'exécution, doit-il être rechargé pour accepter les réglages ou non ?
Pouvez-vous me dire quelle est la difficulté. L'Expert Advisor dispose d'une analyse standard des indicateurs, si la condition est remplie, la fonction d'ouverture de l'ordre est écrite dans le code, avec vérification de l'exactitude du TP, de l'exactitude du SL du prix, etc. Il n'y a pas de boucle. Il n'y a pas de boucle. Après le contrôle d'ouverture, nous mémorisons la barre pour qu'elle ne s'ouvre pas sur cette barre et sur la suivante, puis nous revenons ;
Dans le testeur, tout fonctionne bien :) dans les comptes avec exécution instantanée, l'ordre est également ouvert normalement. Mais pour les comptes ECN, deux ordres sont ouverts en même temps avec quelques secondes d'écart. Comment cela peut-il arriver ? Comment lutter contre cela ? Peut-être faudrait-il prévoir un contrôle supplémentaire ?