Erreurs, bugs, questions - page 1068

 

Quelque chose dans la dernière version du compilateur a merdé.

Sous build 852 et Win7-64 - Après avoir compilé et essayé de lancer mon indicateur qui fonctionnait avant, j'obtiens un message dans le log - Invalid EX5 file

Ce qui est intéressant, c'est que le même indicateur fonctionne bien dans le débogueur.
 
Dima_S:

Il y a un problème avec la dernière version du compilateur.

Sous la version 852 et Win7-64 - après avoir compilé et essayé d'exécuter mon propre indicateur, qui fonctionnait auparavant, j'obtiens un message dans le journal - Fichier EX5 invalide.

Ce qui est intéressant, c'est que dans le débogueur, ce même indicateur fonctionne bien.

Ce genre de choses doit être téléchargé immédiatement au Service Desk avec les journaux et les sources.

--

L'une des différences entre les versions de débogage et de publication est l'initialisation par défaut de toutes les variables avec des zéros. Essayez de rechercher les variables/réseaux non initialisés dans votre code.

// Mais d'abord, le premier point.

 
paladin800:
Qui se soucie de ce à quoi ça ressemble et les gens regardent leur code, pas les côtés.
La barre des tâches est en fait souvent négligée...
 
MetaDriver:

2. une des différences entre les versions debug et release est l'initialisation nulle par défaut de toutes les variables. essayez de rechercher des variables/rays non initialisés dans le code.

IMHO, uninitialized peut causer des bugs EA/indicateur, mais pas l'incapacité de EX5 lui-même.
 
Dima_S:

Quelque chose dans la dernière version du compilateur a merdé.

Sous build 852 et Win7-64 - Après avoir compilé et essayé de lancer mon indicateur qui fonctionnait avant, j'obtiens un message dans le log - Invalid EX5 file

Ce qui est intéressant, c'est que le même indicateur fonctionne bien dans le débogueur.
Probablement, cette erreur a déjà été corrigée (le bogue avec les mêmes symptômes a été corrigé). Attendez la sortie officielle. Il sera disponible très prochainement.
 
stringo:
Ce bogue a peut-être déjà été corrigé (correction d'un bogue présentant les mêmes symptômes). Attendez la sortie officielle. Il sera disponible très prochainement.
OK, j'attends. J'utilise les versions de débogage pour l'instant)
 

Je m'excuse d'avance pour les questions futiles.

1) Comment puis-je comprendre si un fichier mq5 est un Expert Advisor ou un indicateur ? Ou bien il est défini par son emplacement dans les dossiers Experts et Indicateurs ? J'ai essayé d'exécuter ma mq5 depuis Expert, mais OrderCalcMargin affiche toujours l'erreur ERR_FUNCTION_NOT_ALLOWED

2) Je ne peux pas exécuter mon code à partir de mon dossier (MQL5\Serega). Quel est le but de tout cela ?

 
 

Il ne dit évidemment pas quelles sont les différences.

J'ai compris par intuition, j'ai commenté OnCalculate et l'indicateur est devenu un Expert Advisor.

Et pourquoi le code ne peut pas être exécuté à partir de son propre dossier n'est pas clair pour moi.

 
MetaDriver:
2013.09.07 02:39:36 iTester-SL (GBPUSD,M1) 1 objet de type CTestStat quitté
2013.09.07 02:39:36 iTester-SL (GBPUSD,M1) 1 objets non supprimés restants

Fuite de mémoire // Ou problème de compilation.

L'objet a été déclaré comme une variable globale statique. ( !) C'est-à-dire qu'il n'est pas du tout dynamique.

Le problème est apparu après que la partie du code qui utilise cette variable a été déplacée vers un fichier .mqh et déclarée dans ce fichier comme extern (aucune fuite n'avait été détectée auparavant) :

Le programme fonctionne bien.

// J'ai évité le problème en déclarant l'objet dynamique. Maintenant je le crée dans OnInit(), le supprime dans OnDeinit(). Les fuites (messages de fuites) ont cessé.

Merci pour le post, corrigé. La version corrigée sera publiée après la version 853.
Raison: