MetaTrader 4 Build 529 beta publié avec un nouveau compilateur - page 104

 
artmedia70:

C'est drôle. Le nom du conseiller expert inclut les noms de ses sous-dossiers.

Cela augmente inutilement la taille du nom de l'expert.

Par exemple : Si le nom du conseiller expert est Expert et qu'il est stocké dans le répertoire Terminal_directory\MQL4\experts\Orders\Nickname,

alors le nom du conseiller expert ne serait pas Expert, mais Orders\Customer_name\Expert. Si les noms des objets comprennent Expert_name et object_name_time, le nombre de caractères est déjà dépassé, et l'objet sera édité à un prix et un temps nuls.

Si les noms d'objets incluent un nom d'EA qui doit être nettoyé lors de la désinitialisation, cela laisse très peu de place pour le nom d'objet lui-même.

Cela va-t-il changer, ou cela restera-t-il ainsi ?


A modifier.
 
Renat:

Regardez dans le journal de bord - indique-t-il ce qui est en train de télécharger et ce qui a été téléchargé ?


Pas de téléchargement de la mise à jour de l'aide

Maintenant, c'est comme ça

 

Les gars, pour autant que je me souvienne, dans les premières versions des terminaux, une telle chose fonctionnait.

extern double sig[3]= {12,0.548,0.21,0.413};

Mais maintenant, il génère une erreur, quel est le problème ?

Deuxième question

Lorsque l'on installe un terminal avec le drapeau portable sur une clé USB, est-ce que cela fonctionne correctement ? Je me souviens qu'il y avait auparavant des problèmes avec l'affichage des noms de comptes et avec les montants astronomiques sur les comptes...

 
VOLDEMAR:

Les gars, autant que je me souvienne, dans les premières versions des terminaux, une telle chose fonctionnait.

Mais maintenant, il génère une erreur, quel est le problème ?

Deuxième question

Lorsque l'on installe un terminal avec le drapeau portable sur une clé USB, est-ce que cela fonctionne correctement ? Je me souviens qu'il y avait des problèmes avec l'affichage des noms de comptes et des montants astronomiques sur les comptes avant...


Un tableau de trois éléments est déclaré, mais quatre éléments y sont écrits. C'est une erreur. Lorsque la liste d'initialisation est importante, il est préférable de procéder de cette manière :

double sig[]= {12,0.548,0.21,0.413};

Le compilateur le calculera lui-même.

Et déclarer un tableau comme paramètre de réglage - comment ?

 
Scriptong:


Un tableau de trois éléments est déclaré, mais quatre éléments y sont écrits. C'est une erreur. Lorsque la liste d'initialisation est importante, il est préférable de procéder de cette manière :

Le compilateur fera les calculs lui-même.


Non, ça ne marche pas.

 
VOLDEMAR:


Non, ça ne marche pas.


C'est écrit en clair : ce n'est pas autorisé dans les paramètres. Une valeur constante est attendue :)
 
Scriptong:

C'est écrit en clair : interdit dans les paramètres. Une valeur constante est attendue :)

Je ne connais pas l'anglais (((, mais j'ai vu des codes où beaucoup de paramètres étaient introduits dans les réglages via ( ; ) ....
 
VOLDEMAR:

Les gars, pour autant que je me souvienne, dans les premières versions des terminaux, une telle chose fonctionnait.

Mais maintenant il y a une erreur, qu'est-ce qui ne va pas ?



Ça ne marchait pas non plus avant. Supprimez le modificateur externe
 

Dites-moi, je ne comprends pas les raisons pour lesquelles cela se produit. Référence :

Событие Deinit генерируется для экспертов и индикаторов в следующих случаях:

-avant dedécharger un programme mql4.

Le déchargement d'un Conseiller Expert attaché à un graphique est effectué dans les cas suivants

-fermer le terminal (si un Expert Advisor a été attaché à un graphique) ;

1) dans OnInit, l'Expert Advisor crée 400 objets graphiques (en utilisant les classes via new object)

2) Suppression dans OnDeinit (l'opérateur delete supprime l'objet créé par l'opérateur new)

Lors de la suppression d'un EA, tout se passe bien (les objets créés sont supprimés).

Lors du changement de TF, si l'historique est chargé, tout se passe bien (les objets créés sont supprimés, les nouveaux sont créés).

Lors duchangement de TF, si l'historique n' est pas chargé pour cette TF - cela se produit environ 3 fois OnDeinit et OnInit , et rapidement

(parfois les objets ne sont pas créés du tout et le terminal ne donne aucune erreur)

Lafermeture et le redémarrage du terminal provoquent 400 erreurs 4200 - l'objet existe déjà.

La fermeture du terminal ne provoque pas OnDeinit ?

Comment puis-je supprimer manuellement 400 objets ? Ajouter le bouton "supprimer tous les objets" à partir du graphique actuel sûrement suggéré ?

(p.s. Chers développeurs, l'ordre de création des objets sera-t-il corrigé prochainement (mois)?

pour faire dépendre l'ordre non pas du nom, mais de la façon dont les objets sont créés dans le code)

// alexey_pak merci, je ne savais pas que Ctrl + A fonctionnait dans la "liste des objets".

 

Chers collègues, un message d'avertissement s'affiche sur la compilation :

Utilisation possible d'une variable non initialisée 'PipStep'.

pour un morceau comme celui-ci :

      PipStep = NormalizeDouble(InitPipStep * MathPow(PipStepExp, BuyOrders - StartDynStep + 1),0);
      LastBuyPrice = FindLastBuyPrice();
      if(Ask < LastBuyPrice - (PipStep * Point))//для ЭТОЙ строки выдало possible use of uninitialized variable 'PipStep' 

Toutes les variables sont initialisées en tant que double, quel est le problème ?